[開発図書]Clean Code::第12章-創造性
12758 ワード
🎓 ガンの足
下層(コンポーネント)にない特性や挙動は、上層(構造全体)に自発的に現れる.
📕 革新的な設計を採用し、簡潔なコードを実現
ケントベック氏によると、以下のルールに従って、設計は「簡単」(重要度順)だという。
📗 簡単な設計規則1-すべてのテストを実行します。
設計は予想通りに稼働するシステムを発売すべきである.
すべてのテストを経て、メリットは以下の通りです.
📙 設計規則の簡略化2~4:再設計
すべてのテストケースを作成した場合は、コードとクラスを整理します->「漸進的な再構築」
コードの追加とテストケースの返却を繰り返す
ソフトウェア設計の品質を向上させる方法
*集約性:プログラムを構成する各モジュールが固有の機能をうまく処理できる程度
*結合度:異なるモジュール間の相互依存度または関連度
📘 重複除外
重複性は、追加の作業、追加のリスク、および不要な複雑さを意味するため、最小限に抑えることが望ましい.
💻 実施冗長例218 p
📍 単純メソッドアレイ
//추상 클래스 선생님
abstract class Teacher{
public void start_class() {
inside();
attendance();
teach();
outside();
}
// 공통 메서드
public void inside() {
System.out.println("선생님이 강의실로 들어옵니다.");
}
public void attendance() {
System.out.println("선생님이 출석을 부릅니다.");
}
public void outside() {
System.out.println("선생님이 강의실을 나갑니다.");
}
// 추상 메서드
abstract void teach();
}
// 국어 선생님
class Korean_Teacher extends Teacher{
@Override
public void teach() {
System.out.println("선생님이 국어를 수업합니다.");
}
}
//수학 선생님
class Math_Teacher extends Teacher{
@Override
public void teach() {
System.out.println("선생님이 수학을 수업합니다.");
}
}
//영어 선생님
class English_Teacher extends Teacher{
@Override
public void teach() {
System.out.println("선생님이 영어를 수업합니다.");
}
}
public class Main {
public static void main(String[] args) {
Korean_Teacher kr = new Korean_Teacher(); //국어
Math_Teacher mt = new Math_Teacher(); //수학
English_Teacher en = new English_Teacher(); //영어
kr.start_class();
System.out.println("----------------------------");
mt.start_class();
System.out.println("----------------------------");
en.start_class();
}
}
利点と欠点は重複コードを減らすことができる.抽象的な方法が増えるにつれて,クラス管理は複雑になる.サブクラスの役割を減らすことで、コアロジックを容易に管理できます.クラスとクラスの関係とコードが歪む可能性があります.オブジェクト向けにコードを整理できます.
📒 表現
ほとんどのソフトウェアは長期的なメンテナンスを行っています.欠陥とメンテナンスコストを削減するためには、明確なコードを作成する必要があります.そのため、メンテナンス開発者は、コードを理解するために意図を明確に表現する必要があります.
分かりやすいコードの作成方法
名前と機能が関連しています.
📕 クラスとメソッドの数を最小限に抑える
クラスとメソッドのサイズを縮小するために、無数の小さなクラスとメソッドが作成される場合があります.したがって、関数とクラスの数をできるだけ減らす必要があります.
ここでの目標は,関数とクラスサイズを小さく保ちながら,システムサイズを小さく保つことである.
この規則は4つの簡単な設計規則の中で優先度が最も低い.テストケースを作成し、意図を繰り返し、表現する他の作業を排除することが重要です.
📚 Reference
Reference
この問題について([開発図書]Clean Code::第12章-創造性), 我々は、より多くの情報をここで見つけました https://velog.io/@hellojihyoung/개발-도서-Clean-Code-12장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol