1장 깨끗한 코드
깨끗한 코드란?
다양한 프로그래머들이 깨끗한 코드에 대해 다른 정의를 내리지만, 그들의 의견에서 교집합을 찾아보면 다음과 같다.
- 깨끗한 코드는 '주의 깊게' 작성된 코드다. 시간과 노력을 들여 깔끔하게 정리하고 세세한 사항까지 꼼꼼하게 신경 쓴 코드다.
- 깨끗한 코드는 가독성이 좋아야 한다. 다른 사람이 읽기 쉬워야 하며, 코드가 하는 일을 명확하게 표현해야 한다.
- 깨끗한 코드는 중복이 없어야 한다. 같은 작업을 여러 차례 반복하는 것은 코드가 아이디어를 제대로 표현하지 못한다는 증거다.
- 깨끗한 코드는 한 가지 일을 잘 해야 한다. 함수나 클래스는 한 가지 일에 집중해야 한다.
- 깨끗한 코드는 테스트 케이스가 존재해야 한다. 아무리 코드가 우아하고 가독성이 높아도, 테스트 케이스가 없다면 깨끗하지 않다고 볼 수 있다.
깨끗한 코드가 왜 필요해?
- 프로젝트 전체적인 측면
- 나쁜 코드가 쌓일수록 팀 생산성은 떨어져 마침내 0에 근접한다.
- 마침내 래거시 시스템의 재설계 단계에 들어서도 마찬가지다. (레거시 시스템의 유지보수 인력과 재설계 인력의 경주의 끝이 성공할거란 보장이 없으니.)
- 개인적인 측면
- 개발자는 코드를 작성하는 것보다 코드를 읽는데 더 많은 시간을 사용한다.
- 자신이 작성했던 코드라도 이 과정을 피해가지 못한다. 주변 코드를 읽지 못하면 새 코드를 짜기도 어렵다. 그 말은 기존 코드가 읽기 쉽다면 새 코드를 짜기도 쉬워진다.
첫번째 규칙
- 잘 짠 코드가 전부가 아니고 시간이 지나도 언제다 깨끗하게 유지해야함.
코드는 처음 읽을때보다 더 깨끗하게 해놓고 떠나라.
한꺼번에 많은 시간을 투자할 필요는 없음. 조금 긴 함수 하나를 분할하고 중복을 제거하는 것만으로 충분.