SlideShare a Scribd company logo
オブジェクト指向
らしい設計
現場で役立つシステム設計の原則
東京エレクトロン
すずき あつし
本日のおはなし
約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変換したいとか
プリミティブ型の方が
処理早かったりするよね
人間の思考に寄り添ってなくない?
Object Oriented Design
”過猶不及”
『論語』孔子
行き過ぎは足りないのと同じ
by 孔子
”自然さ、行き過ぎない”
ルールもいいけど
ちゃんと考えないとね
わたしたちのソフトウェア開発を
もっと良くしていこう
すずき考えすぎ
自然さにこだわりすぎず
いいところは取り入れる
Object Oriented Design
まとめ
今より少しでも良くしていく絶え間ない取り組み
議論できる仲間たちの大切さ
を実感しました
オブジェクト指向らしさも追い求めつつ

More Related Content

PPTX
Agile Japan2016 Kanban
PPTX
Sapporo Scrum to Gathering 2018 Agile and Scrum
PDF
Working agreementにinspireされた話
PPT
勝つための計画づくり 20110415(鈴木)
PPTX
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Agile Japan2016 Kanban
Sapporo Scrum to Gathering 2018 Agile and Scrum
Working agreementにinspireされた話
勝つための計画づくり 20110415(鈴木)
GitHub + Travis CI + COVERALLS (+ Maven) でCI環境を2時間でつくる
2024 Trend Updates: What Really Works In SEO & Content Marketing
Storytelling For The Web: Integrate Storytelling in your Design Process
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Ad

Object Oriented Design