はじめに
ディープラーニングのおじさああああん!!(からあげさん転職おめでとうございます🎉1) nikkieです。
先日ちょうぜつ本(『ちょうぜつソフトウェア設計入門』)第2章で6つのパッケージ原則を知りました。
提唱者 Uncle Bobの『Clean Architecture』に手を伸ばしてみたログ(凝集性に関する原則篇)です。
目次
- はじめに
- 目次
- 『Clean Architecture』第13章に至る道
- 第13章「コンポーネントの凝集性」
- 3つの原則のバランスを上手くとる
- SOLID原則との関係
- 終わりに
- P.S. 7/7(金) 第2章「パッケージ原則」のちょうぜつ本_読書py!
『Clean Architecture』第13章に至る道
6つのパッケージ原則はUncle Bobの著作で扱われていることに気づき、新しめの『Clean Architecture』に手を伸ばします。
13章が凝集性に関する3原則、14章が結合に関する3原則で、今回は13章を読みました。
第13章「コンポーネントの凝集性」
まずコンポーネントですが、12章に定義されています。
コンポーネントとは、デプロイの単位のことである。
システムの一部としてデプロイできる、最小限のまとまりを指す。(Kindle の位置No.1554-1555)
13章で扱うのは、どのクラスをどのコンポーネントにまとめるか。
3つの原則
- 再利用・リリース等価の原則
- 閉鎖性共通の原則
- 全再利用の原則
について説かれますが、読み口はちょうぜつ本と大きく異なりました。
3つの原則のバランスを上手くとる
一番の学びは、「どのクラスをどのコンポーネントにまとめるか」は常に変わり続けるものだということ。
- プロジェクト初期:開発しやすさを優先し、再利用性は劣後
- プロジェクトが進み、他のプロジェクトから利用される:再利用性が重要になってくる
図13-1にテンション図があり、3原則の影響の及ぼし方が示されます。
- プロジェクト初期:開発しやすさを優先
- 閉鎖性共通の原則と全再利用の原則
- 再利用・リリース等価の原則を無視するコストは「再利用性の低下」(受け入れてますね)
- プロジェクトが進み、他のプロジェクトから利用される:再利用性が重要になってくる
- 再利用・リリース等価の原則と全再利用の原則へシフト
- 閉鎖性共通の原則を無視するコストは「変更すべきコンポーネントの増加」
SOLID原則との関係
2つの原則(CCPとCRP)について、SOLID原則との関連も学べました。
結びつくことが示され、またちょっと理解が深まった感...!
- 閉鎖性共通の原則(CCP)
- 全再利用の原則(CRP)
終わりに
ちょうぜつ本 2章を機に手を伸ばした『Clean Architecture』13章の読書ログでした。
凝集性に関わる3原則を扱っていて
という学びがありました。
ちょうぜつ本でパッケージ原則を学べた(=前提知識があった)ことで、かわいいイラストがない『Clean Architecture』を読んでも少しは持ち帰れるものがあったなという感覚です🙌
#ちょうぜつ本 2章「パッケージ原則」、どれも初見さんなのですが、『Clean Architecture』13章・14章にあった!
— nikkie にっきー (@ftnext) 2023年6月19日
Uncle Bobの過去作『アジャイルソフトウェア開発の奥義』にもあるっぽい!
行き来することで、すきろーみたいにかわいいと詳しいを交互に楽しめる
かわいい+技術書が融合したちょうぜつ本が、ほかの技術書への扉を開く...!
P.S. 7/7(金) 第2章「パッケージ原則」のちょうぜつ本_読書py!
次回ちょうぜつ本_読書py(Python使い視点でちょうぜつ本を読む、みんなのアウトプット中心の読書会)は7/7(金)です!
このエントリは予習(寄り道)エントリなのでした。
パッケージ原則に興味ある方、大歓迎です!
ぜひぜひお気軽にお越しください〜
#ちょうぜつ本 Python使い視点で読む読書会、次回は2章「パッケージ原則」、7/7(金)七夕🎋開催です!https://t.co/tZMEk1Gcj4
— nikkie にっきー (@ftnext) 2023年6月18日
orihimeパッケージとhikoboshiパッケージが分離させられている...?🤔
- 「からあげ君なら、どこだって大丈夫だよ。」ここ全俺が泣いた😭 ↩