코드 존재의 이유
저자는 "요구사항을 표현하는 언어"라고 한문장으로 정의한다. 간혹 목적이 희미한채로 코드를 작성하게 될 때도 있는것 같다. 그럴때면 어떤 요구사항을 위해 코드를 작성하는지 다시한번 생각해보고 요구사항을 함께 검토해봐야 한다.
나쁜 코드
나쁜코드란 유지보수가 안되는 코드라고 말한다. main부터 본인이 직접 작성하는 경우보다 기존에 존재하는 코드(legacy code)에 요구사항을 추가하는 경우가 대부분이다. 남들이 작성한 코드는 언제나 부담스럽다. 그러나 어떤 사람이 짠 코드는 며칠을 봐도 이해가 안가는 반면 어떤 사람이 짠 코드는 몇 시간이면 이해가 간다. 남의 코드를 보는 것은 항상 어려운 일이지만 그 난이도의 차이는 분명이 존재한다.
나쁜 코드가 쌓일 수록 생산성은 아래의 그래프 처럼 된다.
마침내 생산성(Productivity)가 0에 수렴하는 순간 아무도 손댈 수 없는 상황까지 온다.
그래서 저자는 말한다. "빨리 가는 유일한 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관이다." 라고
좋은 코드
저명한 프로그래머들의 말을 빌려 다음과 같이 깨끗한 코드의 기준을 제시한다.
- 깨끗한 코드는 한 가지를 제대로 한다.
- 깨끗한 코드는 잘 쓴 문장처럼 읽힌다. 명쾌한 추상화와 단순한 제어문으로 가득하다.
- 깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다. 항상 의미있는 이름이 붙는다.
- 깨끗한 코드는 고치려고 살펴봐도 딱히 손 댈 곳이 없다.
코드를 읽는 시간대비 코드를 짜는 시간의 비율은 10대1을 넘는다고 한다. 책에서 말한 수치가 처음에는 믿기지 않았지만
생각해 보면 대부분 개발이 그렇게 진행되는 것 같다.
나뿐만 아니라 내코드를 볼 다른 사람을 위해서 더 깨끗하고 더 명확한 코드를 짜기 위해 노력할 때 더 좋은 개발자로 성장 할 수 있지 않을까.
'좋은 코드 만들기 > 클린코드' 카테고리의 다른 글
[클린코드] 6. 객체와 자료 구조 (0) | 2021.04.25 |
---|---|
[클린코드] 5. 형식 맞추기 (0) | 2021.04.11 |
[클린코드] 4. 주석 (0) | 2021.03.28 |
[클린코드] 3. 함수 (0) | 2021.03.21 |
[클린코드] 2. 의미있는 이름 (0) | 2021.03.06 |