CleanCode(클린코드) - 5장. 형식 맞추기

🔖 오늘 읽은 범위 : 5장


😃 책에서 기억하고 싶은 내용을 써보세요.


주제 : 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다.


형식을 맞추는 목적

  • 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.
  • 코드 형식은 의사소통의 일환이다. (96p)

원활한 소통을 장려하는 코드 형식은 무엇일까?


적절한 행 길이를 유지하라.

  • 500줄을 넘지 않고 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다.
  • 반드시 지킬 엄격한 규칙은 아니지만 바람직한 규칙으로 삼으면 좋겠다. 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다. (97p)

신문 기사처럼 작성하라

  • 이름은 간단하면서도 설명이 가능하게 짓는다.
  • 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명하고, 아래로 내려갈수록 의도를 세세하게 묘사한다.

개념은 빈 행으로 구분하라

  • 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다. 빈 행은 새로운 개념을 시작한다는 시각적 단서다. (98p)

세로 밀집도

  • 줄 바꿈이 개념을 분리한다면 세로 밀집도는 연관성을 의미한다. 즉, 서로 밀접한 코드 행은 세로로 가까이 놓여야 한다는 뜻이다.
  • 의미 없는 주석으로 관련 있는 두 인스턴스 변수를 떨어뜨리면 안된다.

수직 거리

  • 연관성이 깊은 두 개념이 멀리 떨어져 있으면 코드를 읽는 사람이 소스 파일과 클래스를 여기저기 뒤지게 된다.
  • 변수 선언

    • 변수는 사용하는 위치에 최대한 가까이 선언한다.
  • 인스턴스 변수

    • 인스턴스 변수는 클래스 맨 처음에 선언한다.
  • 종속 함수

    • 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다.
    • 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치한다.
  • 개념적 유사성

    • 개념적인 친화도가 높을수록 코드를 가까이 배치한다. (106p)

세로 순서

  • 호출되는 함수를 호출하는 함수보다 나중에 배치한다.
  • 신문 기사와 마찬가지로 가장 중요한 개념을 가장 먼저 표현한다.
  • 세세한 사항은 가장 마지막에 표현한다.

가로 형식 맞추기

  • 사실은 80자 이후부터 행 수는 급격하게 감소한다. 프로그래머는 명백하게 짧은 행을 선호한다.
  • 개인적으로는 120자 정도로 행 길이를 제한한다.

가로 공백과 밀집도

  • 가로로는 공백을 사용해 밀접한 개념과 느슨한 개념을 표현한다.
  • 함수를 호출하는 코드에서 괄호 안 인수는 공백으로 분리한다. 쉼표를 강조해 인수가 별개라는 사실을 보여주기 위해서다.

    lineWidthHistogram.addLine(lineSize, lineCount);

들여쓰기

  • 들여쓰기한 파일은 구조가 한눈에 들어온다.
  • 들여쓰기 무시하기

    • 때로는 간단한 if 문, while 문, 짧은 함수에서 들여쓰기 규칙을 무시하고픈 유혹이 생긴다.
    • 들여쓰기로 범위를 제대로 표현한 코드를 선호한다.

🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 무의식 중에 지키고 있던 형식도 있고, 그렇지 못했던 형식들도 있는 것 같다. 이번에 형식에 대해서 공부를 했으니 좀 더 잘 지켜야겠다.
  • Prettier, ESLint와 같이 형식을 맞춰주는 툴의 중요성을 느끼게 되었다.

🔎 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.


🔥 소감 3줄 요약

  • 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다.
  • 신문 기사처럼 작성하라.
  • Prettier, ESLint 와 같이 형식을 맞춰주는 툴을 보다 적극적으로 활용해야겠다.

Written by@sujin-park
항상 배우는 자세 갖추기 💻

GitHubLinkedIn