티스토리 뷰

읽은 책

클린코드 TIL (5장)

숨_쉬듯 2022. 5. 2. 23:22

TIL (Today I Learned) 날짜

2022.05.02 (월)

오늘 읽은 범위

5장 형식 맞추기 

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

  • 읽기 좋은 코드의 특징
    • 코드가 일관적이고 질서 정연하다.
    • 전문가가 짰다는 인상을 준다. 
  • 읽기 좋은 코드가 되려면
    • 코드 형식을 맞추기 위한 간단한 규칙을 정하고 모두가 그 규칙을 따라야 한다.
    • 팀으로 일한다면 팀이 합의해 규칙을 정하고 그 규칙을 따라야 한다. 
  • 규칙이 필요한 이유
    • 오늘 구현한 기능이 다음 버전에서 바뀔 확률이 아주 높다. 그래서 코드의 가독성은 앞으로의 작업에 엄청난 영향을 준다. 
    • 원래 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다. 
  • 코드 짤 때 고려하면 바람직한 규칙 목록
    • 적절한 행 길이 유지하기
    • 신문기사처럼 쭉 읽으며 내려가도록 코드 작성하기
      • 가장 중요한 개념을 가장 먼저 표현한다. 
      • 중요한 개념을 표현할 때는 세세한 사항을 최대한 배제한다. 
      • 세세한 사항은 가장 마지막에 표현한다.
    • 이름은 간단하면서도 설명이 가능하도록 짓기
    • 고차원 -> 저 차원 : 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저 차원 함수와 세부 내역이 나온다. 
    • 빈 행은 새로운 개념의 시작을 의미한다. 
    • 서로 밀접한 코드는 가까이 놓는다.
    • 서로 밀접한 개념은 세로로 가까이에 둔다.
      • 함수 동작 방식을 이해하려고 이 함수에서 저 함수로 오가며 파일을 뒤지지 않는지 확인하기
    • 변수는 사용하는 위치에 최대한 가까이 선언한다.
      • 어디서 변수를 찾을지 모두가 알 수 있어야 한다.
    • 인스턴트 변수는 클래스 맨 처음에 선언한다.
      • 잘 설계한 클래스에서는 클래스 메서드가 인스턴스 변수를 사용하는 경우가 많기 때문이다.
    • 한 함수가 다른 함수를 호출한다면(종속 함수) 두 함수는 가까이 배치한다.
      • 호출하는 함수를 호출되는 함수보다 먼저 배치하는 게 좋다.
    • 개념적 유사성이 높은 코드는 가까이 배치한다. 
      • 서로 끌어당기는 코드 리스트
        • 종속성이 있는 코드 
        • 비슷한 동작을 수행하는 함수
    • 팀 규칙 
      • 팀은 한 가지 규칙에 합의해야 한다.
      • 모든 팀원은 그 규칙을 따라야 한다. 그래야 소프트웨어가 일관적인 스타일을 보인다. 
      • 내가 선호하는 규칙은 아니지만 팀이 정한 규칙이었다.
      • 예시 : 어디에 괄호를 넣을지, 들여 쓰기는 몇 자로 할지, 클래스와 변수와 메서드 이름은 어떻게 지을지 결정
    • 좋은 소프트웨어 시스템
      • 읽기 쉬운 문서로 이뤄진다. 
      • 스타일은 일관적이고 매끄러워야 한다. 
      • 각 소스파일마다 동일한 규칙이 쓰일 거라는 신뢰감을 독자에게 줘야 한다.

 

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

  • 현재 리팩터링 작업을 하면서 읽기 좋은 코드를 작성하려면 어떻게 해야 하는지 고민을 많이 했는데 형식 맞추기 부분을 읽으면서 지금 하고 있는 작업이 그래서 의미가 있구나. 시간이 걸려도 하나하나씩 규칙을 만들면서 채워나갈 필요가 있다는 생각이 들었다. 누가 코드를 작성하더라도 규칙을  따르면 타인이 작성한 코드가 부담스럽게 느껴지지 않을 것이다. 우리 팀의 일하는 환경이 좀 더 나아지길 바라면서 내일도 열심히 리팩터링 하고 규칙을 문서화해야겠다. 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함