Skip to content

Latest commit

 

History

History
55 lines (37 loc) · 2.47 KB

chapter1.md

File metadata and controls

55 lines (37 loc) · 2.47 KB

Intro

장인 정신을 익히는 과정은 '이론'과 '실전'이다.

  • 자전거가 굴러가는 과학적 공식을 아무리 이해해도 실제로 타는것과 차이가 있다.

1장 깨끗한 코드

  • 깨진 창문 법칙

난장판을 품는 데에 드는 비용

  • 초기에는 매우 빠른 속도로 진행되던 프로젝트가 1~2년 만에 달팽이처럼 느린 페이스로 진행되게 되는 것을 볼 수 있다.
    • 나쁜 코드로 짠 프로그램에 가해지는 변경사항은 하나 하나가 크리티컬하다.
  • 나쁜 코드가 쌓일 수록 그 팀의 생산성은 떨어지고 결국 0에 수렴한다.
    • 관리팀은 인력을 추가한다.
    • 하지만 새 팀원은 구조를 이해하지 못한다.
    • 인력이 추가된 팀은 '새 인력을 투입했으므로 생산성이 늘겠지'라는 압박을 받는다.
    • 결국 나쁜 코드는 더 쌓인다.

환상의 장대한 재디자인

  • 팀은 봉기한다. 재디자인을 요구한다.
  • 달갑지는 않지만 관리팀 또한 개발팀의 생산성이 바닥을 기는 것을 알고 있으므로 허가하게 된다.
  • 새 tiger 팀 이 setup되고 기존의 프로덕트의 스펙 + 새로운 기능을 맡게 된다. 기존의 팀원들은 기존의 코드를 유지보수하게 된다.
  • 두 팀은 오래 동안 경쟁한다.
  • tiger team이 기존의 프로젝트를 거의 따라잡을 즈음, tiger team의 초기 맴버들은 대부분 새 맴버들로 교체되어 있다.
  • 그리고 그들은 다시 재디자인을 요구한다(?WTF!)

깨끗한 코드는 효율적일 뿐 아니라 생존과 직결되는 문제이다.

정말 시간이 없는 것인지, 시간이 없도록 하는 코드를 보고 있는 것인지 구분하라

여러 개발자들이 정의하는 '클린 코드'

  1. 우아한 코드: 보기에 즐거운 '효율적인' 코드.
  2. 주의를 기울인 코드.
  3. 중복이 없는 코드.
  4. 테스트 코드.
  5. 중복을 피하라.
  6. 한 기능만 수행하라.
  7. 제대로 표현하라.
  8. 작게 추상화하라.

우리는 코드를 작성하는 시간보다 읽는 시간이 압도적으로 길다.

그러므로 읽기 좋은 코드를 작성하는 것이 가장 중요하다.

보이스카우트 규칙

잘 짠 코드가 전부가 아니다. 시간이 지나도 언제나 깨끗하게 유지해야 한다.

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

책의 내용을 읽고 지나가지 말고 세세하게 살펴보고 분석하자.