본문 바로가기

Book/Clean Code

[클린 코드] Assignment #07: TIL - 5장. 형식 맞추기

728x90

 

📢 DAY 9
🏷️ 오늘 읽은 범위: 5장. 형식 맞추기

🖊️ 짧은 내용 요약

프로그래머는 형식에 맞춰 깔끔하게 코드를 짜야 한다. 코드의 형식은 코드의 유지보수와 확장성에 영향을 미치기 때문이다.

 

📜 깔끔한 코드 형식을 지키기 위한 몇 가지 규칙 

 

👉 세

  • 코드의 적절한 세로 길이를 지키자
    소스 코드는 한 파일 안에서 200줄 이내로 작성한다.
  • 신문기사처럼 위에서 아래로 술술 읽히게 작성하자
    각 내용은 짧게 구성하고 순서대로 작성한다. 코드 파일 첫 부분에는 고차원 개념과 알고리즘을 설명하고, 점점 세세하게 묘사한다. 종속 함수의 경우 호출하는 함수를 호출되는 함수보다 먼저 배치한다.
  • 빈 행을 잘 사용하자
    코드의 묶음은 빈 행으로 구분한다.
  • 밀집한 코드는 가까이 두자
    밀접한 코드는 한 개념을 이해하는 데 다른 개념이 중요하거나, 종속 관계를 갖거나, 개념이 유사한 특징을 갖는다.
    • 종속 관계
      함수에 사용되는 변수와 함수, 종속 함수
    • 개념이 유사한 관계
      변수의 선언, 인스턴스 변수, 명명법이 똑같고 기본 기능이 유사한 함수

👉 가로

  • 코드의 적절한 가로 길이를 지키자
    소스 코드는 한 줄에서 120자 이내로 작성한다.
  • 공백을 잘 사용하자
    밀접한 개념 사이에는 공백을 쓰지 않고, 느슨한 개념은 공백을 써서 띄운다.
  • 들여쓰기를 잘 사용하자
    범위(scope)로 이루어진 계층을 표현하기 위해 들여쓰기를 한다. 짧아서 들여쓰기 안하고 쓰고 싶은 유혹은 참는다.

👉 팀이라면?

  • 팀은 한 가지 규칙을 합의해야 하고, 모든 팀원은 그 규칙을 따라야 한다.

😀 책에서 기억하고 싶은 내용

오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높다.
그런데 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. (p. 96)
더보기
오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높다. 그런데 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. (p. 96)
신문은 다양한 기사로 이뤄진다. 대다수 기사가 아주 짧다. 어떤 기사는 조금 길다. 한 면을 채우는 기사는 거의 없다. (p. 98)
시스템이 무엇을 하는지 이해하고 싶은데, 이 조각 저 조각이 어디에 있는지 찾고 기억하느라 시간과 노력을 소모한다. (p. 101)
정렬이 필요할 정도로 목록이 길다면 문제는 목록 길이지 정렬 부족이 아니다. (p. 110)
좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다는 사실을 기억하기 바란다. 스타일은 일관적이고 매끄러워야 한다. 한 소스 파일에서 봤던 형식이 다른 소스 파일에도 쓰이리라는 신뢰감을 독자에게 줘야 한다. 온갖 스타일을 다 섞어 소스 코드를 필요 이상으로 복잡하게 만드는 실수는 반드시 피한다. (p. 114)

🤔 오늘 읽은 소감 & 떠오르는 생각

대부분은 알고 있던 내용이었지만, 파일 내 소스 코드의 길이도 적절히 유지해야 한다는 사실은 처음 알게 되었다. 책에서 빈 while문 예제를 본 적이 없어서 이해가 가지 않았다. 그리고 종속 함수같은 경우 호출하는 함수와 호출되는 함수의 작성 위치에 대한 고민이 있었는데, 이제는 그 고민이 해결되었다. 그리고 비슷한 문장을 묶고 문장의 적절한 길이를 유지하는 게 디자인과 수업에서 활자를 조판할 때 적용하는 규칙이랑 비슷해서 신기했다. 

🔍 새로 알았거나 잘 이해되지 않는 내용

  • 가위 규칙
    모든 멤버 변수를 클래스 마지막에 선언하는 규칙

📚 참고

반응형