읽기 좋은 코드가 좋은 코드다
더스틴 보즈웰, 트레버 파우커 지음
임백준 옮김

오랜만에(?) 책을 읽게 되어 읽으면서 기억에 남을만한 구절들을 정리하여 남겨본다.

2020-03-08 아직 읽는중
2020-03-22 완독


  • 코드는 이해하기 쉬워야 한다.

  • 코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화하는 방식으로 작성되어야 한다. 6개월 뒤 그 코드를 보는 사람이 다른 사람이 아닌, 내가 될 수도 있다.

  • 분량이 적으면 좋은 코드일수도 있지만 이해를 위한 시간을 최소화하는 코드가 더 좋다.

  • 이것이 어떤 역할을 하는지 이름에 정보를 잘 담아내면 좋다. 또한, 재치 있는 이름보다는 명확하고 간결한 이름이 더 좋다.

  • 좁은 범위(ex: 지역 변수)에서는 짧은 이름을 써도 괜찮다. 너무 긴 이름은 오히려 읽기 힘들다.

  • 약어나 축약형은 자신(혹은 그 팀의 팀원)이 아닌, 다른 사람이 보았을 때 이해가 되는 단어이면 괜찮다. (eval, dev, doc 등)

  • 이름 포맷팅으로 의미있게 전달해라.
    • ex: JQuery에서 관습적으로 사용하는 $는 변수 앞에 붙였다면 JQuery에 의한 변수값이라는 의미있는 이름이 된다.
  • 내가 아닌 다른 사람이 이름을 보았을 때 다른 의미로 해석할 수 있을지 한번 더 생각해보자.
    • ex: Filter()는 대상을 말그대로 필터링해서 조건에 맞는 것들만 조회하는 것(select())인지, 아니면 삭제해서 제외하는 것(exclude())인지 그 의미가 모호해질 수 있다.
  • 미학적으로 보기 좋은 코드(ex: 들여쓰기를 잘 맞추고 변수는 변수끼리, 코드는 코드끼리 잘 정돈한)가 사용하기 더 편리하다.

  • 중복된 코드가 계속 반복된다면 하나의 메소드로 만들어서 중복을 제거하고 미학적으로 보기 좋게 만들어라.

  • 비슷한 역할의 코드는 그룹지어서 정렬하고 열을 맞추어 정렬된 코드로 보여주도록 하자.

  • 코드에서 빠르게 유추할 수 있는 내용은 굳이 주석으로 달지 말자.

  • 주석 없이 설명이 되지 않는 코드에 주석을 달지 말고 해당 코드를 설명없이 이해되도록 고쳐라.

  • 기본적으로 if/else를 사용하라. 삼항 연산은 매우 간단할 때만 사용해야한다.
    • 줄 수를 최소화하는 것보다 다른 사람이 코드를 읽고 이해하는 데 걸리는 시간을 최소화하는 것이 더 중요하다.
  • 필요없는 변수는 제거하라. 여러 곳에서 쓰일 줄 알고 별도의 변수로 빼두었지만 한번만 사용하고 버릴 변수는 굳이 따로 담아둘 필요가 없다. 오히려 코드 이해에 독이 될 수 있다.

  • 한 번에 하나의 일만 수행하도록 함수를 만들어라.

  • 요구사항에 질문을 던지고 질문을 잘게 나누어 분석하라.

  • 읽거나 유지보수하기 쉽게 테스트를 만들어라.

  • 이 책에서 추천하는 다른 책들
    • Code Complete
    • Refactoring
    • The Practice of Programming
    • The Pragmatic Programmer : From Journeyman to Master
    • Clean Code
    • Effective Java
    • Design Patterns:Elements of Reusable Object-oriented Software
    • Programming Pearls