ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클린 코드 - 형식 맞추기
    클린 코드(Clean Code) 2022. 1. 23. 00:01
    728x90

    1. 적절한 행 길이를 유지하자

    당연하겠지만 큰 파일보다 작은 파일이 이해하기 쉽습니다.

    2. 개념(함수 등)은 빈 행(줄 바꿈)으로 구분하자

    빈 행으로 구분하지 않은 코드들은 가독성이 떨어집니다.

     

    빈 행으로 구분한 코드

    static void outputSolution() throws IOException {
    	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    	bw.write("hi");
    	bw.flush();
    	bw.close();
    }
    
    
    static void inputTest() {
    	productInfo.forEach((i) -> System.out.println(i[0] + " " + i[1]));
    }

     

    빈 행으로 구분하지 않은 코드

    static void outputSolution() throws IOException {
    	BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    	bw.write("hi");
    	bw.flush();
    	bw.close();
    }		
    static void inputTest() {
    	productInfo.forEach((i) -> System.out.println(i[0] + " " + i[1]));
    }

    3. 서로 밀접한 개념은 세로로 가까이 두어야 한다

    시스템이 무엇을 하는지 이해하고 싶은데, 코드 조각들을 여기저기 흩어져 있다면 이해하기 힘듭니다.

    변수는 사용하는 위치에 최대한 가까이 선언합니다.

    한 함수가 다른 함수를 호출한다면 두 함수는 세로로 가까이 배치한다.

     

    4. 가로 형식

    가로의 길이는 가급적으로 120자 정도로 제한하는 게 좋습니다.

    가로의 공백을 통해 밀접한 개념과 느슨한 개념을 표현합니다.

    또한 연산자의 우선순위를 강조하기 위해서도 공백을 사용합니다.

     

    가로의 공백을 사용하지 않는 경우

    private void measureLine(String line){	
        lineCount++;	
        int lineSize=line.length();
        totalChars+=lineSize;
        lineWidthHistoram.addLine(lineSize,lineCount);
        recordWidestLine(lineSize);
    }

    가로의 공백을 사용하는 경우

    private void measureLine(String line){	
        lineCount++;	
        int lineSize = line.length();
        totalChars += lineSize;
        lineWidthHistoram.addLine(lineSize, lineCount);
        recordWidestLine(lineSize);
    }

     

    5. 들여쓰기 무시하지 않기

    간단한 if문, 짧은 while문, 짧은 함수에서 들여 쓰기를 하지 않고 싶은 유혹이 생깁니다.

    하지만 이럴때 들여 쓰기를 넣는 코드를 선호합니다.

     

    들여 쓰기 무시한 경우

    public String render() throws Exception {return "";}

    들여 쓰기 무시하지 않은 경우

    public String render() throws Exception {
    	return "";
    }

     

     

    출처

    클린 코드 (로버트 C. 마틴)

    댓글

Designed by Tistory.