카테고리 없음
[클린 코드] 12장. 창발성
작은별._.
2024. 3. 17. 14:13
728x90
창발성 설계로 깔끔한 코드를 구현하자. 설계 규칙은 아래와 같이 4가지가 있다. (중요도 순)
- 모든 테스트를 실행한다.
- 중복을 없앤다.
- 프로그래머 의도를 표현한다.
- 클래스와 메서드 수를 최소로 줄인다.
1. 모든 테스트를 실행하라
- 테스트가 가능한 시스템을 만들려고 애쓰면 설계 품질이 높아진다. 즉, 테스트 케이스를 작성하면 설계 품질이 높아진다.
- 테스트 케이스를 만들고 계속 돌림으로써 낮은 결합도와 높은 응집력이라는 객체 지향 방법론 목표를 달성할 수 있다.
리팩토링 (2~4번 규칙)
테스트 케이스를 모두 작성했다면, 이제는 코드와 클래스를 정리할 수 있다. 테스트 케이스가 있기 때문에, 코드를 정리하면서 시스템이 깨질까 걱정할 필요가 없다.
2. 중복을 없애라
- 공통적인 코드를 새 메서드로 추출하여 중복을 줄인다.
- 이 과정에서 클래스가 SRP를 위반한다는 것을 발견할 수도 있다. 그러므로 추출한 메서드를 다른 클래스로 옮겨서 리팩토링을 진행할 수 있다.
- Template Method 패턴을 활용하자.
3. 표현하라
- 코드는 개발자의 의도를 분명히 표현해야 한다. 그래야 다른 사람이 그 코드를 이해하기 쉬워져서 결함이 줄어들고 유지보수 비용이 적게 든다.
- 좋은 이름을 선택하라. (메서드 명, 클래스 명 등)
- 함수와 클래스 크기를 가능한 줄여라.
- 클래스와 함수가 작을수록 작명하기 쉽고, 구현하기 쉬우며, 이해하기 쉽다.
- 표준 명칭을 사용하라.
- 디자인 패턴을 사용했다면, 클래스 이름에 패턴 이름을 넣어주자.
- 단위 테스트 케이스를 꼼꼼히 작성하라.
- 잘 만들어진 테스트 케이스를 읽어보면 클래스 기능이 한눈에 들어온다.
- 표현력을 높이는 가장 중요한 방법은노력이다. 코드를 작품이라 생각하면서 읽기 쉽게 만들려는 충분한 고민을 하는 시간을 들이자.
4. 클래스와 메서드 수를 최소로 줄여라
- '가능한' 줄여라.
- 무의미하게 줄이기 보다는, 시스템 크기를 최대한 작게 유지하기 위한 규칙으로 가장 우선순위가 낮은 규칙이다.
728x90
반응형