20081205 Object Club Reject Talks2008

Koji SHIMADA
Koji SHIMADACEO at Enishi Tech Inc.
2008‐12‐05(Fri); 中国料理 菩提樹 
RejectTalks 2008 in オブラブ忘年会
島田 浩二
snoozer.05@ruby‐sapporo.org
日本Rubyの会/Ruby札幌
SHIMADA Koji; Nihon Ruby-no-kai; RubySapporo
From Sapporo, with Love for Object Club
Ruby札幌の方から
来ました
「なんだか一生涯、ずっと旅先にいたような気がし
ますーーいま、僕はふるさとへ帰ってきたのです」
 彼女は母親のように微笑した。
「ふるさとへ帰れるひとなんてありませんよ」と、
彼女はやさしい口調でいった。「でも、お友だち同
士の道がおちあったりすると、しばらくのあいだ、
世界じゅうがふるさとのように見えるものです」
Hermann Hesse 著, 秋山英夫 訳
「デーミアン」講談社文庫版
自己紹介
From Sapporo, with Love for Ruby.
Ruby札幌
主宰/運営チーム
島田 浩二
snoozer.05@ruby-sapporo.org http://ruby-sapporo.org
http://iddy.jp/profile/snoozer05/ http://twitter.com/snoozer05
しまだ こうじ
Photo by kakutani.com
http://www.flickr.com/photos/68498640@N00/1711263422/
20081205 Object Club Reject Talks2008
20081205 Object Club Reject Talks2008
どうぞ
よろしく
お願いします
参加理由
先週の出来事
仕事の打ち合わせ
が12/5に東京で
2008/12/5 東京
オブラブ忘年会∼ふりかえり2008∼
20081205 Object Club Reject Talks2008
✓ 申し込み完了
✓ 諸々スケジューリング
準備万端
のはずが
仕事の打ち合わせ
が12/5に東京で
仕事の打ち合わせ
が12/5に東京で
せっかくなので
自費で来た
イマココ
OOとの関わ
り的自己紹介
扉を開いた
最初の一冊
20081205 Object Club Reject Talks2008
こんなに心を持っていかれる
技術書に出会ったのは初めてだった
冒頭で語られる
ケントベックのかっこよさ
重度のケントベック廚に
今年の活動
20081205 Object Club Reject Talks2008
20081205 Object Club Reject Talks2008
20081205 Object Club Reject Talks2008
続きは
http://ruby-sapporo.org/
まだまだ道の途中
もっともっと勉強して
もっともっといろいろな所に貢献して
いつかXPJUGや
オブジェクト倶楽部に
話しに来れるといいな
本題
http://www.flickr.com/photos/mio-spr/2042538806
Fluent interfaceと
動線と
Talking about “Fluent interface” and “Flow line”
島田 浩二
SHIMADA Koji; Nihon Ruby-no-kai; RubySapporo
snoozer.05@ruby‐sapporo.org
日本Rubyの会/Ruby札幌
きちんとした資料は
http://ruby-sapporo.org/
アジェンダ
✓ 2種類の利用者
✓ 3つの車輪
✓ 1つの視点
✓ まとめ
http://www.flickr.com/photos/srijith/1867095482
2種類の利用者
インターフェイスの利用者
✓コードを書く人
✓コードを読む人
読んだことが流れるように
頭に入ってくる
考えたことを流れるように
コードにすることが出来る
コード
Fluent interfaceが
生み出したい 流れ
インターフェイス
利用者
http://www.flickr.com/photos/fuckr/91530309
3つの車輪
Fluent interfaceの車輪
✓ メソッドチェーン
✓ カスケード
✓ セマンティクス
http://www.flickr.com/photos/17258892@N05/2588347668
やってみて
感じたこと
大事なこと
はあまり
変わらない
✓責務の振り分け
✓返り値
✓引数
✓メソッド名
20081205 Object Club Reject Talks2008
20081205 Object Club Reject Talks2008
+α
http://www.flickr.com/photos/srijith/1867095482
流れ
読んだことが流れるように
頭に入ってくる
考えたことを流れるように
コードにすることが出来る
コード
Fluent interfaceが
生み出したい 流れ
インターフェイス
利用者
読んだことが流れるように
頭に入ってくる
考えたことを流れるように
コードにすることが出来る
コード
Fluent interfaceが
生み出したい 流れ
インターフェイス
利用者
読んだことが流れるように
頭に入ってくる
考えたことを流れるように
コードにすることが出来る
コード
Fluent interfaceが
生み出したい 流れ
インターフェイス
利用者
読んだことが流れるように
頭に入ってくる
考えたことを流れるように
コードにすることが出来る
コード
Fluent interfaceが
生み出したい 流れ
インターフェイス
利用者
Fluent interfaceとい
う観点でインターフェイス
を見つめる行為は、イン
ターフェイスの具体的な利
用者のことを強く考えさせ
てくれる
...a programmer’s job is too communicate
with other programmers, not just a machine.
Programming, then, is a human task
done by humans for humans.
Oh, and writing good code at the same time.
プログラムは、マシンにだけではなく、
自分以外のプログラマに向けて書かれるべきなんだ。
そうすることで、プログラミングは
人による、人のための、人の仕事になる。
もちろん、それは良いコードにもなっているんだよ。
- Kent Beck「Implementation Patterns」
Fluent interfaceは
インターフェイスも人に
向けて書かれるべきだと
改めて教えてくれている
http://www.flickr.com/photos/suvcougar/
飛躍
インターフェイス
設計に動線という
メタファを持って
これないだろうか
動線
動線
✓ 建物の中を、人が自然に動く時に
通ると思われる径路
✓ 建物の間取りをするときに気をつ
けるべきこと
✓ 設計の際に利用者の行動パターン
を予測し、より明快に、また移動
距離が長くならないよう考慮する
http://ja.wikipedia.org/wiki/%E5%8B%95%E7%B7%9A
利用者の行動パターン
を予測し、より明快
に、移動距離を短く
勉強中
http://www.flickr.com/photos/storm-crypt/2280100565
どうやって見つけるか
20081205 Object Club Reject Talks2008
これまでの作業は机の上でできてい
ます。確かに現場の条件をよーく考
慮して、このスケッチは出来ていま
す。でも気をつけて下さい! これ
は、あくまで、机の上の「絵」にす
ぎません。現場で、直接、原寸で、
絵を描いて、はじめてリアルな形と
なるのです。
動線の
見つけ方
どうやって見つけるか
✓ TDD
✓ テストコードが最初の利用者
✓ インクリメンタルな開発
✓ こまめにリリースすることで実際
の利用者からフィードバックを受
ける
まとめ
✓ 2種類の利用者
✓ コードを読む、コードを書く
✓ 3つの車輪
✓ メソッドチェーン、カスケード、
セマンティクス
✓ 1つの視点
✓ 利用者に価値があるかどうか
ここまでのまとめ
インターフェイスに対
してプログラミングす
るのであって,実装に対
してプログラミングす
るのではない (GoF)
より良いインター
フェイスを探求す
る僕らの冒険はま
だ始まったばかり
http://www.flickr.com/photos/pedrosz/2287112249
未完
どうぞ
良いお年を
1 of 73

Recommended

01kanji by
01kanji01kanji
01kanjiguest1b518d
553 views20 slides
Pmd Pf 20kadowaki by
Pmd Pf 20kadowakiPmd Pf 20kadowaki
Pmd Pf 20kadowakimedism
154 views10 slides
【湯道】銭湯活性化ラフアイデア by
【湯道】銭湯活性化ラフアイデア【湯道】銭湯活性化ラフアイデア
【湯道】銭湯活性化ラフアイデアHidenori Kondo
751 views15 slides
20110614 hmcc-enishitech by
20110614 hmcc-enishitech20110614 hmcc-enishitech
20110614 hmcc-enishitechKoji SHIMADA
1.8K views38 slides
Next Generation Web Application Architecture by
Next Generation Web Application ArchitectureNext Generation Web Application Architecture
Next Generation Web Application ArchitectureKoji SHIMADA
3.7K views70 slides
20110718 you-must-unlearn-what-you-have-learned rivisited by
20110718 you-must-unlearn-what-you-have-learned rivisited20110718 you-must-unlearn-what-you-have-learned rivisited
20110718 you-must-unlearn-what-you-have-learned rivisitedKoji SHIMADA
2.3K views87 slides

More Related Content

More from Koji SHIMADA

20101204 you-must-unlearn-what-you-have-learned by
20101204 you-must-unlearn-what-you-have-learned20101204 you-must-unlearn-what-you-have-learned
20101204 you-must-unlearn-what-you-have-learnedKoji SHIMADA
2K views104 slides
20101001-Introduction-to-Developer-Testing-With-Ruby by
20101001-Introduction-to-Developer-Testing-With-Ruby20101001-Introduction-to-Developer-Testing-With-Ruby
20101001-Introduction-to-Developer-Testing-With-RubyKoji SHIMADA
2K views27 slides
20100626-OSC2010do-RubySapporo by
20100626-OSC2010do-RubySapporo20100626-OSC2010do-RubySapporo
20100626-OSC2010do-RubySapporoKoji SHIMADA
1.5K views108 slides
20100626-We-Think-We-Act by
20100626-We-Think-We-Act20100626-We-Think-We-Act
20100626-We-Think-We-ActKoji SHIMADA
1.7K views83 slides
20100526 The Productive Programmer by
20100526 The Productive Programmer20100526 The Productive Programmer
20100526 The Productive ProgrammerKoji SHIMADA
1.6K views40 slides
20100226 Jim Coplien Said You Should Foster Generative Scheme In Your System by
20100226 Jim Coplien Said You Should Foster Generative Scheme In Your System20100226 Jim Coplien Said You Should Foster Generative Scheme In Your System
20100226 Jim Coplien Said You Should Foster Generative Scheme In Your SystemKoji SHIMADA
2K views105 slides

More from Koji SHIMADA(20)

20101204 you-must-unlearn-what-you-have-learned by Koji SHIMADA
20101204 you-must-unlearn-what-you-have-learned20101204 you-must-unlearn-what-you-have-learned
20101204 you-must-unlearn-what-you-have-learned
Koji SHIMADA2K views
20101001-Introduction-to-Developer-Testing-With-Ruby by Koji SHIMADA
20101001-Introduction-to-Developer-Testing-With-Ruby20101001-Introduction-to-Developer-Testing-With-Ruby
20101001-Introduction-to-Developer-Testing-With-Ruby
Koji SHIMADA2K views
20100626-OSC2010do-RubySapporo by Koji SHIMADA
20100626-OSC2010do-RubySapporo20100626-OSC2010do-RubySapporo
20100626-OSC2010do-RubySapporo
Koji SHIMADA1.5K views
20100626-We-Think-We-Act by Koji SHIMADA
20100626-We-Think-We-Act20100626-We-Think-We-Act
20100626-We-Think-We-Act
Koji SHIMADA1.7K views
20100526 The Productive Programmer by Koji SHIMADA
20100526 The Productive Programmer20100526 The Productive Programmer
20100526 The Productive Programmer
Koji SHIMADA1.6K views
20100226 Jim Coplien Said You Should Foster Generative Scheme In Your System by Koji SHIMADA
20100226 Jim Coplien Said You Should Foster Generative Scheme In Your System20100226 Jim Coplien Said You Should Foster Generative Scheme In Your System
20100226 Jim Coplien Said You Should Foster Generative Scheme In Your System
Koji SHIMADA2K views
20100213 Where The Street Has No Name by Koji SHIMADA
20100213 Where The Street Has No Name20100213 Where The Street Has No Name
20100213 Where The Street Has No Name
Koji SHIMADA1.9K views
20091030 Uncle Bob Said You Should Be A Professional With Clean Code by Koji SHIMADA
20091030 Uncle Bob Said You Should Be A Professional With Clean Code20091030 Uncle Bob Said You Should Be A Professional With Clean Code
20091030 Uncle Bob Said You Should Be A Professional With Clean Code
Koji SHIMADA2K views
Our Strategy To Survive In This Hard World(tochigirubykaigi02) by Koji SHIMADA
Our Strategy To Survive In This Hard World(tochigirubykaigi02)Our Strategy To Survive In This Hard World(tochigirubykaigi02)
Our Strategy To Survive In This Hard World(tochigirubykaigi02)
Koji SHIMADA1.8K views
RubySapporoDigestAndMore-osc2009do by Koji SHIMADA
RubySapporoDigestAndMore-osc2009doRubySapporoDigestAndMore-osc2009do
RubySapporoDigestAndMore-osc2009do
Koji SHIMADA1.5K views
20090124 Pleasantly Programming with Ruby by Koji SHIMADA
20090124 Pleasantly Programming with Ruby20090124 Pleasantly Programming with Ruby
20090124 Pleasantly Programming with Ruby
Koji SHIMADA1.6K views
20081220 Rubybonenkai2008 Sapporo by Koji SHIMADA
20081220 Rubybonenkai2008 Sapporo20081220 Rubybonenkai2008 Sapporo
20081220 Rubybonenkai2008 Sapporo
Koji SHIMADA1.5K views
Talking About Fluent Interface by Koji SHIMADA
Talking About Fluent InterfaceTalking About Fluent Interface
Talking About Fluent Interface
Koji SHIMADA1.9K views
20081004-OSC2008Tokyo/Fall-MetaCon by Koji SHIMADA
20081004-OSC2008Tokyo/Fall-MetaCon20081004-OSC2008Tokyo/Fall-MetaCon
20081004-OSC2008Tokyo/Fall-MetaCon
Koji SHIMADA1.6K views
20080823-TransformingPlainTextToHtml by Koji SHIMADA
20080823-TransformingPlainTextToHtml20080823-TransformingPlainTextToHtml
20080823-TransformingPlainTextToHtml
Koji SHIMADA978 views
20080730-WelcomeToLifeWithRuby by Koji SHIMADA
20080730-WelcomeToLifeWithRuby20080730-WelcomeToLifeWithRuby
20080730-WelcomeToLifeWithRuby
Koji SHIMADA1.8K views
20080622 Reject Kaigi2008 Kaigi Freaks by Koji SHIMADA
20080622 Reject Kaigi2008 Kaigi Freaks20080622 Reject Kaigi2008 Kaigi Freaks
20080622 Reject Kaigi2008 Kaigi Freaks
Koji SHIMADA1.6K views
20080521-Ruby-on-Rails-Security by Koji SHIMADA
20080521-Ruby-on-Rails-Security20080521-Ruby-on-Rails-Security
20080521-Ruby-on-Rails-Security
Koji SHIMADA1.5K views
The Hitchhiker’s Guide To Dsl by Koji SHIMADA
The Hitchhiker’s Guide To DslThe Hitchhiker’s Guide To Dsl
The Hitchhiker’s Guide To Dsl
Koji SHIMADA1.3K views
Why-is-ImplementationPattterns-important-so-much by Koji SHIMADA
Why-is-ImplementationPattterns-important-so-muchWhy-is-ImplementationPattterns-important-so-much
Why-is-ImplementationPattterns-important-so-much
Koji SHIMADA1.2K views

Recently uploaded

光コラボは契約してはいけない by
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけないTakuya Matsunaga
25 views17 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
29 views38 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
90 views41 slides
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PC Cluster Consortium
45 views12 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
132 views64 slides

Recently uploaded(12)

光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga25 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka90 views
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4380 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda453 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.76 views

20081205 Object Club Reject Talks2008