독서일지/클린 코드

클린 코드 독서일지 - Day 28

Sadie Kim 2023. 12. 3. 23:03

어떻게 짰느냐고?

한 번에 깨끗하고 우아한 프로그램을 내놓는 것은 불가능하다.
-> 깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다.
코드가 돌아가는 것에 만족하지 않고 점진적인 개선을 해야 한다.

Args: 1차 초안

코드는 돌아가지만 엉망이다.

  • boolean 인수만 지원하던 첫 버전은 괜찮았으나, 지원하는 타입을 추가하면서 코드가 복잡하고 엉망이 되어갔다.
    -> 초기 코드에서 새 인수 유형을 추가하려면 주요 지점 세 곳에다 코드를 추가해야 했기 때문
  • 따라서 기능을 추가하는 것을 멈추고 리팩토링을 시작했다.
    -> 인수 유형을 다양하지만 모두가 유사한 메서드를 제공하므로 ArgumentMarshaler 클래스를 탄생시켰다.

점진적으로 개선하다

개선이라는 이름 아래 구조를 크게 뒤집는 행위는 프로그램을 망칠 수 있다. -> 개선 전과 똑같이 프로그램을 돌리기가 어렵기 때문.
=> 테스트 주도 개발(TDD)을 사용하면 시스템을 망가뜨리는 변경을 방지한다.
테스트를 먼저 짜 놓고 시스템에 자잘한 변경을 가한다.