『実践テスト駆動開発~テストに導かれてオブジェクト指向ソフトウェアを育てる~』を読みながら

タイトルの本(原題 "Growing-Object-Oriented Software, Guided by Tests"、通称GOOSを読みながらのツイートをピックアップ。
0
鏡双司 | Skeb Open @SO_C

『JUnit実践入門』の方が読みやすそうだったので見送り。 / 『実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる』 amazon.co.jp/gp/product/479…

2013-01-11 18:13:25
鏡双司 | Skeb Open @SO_C

『実践テスト駆動開発』読み始めた。

2015-06-16 08:52:57
鏡双司 | Skeb Open @SO_C

「何かを設計するときには、常にもうひとまわり大きなコンテキストの中で考えること。椅子ならば部屋の中にあることを考える。部屋なら家の中、家なら環境の中、環境なら都市計画の中。」エリエル・サーリネン。『実践テスト駆動開発』からの孫引き。これは肝に銘じておこう。局所最適になりがちだから

2015-06-18 23:08:21
鏡双司 | Skeb Open @SO_C

買い物をするときにも、「ひとまわり大きなコンテキストで考える」といい買い物ができそう。少なくとも置き場に困るものを買って持て余す事態は防げそう。

2015-06-18 23:10:48
鏡双司 | Skeb Open @SO_C

『実践テスト駆動開発』を少しずつ読み進めている。書いているコードの抽象度が違うと、プログラミングスタイルも変わる。つまりプロタクト全体を見渡すと、パラダイムが混在するというのは、適材適所の結果なんだろうけれど、レベル高いなぁ。

2015-06-22 09:07:35
鏡双司 | Skeb Open @SO_C

直面している問題に対して知られた解がないもいうことは、問題が本当に難しいか、そうでなければ物の見方がずれているんだろうなぁ。解を探す先が間違っていたら、そりゃ見つかるモノも見つからない。

2015-06-23 08:34:42
鏡双司 | Skeb Open @SO_C

うまくテストを自動化できないときに、テスト対象のテスタビリティを上げる方法じゃなくて、なんでもできるテストツールを探していることがある。プロタクトコードの更新に対する権限上の制約があるから、短期的にはやむを得ないのだけれど、長期的にはジリ貧になるだろうなぁ。

2015-06-23 08:38:13
鏡双司 | Skeb Open @SO_C

短期的には目の前の問題に対処できつつ、長期的な問題解消の布石になるような手はないものか。

2015-06-23 08:39:04
鏡双司 | Skeb Open @SO_C

『Effective Java』を読み返したくなってきた。

2015-06-23 09:10:51
鏡双司 | Skeb Open @SO_C

でも何か特定の問題を抱えている訳じゃないから読みかけの『実践テスト駆動開発』の続きを読もう。

2015-06-23 09:15:35
鏡双司 | Skeb Open @SO_C

コラム「Implクラスには意味がない」に書かれている「きなくささ」よく見かける。拡張する予定がないけど、とりあえずIF挟んでいるのかな。YAGNIの原則なら必要が出てからでもいい気がするけど、IFを後から追加するの大変だからな……。

2015-06-23 09:19:19
鏡双司 | Skeb Open @SO_C

『実践テスト駆動開発』のNote「インタフェースとプロトコル」の区別、便利だ。インタフェースが整合するかの記述、(コミュニケーション)プロトコルはどういっしょに使われるかの記述。

2015-06-23 12:45:37
鏡双司 | Skeb Open @SO_C

『実践テスト駆動開発』、「抽象レベルのプログラミングを組み上げる」はテストの抽象化の話。xUTPでもこんな話題あった。SeleniumなんかでいうPage Objectパターンかな。

2015-06-23 12:56:37
鏡双司 | Skeb Open @SO_C

『実践テスト駆動開発』とタイトルにはTDDが前面だけれど、サブタイトル『テストに導かれてオブジェクト指向ソフトウェアを育てる』が示すように、目指すのはオブジェクト指向。原題も"Growing Object-Oriented Software, Guided by Tests"

2015-06-25 09:06:01
鏡双司 | Skeb Open @SO_C

ここでのTDDは設計手法。テストをソフトウェア万力と呼ぶと、Growingと噛み合わない。レガシーコード相手ならこちらだろうけれど、ソフトウェアの拡張を考えるとガイドを先に延ばして、それに沿ってソフトウェアを育てるイメージが浮かぶ。

2015-06-25 09:08:44
鏡双司 | Skeb Open @SO_C

8章のエピグラフもいいなぁ。ほんとにそう思う。API調べるのが主な作業だったりする。「今どきプログラミングと言えば、一緒に扱わなければいけない外部の部品についていろいろと試してみる作業がほとんどだ」ジェラルド・ジェイ・サスマン

2015-06-25 09:11:12
鏡双司 | Skeb Open @SO_C

サードパーティAPIの上に被せるアダプタレイヤは、『エリック・エヴァンスのDDD』でいう腐敗防止層みたいなものかな。

2015-06-25 09:14:07
鏡双司 | Skeb Open @SO_C

腐敗防止という言葉はキツ目だよなあ。ORマッパーとか、どちらが腐りかけているということもないだろうし。

2015-06-25 09:16:16
鏡双司 | Skeb Open @SO_C

『実践テスト駆動開発』、第II部まで読み終えた。

2015-06-25 09:24:18
鏡双司 | Skeb Open @SO_C

『実践テスト駆動開発』の第10章「うごくスケルトン」。これを作るのがイテレーション・ゼロの重要なタスクの一つ。

2015-06-25 09:35:47
鏡双司 | Skeb Open @SO_C

2年以上前に難しそうだったから見送った本を今読んでいることが、Twilogから判明した。 twitter.com/SO_C/status/28…

2015-06-25 09:44:00
鏡双司 | Skeb Open @SO_C

当時だったら読めていた気がしないので、ナイスジャッジ俺。

2015-06-25 09:47:42
鏡双司 | Skeb Open @SO_C

今も十分理解できているかは怪しいが。

2015-06-25 09:47:57
鏡双司 | Skeb Open @SO_C

『実践テスト駆動開発』、ようやく最初のテストが失敗するところまで読み進めた。スケルトンはまだ動かない。

2015-06-26 09:15:49
鏡双司 | Skeb Open @SO_C

最初の動かすの大変だよなあ。

2015-06-26 09:46:37