Open-Close 원칙
- 객체는 수정(modification)에는 닫혀있고(Close), 확장(extension)에는 열려있어야(Open) 한다.
중복을 제거하라
- 같은 기능을 하는 코드를 묶어, 중복을 제거하자는 원칙.
메소드 간소화
- 메소드는 두가지 일을 하게 만들지 말아라.
- 메소드의 이름에서 벗어나는 일을 하지 말라.
- 큰 규모의 행동이 필요하다면, 더 큰 범위의 단어로 메소드 명을 짓고, 그 큰 동작을 완성 시키기 위한 메소드의 연결만으로 구현하라.
직교성
- 클래스 끼리의 의존도를 낮춰, 해당 클래스가 변화를 국소화 시키고, 재사용을 촉진하라
가역성
- 변하지 않는 것은 없다. 코드도, 설계도 변화에 대비하라.
계약에 의한 설계
- 이 함수에 들어오기 전에 기대하는 선행 조건(PreCondition)과, 함수 종료시에 보장해야 될 후행 조건(PostCondition)을 검사하라.
80-20법칙
- 20% 코드가 수행시간의 80%를 차지한다.
- 20%의 자주 불리는 코드를 수행하면 80% 이상의 성능향상을 거둘 수 있다.