Home 클린 코드 - 1장 깨끗한 코드
Post
Cancel

클린 코드 - 1장 깨끗한 코드

범위

  • 1장 깨끗한 코드

책에서 기억하고 싶은 내용

코드가 존재하리라

  • 코드는 요구사항을 표현하는 언어라는 사실을 명심한다.
  • 그러므로 코드도 항상 존재하리라.

나쁜 코드

나쁜 코드로 치르는 대가

  • 나쁜 코드는 개발 속도를 크게 떨어트린다.
  • 나쁜 코드가 쌓일 수록 팀의 생산성은 떨어진다. 그러다가 마침내 0에 근접한다.
  • 깨끗한 코드란?
    • 비야네 스트롭스트룹
      • 논리가 간단해야 버그가 숨어들지 못한다.
      • 의존성을 최대한 줄여야 유지보수가 쉬워진다.
      • 오류는 명백한 전략에 의거해 철저히 처리한다.
      • 성능을 최적으로 유지해야 사람들이 원칙없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다.
      • 한 가지를 제대로 한다.
      • 깨끗한 코드는 세세한 사항까지 꼼꼼하게 처리하는 코드다.- 깨끗한 코드란 한 가지를 잘 한다.
      • 깨끗한 코드는 한 가지에 ‘집중’한다.
    • 그래디 부치
      • 단순하고 직접적이다.
      • 잘 쓴 문장처럼 읽한다.
      • 설계자의 의도를 숨기지 않는다. 오히려 명쾌한 추상화와 단순한 제어문으로 가득하다.
      • 가독성: 깨끗한 코드는 잘 쓴 문장처럼 읽혀야 한다.
      • 코드는 추측이 아니라 사실에 기반해야 한다.
      • 반드시 필요한 내용만 담아야 한다.
      • 코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야 한다.
    • ‘큰’ 데이브 토마스
      • 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다.
      • 단위 테스트 케이스와 인수 테스트 케이스가 존재한다.
      • 의미 있는 이름이 붙는다.
      • 특정 목적을 달성하는 방법은 (여러가지가 아니라) 하나만 제공한다.
      • 의존성은 최소이며 각 의존성을 명확히 정의한다.
      • 깨끗한 코드란 다른 사람이 고치기 쉽니다.
      • 코드가 ‘문학적’이어야 한다.
      • 요점은 인간이 읽기 좋은 코드를 작성하라는 말이다.
    • 마이클 페더스
      • 언제나 누군가 주의 깊게 짰다는 느낌을 준다. 고치려고 살펴봐도 딱히 손 댈 곳이 없다.
    • 론 제프리스
      • 모든 테스트를 통과한다.
      • 중복이 없다.
      • 시스템 내 모든 설계 아이디어를 표현한다.
      • 클래스, 메서드, 함수 등을 최대한 줄인다.

      • 중복 줄이기, 표현력 높이기, 초반부터 간단한 추상화 고려하기.
    • 워드 커닝햄
      • 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다.

      • 깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다
      • 프로그램을 단순하게 보이도록 만드는 열쇠는 언어가 아니다. 언어를 단순하게 보이도록 만드는 열쇠는 프로그래머다!

우리들 생각

우리는 저자다

보이스카우트 규칙

  • 잘 짠 코드가 전부는 아니다. 시간이 지나도 언제나 깨끗하게 유지해야 한다.
  • 캠프장은 처음 왔을 때보다 더 깨끗하게 해 놓고 떠나라.
  • 체크아웃할 때보다 좀 더 깨끗한 코드를 체크인한다면 코드는 절대 나빠지지 않는다.
  • 지속적인 개선이야말로 전문가 정신의 본질

프리컬과 원칙

결론

참조문헌

소감

  • 깨끗한 코드에 대한 전문가들의 생각은 공통점이 많고, 나도 그렇게 생각하는 부분이 많다. 단지, “어떻게”해야 하는지 막막하다.
  • 이 책을 읽으면서 “어떻게” 깨끗한 코드를 지향할 수 있는가를 고민해보고, 또한 깨끗한 코드를 위한 정신 무장을 해야 할 거 같다.
  • 나쁜 코드 부분은 보면서 다 경험한 이야기들이라 쓴 웃음이 나왔다.
  • 1장인데 인상적였던 부분을 적다보니, 너무 많이 적었다. 지치지 않으려면 더 요약해야 겠다.
This post is licensed under CC BY 4.0 by the author.

코틀린으로 배우는 함수형 프로그래밍

클린 코드 - 2장 의미 있는 이름