オブジェクト指向
らしい設計
現場で役立つシステム設計の原則
東京エレクトロン
すずき あつし
本日のおはなし
約10年たっても達成できない「オブジェクト
指向らしい設計」についての思いのおはなし
P.301 オブジェクト指向らしい設計を
身体で覚える のおはなし
約10年前
ThoughtWorksアンソロジー
オブジェクト指向エクササイズ「9つのルール」
マーティン ファウラー
に会う
9つのルール
1. 1つのメソッドにつきインデントは1段階まで
2. else句を使用しないこと
3. 全てのプリミティブ型と文字列型をラップする
4. 1行につきドットは1つまでにする
5. 名前を省略しない
6. 全てのエンティティを小さくする
7. 1つのクラスに付きインスタンス変数は2つまでにす
る
8. ファーストクラスコレクションを使用する
9. Getter, Setter, プロパティを使用しない
10年経ったけど
やっぱなんだんろ?
人間が理解しやすいソフトウェア
変更しやすいソフトウェア
“過激派”
そもそもオブジェクト指向で何したかった?
ソフトウェア開発をどうしたかった?
9つのルール
1. 1つのメソッドにつきインデントは1段階まで
2. else句を使用しないこと
3. 全てのプリミティブ型と文字列型をラップする
4. 1行につきドットは1つまでにする
5. 名前を省略しない
6. 全てのエンティティを小さくする
7. 1つのクラスに付きインスタンス変数は2つまでにす
る
8. ファーストクラスコレクションを使用する
9. Getter, Setter, プロパティを使用しない
関数型のパラダイムでは
ドット1つじゃないでしょ
インスタンス変数2つだと
不自然に2分割されない?
GUI接続層は依存するかもね
JSON変換したいとか
プリミティブ型の方が
処理早かったりするよね
人間の思考に寄り添ってなくない?
”過猶不及”
『論語』孔子
行き過ぎは足りないのと同じ
by 孔子
”自然さ、行き過ぎない”
ルールもいいけど
ちゃんと考えないとね
わたしたちのソフトウェア開発を
もっと良くしていこう
すずき考えすぎ
自然さにこだわりすぎず
いいところは取り入れる
まとめ
今より少しでも良くしていく絶え間ない取り組み
議論できる仲間たちの大切さ
を実感しました
オブジェクト指向らしさも追い求めつつ

Object Oriented Design