調べた原則をまとめてみた

せっかくだから,聞いたことのある原則,知っていた原則,調べた原則を書いてみた.
間違っているところは指摘してください.

ソフトウェア原則

ソフトウェアに関する原則です.

Ambler's Law of Standards(Amblerの標準化の法則)


標準化ガイダンスを再利用するためのスコープの法則です.
業界標準 > 組織標準 > プロジェクト標準 > 個人標準 > なし
ということらしい.まぁ,大きいスコープを利用した方がいいだろ.

Rod Johnsonの標準化の法則


ダメな標準があるのは,標準がないことよりもずっと悪いということらしい.

YAGNI


You Aren't Going to Need It.「それは必要にならない。」
多分いるだろうではなく,ほんとに必要になったときに必要なモノを作成する.

the Low of Demeter(デメテルの法則)


Don't Talk to Strangers.
オブジェクトは直接の友達以外お話しちゃだめ.なんというイジメw

The DRY Principle(DRY原則)


Don't Repeat Yourself.
"重複させない"という考えに基づいてプログラムをする.

KISS principle(KISS原則)


Keep It Simple Stupid.
Keep It Simple and Small.
つまり,シンプルにしろってことです.これはソフトウェアだけじゃありませんね.
Simple is the best.

オブジェクト指向

オブジェクト指向に関する原則です.

The SingleResponsibilityPrinciple(SRP)


単一責任の原則.
クラスを変更する理由は一つ以上存在してはならない
役割(責務) = 存在理由

The Open-Closed Principle (OCP)


開放/閉鎖原則.
拡張に対して開いていて,変更には閉じている.
「むすんでひらいての原則」と面白い表現をしている方がいました.これは,とても分かりやすいと思う.

The Liskov Substitution Principle (LSP)


リスコフの置換原則.
上位クラスと下位クラスは置換が可能でなければならないという原則.

The Dependency Inversion Principle (DIP)


依存関係逆転の原則.
抽象に対して依存し,実装に対しては依存しないという考え.

The Interface Segregation Principle (ISP)


インターフェース分離の原則.
汎用的な一つのインターフェースを作るのではなく,ある機能に特化した複数のインターフェースを作成する.

The Reuse/Release Equivalence Principle (REP)


再利用開放等価の原則.
パッケージを再利用可能にするため,クラス群をリリースする単位とする.

The Common Reuse Principle (CRP)


共通再利用の原則.
再利用するために一連のグループ単位で考える.
The Interface Segregation Principle(ISP)のパッケージ版(?).

The Common Closure Principle (CCP)


共通閉鎖の原則.
将来に変更が起こるクラスは,同じパッケージに入れるという考え.

The Acyclic Dependencies Principle (ADP)


非環式依存の原則.
依存関係は循環してはいけない.

The Stable Dependencies Principle (SDP)


安定依存の原則.
安定しているパッケージは修正が難しく,不安定なパッケージは修正が容易ということらしいです.(妙な感じがする)
このことから,パッケージの依存関係はより安定しているパッケージへと向かうべきであるということです.
少し分かりづらいので,また後で修正します.

The Stable Abstractions Principle (SAP)


安定抽象概念の原則.
パッケージの依存関係は抽象度が高いパッケージへの向かうべき.
The Dependency Inversion Principle (DIP)のパッケージ版.


追加があると思うが,とりあえずこんなところです.
また,調べて新しい原則が発見できたら,追加します.

参考サイト


参考文献

  • 著:ロバート・C・マーチン(2008)「アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の真髄と匠の技」 SoftBankCreative 682pp.


最終更新:2009年05月31日 15:37
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。