코딩하는 털보

클린 코드, 12 창발성 본문

Book/클린 코드

클린 코드, 12 창발성

이정인 2021. 9. 8. 17:51

소프트웨어 설계 품질을 높여주는 설계 규칙 4가지

  1. 모든 테스트를 실행한다.
    테스트를 철저히 거쳐 모든 테스트 케이스를 항상 통과하는 시스템은 '테스트가 가능한 시스템'이다.
    테스트가 가능한 시스템을 만들려고 애쓰다보면 설계 품질이 좋아진다.
    • SRP를 준수하는 클래스는 테스트가 훨씬 더 쉽다.
    • 결합도가 높으면 테스트 케이스를 작성하기 어렵다.
      그래서 테스트를 많이 작성할수록 DIP원칙을 적용하고 의존성 주입, 인터페이스, 추상화 등으로 결합도를 낮춘다.
  2. 중복을 없앤다.
    소규모 재사용, TEMPLATE METHOD 패턴 등 중복을 제거할 수 있는 기법을 익혀야 한다.
    템플릿 메서드 패턴, https://rockintuna.tistory.com/187
  3. 프로그래머 의도를 표현한다.
    유지보수 비용을 줄이기 위해 의도를 분명히 표현하고 코드를 명백하게 해야한다.
    • 좋은 이름 선택하기
    • 함수와 클래스 크기를 가능한 줄이기
    • 표준 명칭 사용하기 (디자인 패턴 이름 등)
    • 단위 테스트 케이스를 꼼꼼히 작성하기
      잘 만든 테스트 케이스를 읽어보면 기능이 한눈에 들어온다.
    • 위 네 가지를 잘하려고 노력하기
  4. 클래스와 메서드 수를 최소로 줄인다.
    위의 세 가지 규칙을 지키다보면 클래스와 메서드 수는 자연스럽게 많아진다.
    때문에 불필요하게 그 수가 더 증가되는 것을 막아야 한다.
    • 무의미하고 독단적인 정책 또는 견해를 멀리하고 실용적인 방식을 택해야한다.
      (예를 들어 모든 클래스의 인터페이스를 만든다던가 자료 클래스와 동작 클래스를 무조건 구분해야 한다는 등)
    • 클래스와 함수 수를 줄이는 작업도 중요하지만 위의 다른 작업들이 더 중요하다.
Comments