본문 바로가기

도서/Clean Code

[Clean Code/클린 코드] 5장 형식 맞추기

5장 형식 맞추기

📖  좋은 소프트웨어 시스템은 읽기 쉬운 문서로 이뤄진다는 사실을 기억하기 바란다.

 

 

목차

     


    🗒️ 책에서 기억하고 싶은 내용

    신문 기사처럼 작성하라

    최상단에 기사를 몇 마디로 요약하는 표제가 나온다.
    독자는 표제를 보고서 기사를 읽을지 말지 결정한다.
    첫 문단은 전체 기사 내용을 요약한다.
    세세한 사실은 숨기고 커다란 그림을 보여준다.
    쭉 읽으며 내려가며 세세한 사실이 조금씩 드러난다.
    날짜, 이름, 발언, 주장, 기타 세부사항이 나온다.

    수직거리

    서로 밀접한 개념은 세로로 가까이 둬야 한다.


    변수 선언
    인스턴스 변수
        C++ : 클래스 마지막에 인스턴스 변수 선언
        Java : 클래스 맨 처음에 인스턴스 변수 선언

    가로 공백과 밀집도

    public class Quadratic {
      public static double root1(double a, double b, double c) {
        double determinant = determinant(a, b, c);
        return (-b + Math.sqrt(determinant)) / (2*a);
      }
    
      public static double root2(int a, int b, int c) {
        double determinant = determinant(a, b, c);
        return (-b - Math.sqrt(determinant)) / (2*a);
      }
      private static double determinant(double a, double b, double c) {
        return b*b - 4*a*c;
      }
    }

    ● 연산자의 우선순위를 강조하기 위해서도 공백을 사용한다.
    ● 승수 사이는 공백이 없다. 곱셈은 우선순위가 가장 높기 때문이다.


    (불행히도, 코드 형식을 자동으로 맞춰주는 도구는 대다수가 연산자 우선순위를 고려하지 못하므로, 수식에 똑같은 간격을 적용한다.)

     

    🗒️ 소감

    신문 기사처럼 작성하라는 부분이 가장 인상 깊다.

    1. 소스 파일의 이름은 간단하면서도 설명할 수 있게 짓는다.
    2. 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다.
    3. 아래로 내려갈수록 의도를 세세하게 묘사한다.
    4. 마지막에는 가장 저차원 함수와 세부 내역이 나온다.
    구체적인 코드 예시가 궁금했는데 뒷부분에 다양한 예제 코드와 저자의 형식 규칙까지 기록되어 있어서 이해도가 올라갔다.

    그리고 연산자의 우선순위를 강조하기 위해 공백을 사용하는 규칙에 대한 설명이 인상 깊다.
    승수 사이에는 공백을 넣지 않는다는 것을 보고 신선한 충격이었다.
    처음에는 모든 연산자를 붙여 쓰는 습관이 있었지만, 이후에 가독성을 위해 공백을 넣는 것이 좋다는 것을 깨달을 계기가 있었다. 하지만 곱셈은 우선순위가 가장 높으므로 띄울 필요가 없다는 생각을 미처 하지 못했기에 새로운 점을 알게 되었다.

     

    🗒️ 궁금하거나 어려웠던 내용

    X