좋은 소프트웨어 시스템은 Clean Code 로부터 시작된다.
Clean Code 를 위해서는 SOLID 원칙을 준수해야 한다.
SOLID 원칙은 함수와 데이터 구조를 클래스로 배치하는 방법 , 그리고 해당 클래스들을 서로 결합하는 방법을 설명하며 , 꼭 객체 지향 소프트웨어에만 적용되는건 아니다.
즉 변경에 유연하고 이해하기 쉬우며 , 많은 소프트웨어 시스템에 사용될 수 있는 코드를 짜는 것이 목적이다.
각 소프트웨어 모듈의 변경 이유는 단 하나여야만 한다.
코드를 수정하기 보다는 새로운 코드를 추가하는 방식으로 시스템의 행위를 변경할 수 있도록 설계해야 한다.
상호 대체 가능한 구성요소를 이용해서 소프트웨어 시스템을 만드려면 ,이들은 서로 반드시 치환 가능해야 한다.
소프트웨어 설계자는 사용하지 않은 것에 의존하지 않아야 한다
고수준 정책 ( 하이레벨 즉 입출력과 먼 시스템 ) 을 구현하는 코드는 저수준 ( 입출력과 밀접한 시스템 ) 세부사항을 구현하는 코드에 절대로 의존해서는 안 된다.