오늘 내가 한 일 - TIL

노개북 클린코드(clean code) 2022.02.28

바구레 2022. 2. 28. 22:41

오늘 읽은 범위

5장 형식 맞추기

 

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

  • 코드 형식은 의사소통의 일환이다
  • 적절한 행 길이를 유지하라
    • 신문 기사처럼 작성하라 : 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경 써서 짓는다. 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원 함수와 세부 내역이 나온다.
    • 개념은 빈 행으로 분리하라 : 생각 사이는 빈 행을 넣어 분리해야 마땅하다.
    • 세로 밀집도 : 서로 밀접한 코드 행은 세로로 가까이 놓여야 한다.
    • 수직 거리 : 같은 파일에 속할 정도로 밀접한 두 개념은 세로 거리로 연관성을 표현한다. 여기서 연관성이란 한 개념을 이해하는데 다른 개념이 중요한 정도이다. 
      • 변수선언 : 변수는 사용하는 위치에 최대한 가까이 선언한다.
      • 인스턴스 변수 : 클래스 맨 처음에 선언한다. 변수 간에 세로로 거리를 두지 않는다. 
      • 종속 함수 : 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다. 또한 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치한다. 
      • 내며의 유사성 : 친화도가 높을수록 코드를 가까이 배치한다.
    • 세로 순서 : 호출되는 함수를 호출하는 함수보다 나중에 배치한다. 
  • 가로 형식 맞추기 : 짧은 행이 바람직하다. 
    • 가로 공백과 밀집도 : 가로로는 공백을 사용해 밀접한 개념과 느슨한 개념을 표현한다.
      • 함수 : 함수 이름과 이어지는 괄호 사이에는 공백을 넣지 않았다. 함수와 인수는 서로 밀접하기 때문이다. 공백을 넣으면 한 개념이 아니라 별개로 보인다. 
      • 연산자 우선순위를 강조하기 위해서도 공백을 사용한다. 승수 사이는 공백이 없다. 곱셈은 우선순위가 가장 높기 때문이다. 항 사이에는 공백이 들어간다. 덧셈과 뺄심은 우선순위가 곱셈보다 낮기 때문이다. 
    • 가로 정렬
    • 들여쓰기
  • 팀 규칙 : 팀은 한 가지 규칙에 합의해야 한다. 그리고 모든 팀원은 그 규칙을 따라야 한다. 그래야 소프트웨어가 일관적인 스타일을 보인다. 

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

5장까지 읽고나서 든 첫 번째 생각은 1장부터 5장까지의 내용이 모두 이어진다는 것이었다. 좋은 이름을 짓는 것. 함수는 한가지 역할만 하는 것. 이런 것들만 지켜져도 기본적인 형식은 지켜진다고 생각한다. 특히 들여쓰기 영역은 함수를 짧고 간결하게 작성한다면 무한 들여쓰기의 늪에서 빠져나올 수 있다고 생각한다. 

 

책을 읽을 때마다 과거 내가 작업했던 코드들이 생각이 나서 부끄럽다는 생각이 든다. 일정한 규칙 없이 내 마음가는대로 행을 나누고 띄어쓰기를 하고, 함수 하나에도 따옴표와 쌍 따옴표를 섞어 작성하고... 누가봐도 클린하지 못한 코드를 작성했다. 그날 그날 내 생각에 따라 함수의 위치를 마구잡이로 정했는데, 이번 장을 읽으면서 함수 작성 순서와 변수의 선언 위치도 신중하게 작성해야한다는 것을 알게 되었다. 

 

마지막에 팀 규칙에 관한 내용이 있었는데, 형식 정하기를 쭉 읽고 마지막 팀 규칙 내용을 보니, 처음 코드를 작성할 때 팀원들과 규칙을 정하는 것이 가장 중요한 일이 아닐까라는 생각을 했다. 내가 선호하지 않는 혹은 일반적인 룰이 아니더라도 팀에서 정한 규칙이라면 소프트웨어의 일관석을 위해 규칙을 따라야한다는 내용이었는데, 한번 정하면 돌이키기 어렵기 때문에 더욱이 동료들과 올바르고 바른 규칙을 정하는 것이 중요하다는 생각이 들었다. 

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

  • protected 변수 : 자기 클래스와 상속을 받은 자식 클래스에서만 접근을 허용한다

 


출처 https://ko.wikipedia.org/

 

위키백과, 우리 모두의 백과사전

위키백과:대문 위키백과, 우리 모두의 백과사전. 위키백과 우리 모두가 만들어가는 자유 백과사전문서 578,828개와 최근 기여자 2,238명 사랑방 다른 분들과 의견을 교환해봐요! 질문방 지침으로

ko.wikipedia.org