코진남

clean code 6편 본문

Robert C.Martin 클린코드

clean code 6편

woojin126 2022. 2. 28. 16:10

▶오늘 읽은 범위

 

5장. 형식 맞추기

 

📑 정리본

 

  • 뚜껑을 열었을 때 독자들이 코드가 깔끔하고, 일관적이며, 꼼꼼하다고 감탄하면 좋은코드!
  • 전문가가 짰다는 인상을 심어주자!
  • 형식을 맞추는 목적(p.96)
    • 코드 형식은 무척 중요하다.
    • 융통성 없이 맹목적으로 따르면 안 된다.
    • 코드 형식은 의사소통의 일환이다.
    • 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다.
    • 코드는 사라질지라도 개발자의 스타일과 규율은 사라지지 않는다.
  • 적절한 행 길이를 유지해라(p.97)
    • 자바에서 파일크기는 클래스 크기와 밀접하다.
    • 200줄 이하가 무조건 좋다. 
    • 일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다.
  • 신문 기사처럼 작성하라(p.98)
    • 신문 기사를 떠올려봐라
    • 독자는 위에서 아래로 기사를 읽는다. 최상단에 기사를 몇마디로 요약하는 표제가 나온다.
    • 독자는 표제를 보고서 기사를 읽을지 말지 결정한다.
    • 소스파일도 신문 기사와 비슷하게 작성한다. 이름은 간단하면서도 설명이 가능하게 짓는다.
    • 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단 할 정도로 신경써서 짓는다.
  • 개념은 빈 행으로 분리하라(p.98)
    • 대부분의 코드는 왼쪽에서 오른쪽으로 그리고 위에서 아래로 읽는다.
    • 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다.
    • 하나의 묶음이 완성되면 한칸을 띄워쓰고 작성하자.
  • 수직 거리(p.101)
    • 미로같은 코드 때문에 혼란만 가중된 경험이 있는가?
    • 서로 밀접한 개념은 세로로 가까이 둬야한다.
      • 물론 두 개념이 서로 다른 파일에 속한다면 규칙이 통하지 않는다.
    • 타당한 근거가 없다면 서로 밀접한 개념은 한 파일 속에 있어야한다.
    • 연관성이란 한 개념을 이해하는 데 다른 개념이 중요한 정도다.
      • 변수선언(p.101)
        • 변수는 사용하는 위치에 최대한 가까이 선언한다.
      • 인스턴스 변수(p.103)
        • 인스턴스 변수는 클래스 맨 처음에 선언한다. 변수 간에 세로로 거리를 두지 않는다.
          • 잘 설계한 클래스는 만흥ㄴ 클래스 메서드가 인스턴스 변수를 사용하기 때문이다.
      • 종속 함수(p.104)
        • 한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다.
        • 가능하다면 호출하는 함수를 호출되는 함수보다 먼저 배치하라.
        • 규칙을 일관적으로 적용한다면 독자는 방금 호출한 함수가 잠시 후에 정의되리라는 사실을 예측한다.
          • 코드의 가독성이 높아질 것이다.
      • 개념적 유사성(p.106)
        • 어떤 코드는 서로 끌어당긴다. 개념적인 친화도가 높기 때문이다. 친화도가 높을수록 코드를 가까이 배치한다.
          • 친화도가 높은 요인은 여러가지 있다.
            • 한 함수가 다른 함수를 호출해 생기는 직접적인 종속성이 한 예다.
            • 비슷한 동작을 수행하는 일군의 함수가 좋은 예다.
      • 세로 순서
        • 일반적으로 함수 호출 종속성은 아래 방향으로 유지한다. 다시 말해 호출되는 함수를 호출하는 함수보다 나중에 배치한다.
        • 신문 기사와 마찬가지로 가장 중요한 개념을 가장 먼저 표현한다.
  • 가로 형식 맞추기(p.107)
    • 평균적으로 10~60자가 제일 적당하다.
    • 가로 공백과 밀집도(p.108)
      • 가로 공백을 사용해 밀접한 개념과 느슨한 개념을 표현한다.
      • 할당 연산자를 강조하려고 앞뒤에 공백을 준다.
    • 가로 정렬
    • 들여쓰기(p.111)
      • 소스 파일은 윤곽도와 계층이 비슷하다.
      • 범위로 이뤄진 계층을 표현하기 위해 우리는 코드를 들여쓴다.
      • 들여쓰는 정도는 계층에서 코드가 자리잡은 수준에 비례한다.
      • 클래스 정의처럼 파일 수준인 문장은 들여쓰지 않는다.
  • 팀 규칙(p.113)
    • 팀에 속한다면 자신이 선호해야 할 규칙은 바로 팀 규칙이다.
    • 개개인이 따로국밥처럼 맘대로 짜대는 코드는 피해야한다.
    • 좋은 소프트웨어, 시스템은 읽기 쉬운 문서로 이뤄진다는 사실을 기억하기 바란다.
  • 밥 아저씨의 형식 규칙(p.114) 아름다운 코드 형식을 보여준다
    • 코드자체가 최고의 구현 표준 문서가 되는 예시 이다.

 

✔오늘 책을 읽은 소감

팀 규칙, 들여쓰기정도, 정의한 함수와 정의한 함수에서 쓰이는 함수는 최대한 가까이 위치해있어야 이리저리 퍼져있는 코드를 찾을일이 없다. 이렇한 사소한 rule이 나중에 다시 보게됬을때도 가독성이 좋을뿐만아니라 유지보수를 더 편하게 해주는 방법인것 같다.

 

 

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

궁금한 내용은 없다. 이제까지 내가 작성한 코드에대해 반성을 해야할것같다. 오히려 이제까지 내코드를 읽으려는 팀원에게 미안해진다..

 

'Robert C.Martin 클린코드' 카테고리의 다른 글

clean code 8편 오류처리  (0) 2022.03.04
clean code 7편  (0) 2022.03.01
clean code 5편  (0) 2022.02.26
Clean Code 4장 주석  (0) 2022.02.24
Clean Code 3장 함수  (0) 2022.02.22