「レガシーコード改善ガイド」読んだ

自分用。 これ読んだ。 Amazon.co.jp: レガシーコード改善ガイド (Object Oriented SELECTION): マイケル・C・フェザーズ, ウルシステムズ株式会社, 平澤 章, 越智 典子, 稲葉 信之, 田村 友彦, 小堀 真義: 本 < http://www.amazon.co.jp/dp/4798116831 > 続きを読む
0
べちか @bechica

サブクラスのオブジェクトはどんな場合においてもスーパクラスのオブジェクトの代わりに使えなければならない クラスの利用者が、そのクラスがサブクラスであることを知らずに使えるべきではない と書いてある

2011-03-29 01:51:37
べちか @bechica

このLiskovなんとかに違反してない限りは具象メソッドをオーバライドしてもいいけど、可能な限り具象クラスをオーバライドしないようにしましょうね ということっぽい

2011-03-29 01:55:48
べちか @bechica

テスト書いてるとき、オブジェクトが生成しづらいパラメータを必要とするような場合はとりあえずそのパラメータの代わりにnull渡しとくと、そのパラメータが実行中に使われたらぬるぽで落ちるだけで、とりあえずテスト自体は書けるようになるし便利だよ、ってかいてある へー

2011-03-29 02:06:05
べちか @bechica

実行時にnull参照できる言語ならどこでも使えるって書いてある ほう

2011-03-29 02:06:35
べちか @bechica

テストコード書いてる時に、特定クラスのインスタンス化が難しい時は さっきのnull渡すのとかインタフェース抽出するとかやれって書いてある イメージわいてない

2011-03-29 02:12:13
べちか @bechica

この章よくわからんから説明できん

2011-03-29 02:13:54
べちか @bechica

とりあえず150P近く読んだし こんなところだろう・・・ 寝よう 明日の仕事に障る

2011-03-29 02:15:04
べちか @bechica

第11章 コード触る必要あるけど、どのメソッドをテストすればいいのかわからん

2011-03-29 17:33:06
べちか @bechica

仕様可テストを書こう

2011-03-29 17:33:25
べちか @bechica

とにかくなんだ、テスト作るときに影響範囲が探れないとヤバイ みたいな話をしているみたいだ

2011-03-29 18:08:06
べちか @bechica

コンストラクタのパラメータ化。コンストラクタ内でパラメータ作ってるようなとき、クラスの外側でオブジェクトを生成したらどうかという提案。これをやるとカプセル化が壊れて読みにくくなるけど、テストの作り方によってはむしろコードの振る舞いが把握しやすくなるといってる。

2011-03-29 18:11:55
べちか @bechica

第12章 同時にたくさんの変更をコードに加える必要があるとき、すべてのクラスの依存関係を排除すべきか?

2011-03-29 18:12:57
べちか @bechica

変更を適用すべき箇所が狭い範囲で散らばっているとき、テストコードが書きにくくてイラつくかもね みたいな

2011-03-29 18:15:02
べちか @bechica

割り込み点と絞り込み点 割り込み点:特定の変更による影響を検出できるプログラム上の箇所 絞り込み点:加えた複数の変更の影響を一度に検出できるプログラム上の箇所

2011-03-29 18:17:39
べちか @bechica

絞り込み点を探ると少数メソッドへのテストを書くことで多数のメソッドの変更を検出できる。 コレをやりすぎるとテストコード肥大化するから、出来るだけ小分けにする。

2011-03-29 18:20:22
べちか @bechica

メソッドにテストがあるか都度確認せよ 無かったらまず書け みたいなにいうてる うん

2011-03-29 18:21:36
べちか @bechica

テストもドキュメントも無かったら 仕様を把握するためにテストを書け。 仕様が理解できたら新しい仕様に応じたテストを書いて、必要なコード修正内容を把握しよう。リファクタリングするときは既存の振る舞いや振る舞い同士の関係を検証するテストも書け。

2011-03-29 18:25:30
べちか @bechica

第14章 ライブラリに依存しすぎないように注意せよ

2011-03-29 18:26:43
べちか @bechica

ライブラリのクラスへの直接呼出しをコード内に分散して記述することは ライブラリ側に変更(仕様以外にも利用料金とか)が加わったときにリスク大になる。一箇所にまとめよう。

2011-03-29 18:29:12
べちか @bechica

第15章 私のアプリケーションはAPI呼び出しだらけです

2011-03-29 18:29:37
べちか @bechica

まあ、ライブラリの仕様に依存しすぎるとヤバいっつーのと内容は同じだな

2011-03-29 18:31:16
べちか @bechica

API利用するところをインタフェース自作してラップしようって手法が紹介されてる。本番では本物のAPI叩いて、テスト中はモック叩くとかがやりやすくなるから、と。

2011-03-29 18:33:05
べちか @bechica

もいっこ紹介されてるけど意味わかんないし使えそうな感じしないからスルー

2011-03-29 18:33:50