20101204 you-must-unlearn-what-you-have-learned

Post on 13-Nov-2014

4.265 views 1 download

description

 

Transcript of 20101204 you-must-unlearn-what-you-have-learned

Rubyの教えてくれたこと

島田 浩二koji.shimada@enishi-tech.com

— You must unlearn what you have learned.

2010年12月4日(土) 札幌Ruby会議03

2010年12月5日日曜日

今日お話しすること

2010年12月5日日曜日

“Joyful Ruby”2010年12月5日日曜日

Rubyにたいして僕が感じている“良さ”と、それと触れ合う中で学んだ大切ないくつかのことについて

2010年12月5日日曜日

自己紹介

2010年12月5日日曜日

しまだ こうじ島田 浩二

Photo by tmaeda

2010年12月5日日曜日

2010年12月5日日曜日

2010年12月5日日曜日

日本Rubyの会2010年12月5日日曜日

RubyKaigi

2010年12月5日日曜日

2010年12月5日日曜日

from Sapporo,with Love for Ruby

Photo by darashi

2010年12月5日日曜日

よろしくお願いします

2010年12月5日日曜日

Rubyの教えてくれたこと

島田 浩二koji.shimada@enishi-tech.com

— You must unlearn what you have learned.

2010年12月4日(土) 札幌Ruby会議03

2010年12月5日日曜日

私について

2010年12月5日日曜日

ふつうのプログラマ

2010年12月5日日曜日

一度も自分自身で満足のいくようなコードを書けたことがない平凡なプログラマである私が、Rubyと一緒にプログラミングしているときにたまに感じてしまう錯覚

2010年12月5日日曜日

オレってばスゲー感

2010年12月5日日曜日

“Rubyをキメると気持ち良い

 - まつもとゆきひろ RubyKaigi2008

2010年12月5日日曜日

QWAN on Ruby

2010年12月5日日曜日

ブロック

http://www.flickr.com/photos/33224129@N00/3301269103/

2010年12月5日日曜日

ブロック

2010年12月5日日曜日

ブロック

2010年12月5日日曜日

ブロック

2010年12月5日日曜日

ブロック

2010年12月5日日曜日

ブロックを使ってできること

2010年12月5日日曜日

イテレータ

2010年12月5日日曜日

繰り返し

2010年12月5日日曜日

具体的な処理の記述

2010年12月5日日曜日

対称性のある処理の保証

2010年12月5日日曜日

対称性のある処理の保証

2010年12月5日日曜日

アルゴリズムの差し替え

2010年12月5日日曜日

実現していること

状況によって変わる可能性のある部分をあとからコードを修正せずに

差し替えることができる

2010年12月5日日曜日

状況によって変わるもの

• 条件• アルゴリズム• 具体的な処理

2010年12月5日日曜日

ブロックでないとできない?

2010年12月5日日曜日

No

例えばデザインパターンにある構造を採用して

2010年12月5日日曜日

違い

2010年12月5日日曜日

実現の仕方

2010年12月5日日曜日

Strategyパターンを使って:

ブロックを使って:

アルゴリズムを実行時に切り替えたい

2010年12月5日日曜日

ブロックの良さ

2010年12月5日日曜日

構造を複雑にせずに程よい柔軟性を確保できる

ブロックの良さ

2010年12月5日日曜日

複雑性

2010年12月5日日曜日

二つの複雑性

2010年12月5日日曜日

問題にもともと存在している複雑性

2010年12月5日日曜日

動かすために入れてしまった複雑性

2010年12月5日日曜日

“ソフトウェアは複雑さの増大によってダメになる - Andrew Hunt and Dave omas,

e Pragmatic Programmer

2010年12月5日日曜日

YAGNI

You Ain ’t Gonna Need I tどうせ要らないって

2010年12月5日日曜日

どうしても必要があるという場合以外には複雑税は払わない

2010年12月5日日曜日

実現したいこと

2010年12月5日日曜日

状況によって変わる可能性のある部分をあとからコードを修正せずに

差し替えることができる

2010年12月5日日曜日

変化ヲ抱擁セヨ

2010年12月5日日曜日

2010年12月5日日曜日

SOLID PrincipleSRP Single ResponsibilityOCP Open-ClosedLSP Liscov Substitution

ISP Interface SegregationDIP Dependency Inversion

2010年12月5日日曜日

変化に適応する

変化を抱擁する

2010年12月5日日曜日

“Expect Unexpected Change

「予期しない変化が起きる」ということを予期して備える

2010年12月5日日曜日

どうやって

2010年12月5日日曜日

シンプルなコードと包括的なテストで

変化を抱擁する

2010年12月5日日曜日

シンプルなコード

2010年12月5日日曜日

包括的なテスト

2010年12月5日日曜日

/ / / f

GrowingObject-OrientedSoftware,Guided by TestsSteve FreemanNat Pryce

H M M — — i

Foreword by Kent BeckAfterword by Tim Mackinnon

2010年12月5日日曜日

本当に必要だとわかるまで可能な限り決定を遅らせる

変化を抱擁する

2010年12月5日日曜日

構造を複雑にせずに程よい柔軟性を確保できる

ブロックの良さ

2010年12月5日日曜日

本当に必要になるまで処理の決定を遅らせる

ブロックの良さ

2010年12月5日日曜日

/ / / f

GrowingObject-OrientedSoftware,Guided by TestsSteve FreemanNat Pryce

H M M — — i

Foreword by Kent BeckAfterword by Tim Mackinnon

2010年12月5日日曜日

http://www.flickr.com/photos/barnaby_s/2332109365/2010年12月5日日曜日

ブロックが僕に教えてくれたこと

2010年12月5日日曜日

道具を知ること

2010年12月5日日曜日

道具の影響

2010年12月5日日曜日

パワーと制約

2010年12月5日日曜日

道具を知り道具を選ぶ

2010年12月5日日曜日

Push Your Self to Learn

2010年12月5日日曜日

To do good work ♥ your tools

良い仕事のためにはツールに♥を

23

2010年12月5日日曜日

道具を知ること

2010年12月5日日曜日

もう一つ

ブロックの良さ

2010年12月5日日曜日

http://www.flickr.com/photos/aslakr/14507479/2010年12月5日日曜日

ActiveRecord

2010年12月5日日曜日

こうも書ける

2010年12月5日日曜日

情報が多いのはどちらか

or

2010年12月5日日曜日

見覚えのある景色

2010年12月5日日曜日

コードで表現する

2010年12月5日日曜日

メソッドで表現すればいいんじゃ?

2010年12月5日日曜日

読めるけど分からない

2010年12月5日日曜日

大事なこと

2010年12月5日日曜日

読めると分かるは異なる

2010年12月5日日曜日

書いてあることがわかる(How)

読める

2010年12月5日日曜日

何をやりたかったかがわかる(Why)

分かる

2010年12月5日日曜日

読んだ人が理解し修正し使用することができること

良いコード

2010年12月5日日曜日

利用者側のコードが勝手に意味を持つ

ブロックならではの良さ

2010年12月5日日曜日

ここを書いているのは利用者

思わず意図を込めてしまう

2010年12月5日日曜日

http://www.flickr.com/photos/aslakr/14507479/2010年12月5日日曜日

ブロックが僕に教えてくれたこと

2010年12月5日日曜日

コードの良さについて

2010年12月5日日曜日

ブロックはそれをサポートしてくれている

2010年12月5日日曜日

ブロックはそれをサポートしてくれている

XRuby

2010年12月5日日曜日

“Rubyをキメると気持ち良い

 - まつもとゆきひろ RubyKaigi2008

2010年12月5日日曜日

“Joyful Ruby”2010年12月5日日曜日

I LOVE RUBY

私はRubyが大好きだ

24

2010年12月5日日曜日

弟子は師匠の鑑

2010年12月5日日曜日

Matz is niceso we are nice

2010年12月5日日曜日

良いと思う価値のための実践を続ける

2010年12月5日日曜日

Rubyの教えてくれたこと

島田 浩二koji.shimada@enishi-tech.com

— You must unlearn what you have learned.

2010年12月4日(土) 札幌Ruby会議03

2010年12月5日日曜日

ご清聴ありがとう

ございました2010年12月5日日曜日

提 供提 供

2010年12月5日日曜日