[개발 도서 공부 - 📗 Clean Code] 1장: 깨끗한 코드

Hyunjoon Choi·2023년 10월 9일
0
post-thumbnail

르블랑의 법칙 (leblanc’s law): 나중은 결코 오지 않는다.

나쁜 코드로 치르는 대가

  • 나쁜 코드는 개발 속도를 크게 떨어뜨린다.
  • 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다.
  • 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가답지 못하다.

깨끗한 코드란 무엇인가?

비야네 스트롭스트룹 (C++ 창시자)

  • 깨끗한 코드는 우아한, 즉 ‘보기에 즐거운’ 코드다.
  • 깨끗한 코드는 효율적인 코드다.
  • 깨끗한 코드는 의존성을 최대한 줄여 유지보수가 쉬운 코드다.
  • 깨끗한 코드는 오류 처리가 철저히 된, 세세한 사항까지 꼼꼼히 처리된 코드다.
  • 깨끗한 코드는 성능을 최적으로 유지하여 나쁜 코드를 유혹하지 않는다.

그래디 부치

  • 깨끗한 코드는 잘 쓴 문장처럼 읽힌다.
  • 깨끗한 코드는 명쾌한 추상화와 단순한 제어문으로 가득하다.
  • 깨끗한 코드는 반드시 필요한 내용만 담는다.

데이브 토마스

  • 깨끗한 코드는 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다.
  • 깨끗한 코드에는 단위 테스트 케이스와 인수 테스트 케이스가 존재한다.
  • 깨끗한 코드는 특정 목적을 달성할 수 있는 방법이 하나만 존재한다.
  • 깨끗한 코드는 의존성을 최소로 하며, 각 의존성을 명확히 정의한다.

마이클 페더스

  • 깨끗한 코드는 주의 깊게 작성한 코드다.
  • 깨끗한 코드는 손 댈 곳이 딱히 보이지 않는 코드다.

론 제프리스 & 켄트 벡

  • 깨끗한 코드는 모든 테스트를 통과한다.
  • 깨끗한 코드는 중복이 없다.
  • 깨끗한 코드는 시스템 내 모든 설계 아이디어를 표현한다.
  • 깨끗한 코드는 클래스, 메서드, 함수 등을 최대한 줄였다.
  • 객체가 여러 기능을 수행한다면 여러 객체로 나눈다.
  • 메서드가 여러 기능을 수행한다면 메서드 추출을 사용해 기능을 명확히 기술하는 메서드 하나와 기능을 실제로 수행하는 메서드 여러 개로 나눈다.

워드 커닝햄 (Wiki 창시자)

  • 깨끗한 코드는 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행해야 한다.
  • 깨끗한 코드는 코드를 독해하느라 머리를 쥐어짤 필요가 없어야 한다.

보이스카우트 규칙을 따르라

보이스카우트에서는 다음과 같은 규칙이 있다.

캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라.

이를 코드에 적용하자. 즉, 체크아웃할 때 보다 좀 더 깨끗한 코드를 체크인한다면 코드는 절대 나빠지지 않는다.

profile
개발을 좋아하는 워커홀릭

0개의 댓글