\(@^0^@)/

[BOOK] 클린코드, 5장 형식 맞추기 본문

BOOKS/클린 코드

[BOOK] 클린코드, 5장 형식 맞추기

minjuuu 2022. 3. 10. 10:34
728x90

오늘 읽은 범위 : 5장. 형식 맞추기 (p. 96 ~116)


< 책에서 기억하고 싶은 내용 >

  • 형식을 맞추는 목적
    • 코드 형식은 의사소통의 일환이다, 의사소통은 전문 개발자의 일차적인 의무.
    • 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도,
      맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.
  • 적절한 행 길이를 유지하라
    • 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다.
    • 신문 기사처럼 작성하라 : 아래로 내려갈수록 의도를 세세하게 묘사한다.
    • 개념은 빈 행으로 분리하라 : 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다.
      생각 사이는 빈 행을 넣어 분리하는 것이 좋다. 빈 행은 새로운 개념을 시작한다는 시각적 단서.
    • 세로 밀집도 : 서로 밀접한 코드 행은 세로로 가까이 놓여야 한다.
    • 수직 거리 : 같은 파일에 속할 정도로 밀접한 두 개념은 세로 거리로 연관성을 표현한다.
      • 변수 선언 : 사용하는 위치에 최대한 가까이 선언.
      • 인스턴스 변수 : 클래스 맨 처음에 선언.
      • 종속 함수 : 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치. 또한 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치.
      • 개념적 유사성 : 친화도가 높을수록 코드를 가까이 배치.
        친화도가 높은 요인 : 1. 한 함수가 다른 함수를 호출해 생기는 직접적인 종속성
        2. 변수와 그 변수를 사용하는 함수
        3. 비슷한 동작을 수행하는 일군의 함수
    • 세로 순서 : 호출되는 함수를 호출하는 함수보다 나중에 배치한다.
  • 가로 형식 맞추기
    • 프로그래머는 명백하게 짧은 행을 선호한다, 120자 정도로 행 길이를 제한하자.
    • 가로 공백과 밀집도 : 가로로 공백을 사용해 밀접한 개념과 느슨한 개념을 표현.
    • 가로 정렬
    • 들여 쓰기 : 들여쓰기한 파일은 구조가 한눈에 들어온다. 변수, 함수, 메서드가 금방 보인다.
      • 들여쓰기들여 쓰기 무시하기 : 간단한 if문, 짧은 while 문, 짧은 함수에서는 들여 쓰기를 무시하고 싶을 수 있지만, 들여 쓰기를 넣는 것이 좋다.
    • 가짜 범위 : 세미콜론(;)은 새 행에다 제대로 들여써서 넣어준다.
  • 팀 규칙
    • 프로그래머라면 각자 선호하는 규칙이 있지만, 팀에 속한다면 자신이 선호해야 할 규칙은 바로 팀 규칙.
    • 소프트웨어가 일관적이고 매끄러운 스타일을 보여주기 위해 한 가지 규칙에 합의해야 한다.

< 오늘 읽은 소감? 떠오르는 생각을 가볍게 적어보기 >

예전에 팀 프로젝트 할 때 컨벤션을 정하지 않고 진행했었는데, 이번에 프리온보딩을 하면서 대략적인 컨벤션을 적용하니까 확실히 통일성 있고 매끄러워 보였다.
하지만 그 뒤에 비교적 잘했다는 의견이 많은 팀들의 깃헙과 코드를 보니 정말 디테일하게 컨벤션들을 정해놔서 개인적으로 우리 팀보다도 훨씬 보기 좋았다. 그때 또 한 번 팀 규칙, 팀 회의의 중요성을 깨달았던 기억이 있다. 또한 그것을 문서화해야 오래 기억에 남고 나중에 재사용하거나 면접 볼 때도 용이하다는 것도.


< 소감 3줄 요약 >

 

  • 오랜 시간이 지나 원래 코드의 흔적을 더 이상 찾아보기 어려울 정도로 코드가 바뀌어도,
    맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.
  • 프로그래머라면 각자 선호하는 규칙이 있지만, 팀에 속한다면 자신이 선호해야 할 규칙은 바로 팀 규칙.

 

 

 


[ 출처 : 클린 코드 ]

728x90