CleanCode

Clean Code 짜기6

김대근'IT공부 2019. 10. 24. 15:01

형식 맞추기

코드 형식은 의사소통의 일환이다

오랜 시간이 지나 코드의 흔적을 찾기 어려울 정도로 코드가 바뀌어도

처음 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.

 

 

적절한 행 길이 유지

개념은 빈 행으로 분리

코드에서 각 행은 수식이나 절을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다.

생각 사이는 빈 행을 넣어 분리를 해주자.

 

public class BoIdWidget extends ParentWidget {
    public static final String REGEXP = "'''.+?'''" ;
    private static final Pattern pattern = Pattern.compile("'''(.+?)'''",
    Pattern.MULTILINE + Pattern.DOTALL};

        public BoIdWidget(ParentWidget parent, String text) throws Exception { 
        super(parent);
        Matcher match = pattern.matcher(text); 
        match.find();
        addChildWidgets(match.group(1));}
            public String render() throws Exception { 
            StringBuffer html = new StringBuffer("<b>");
            html.append(childHtml()).append("</b>"); 
            return html.toString();}

 

위와 같은 코드처럼 빈 행으로 구분을 하지 않으면 코드 가독성이 떨어진다 아래처럼 바꾸자

 

public class BoIdWidget extends ParentWidget { 
    public static final String REGEXP = "'''.+?'''" ; 
    private static final Pattern pattern = Pattern.compile("'''(.+?)'''", 
    Pattern.MULTILINE + Pattern.DOTALL

    };

 

        public BoIdWidget(ParentWidget parent, String text) throws Exception {  
            super(parent); 
            Matcher match = pattern.matcher(text);  
            match.find(); 
            addChildWidgets(match.group(1));

            }


            public String render() throws Exception {  
                StringBuffer html = new StringBuffer("<b>");
                html.append(childHtml()).append("</b>");  
                return html.toString();

                }

 

이렇게 코드의 일련의 행 묶음 마다 빈 행으로 구분을 줘서 가독성을 높일 수 있다.

 

 

 

 

변수 선언시 사용 위치 최대한 가까이 선언을 해주도록 한다.

private static void readPreferences(){

    InputStream is = null;

    try {

       is = new .....

루프를 제어하는 변수는 흔히 루프 문 내부에 선언한다.

 

 

인스턴스 변수

인스턴스 변수는 클래스 맨 처음에 선언한다.

일반적으로 C++에서는 모든 인스턴스 변수를 클래스 마지막에 선언한다는 가위 규칙을 적용한다.

하지만 자바에서는 보통 클래스 맨 처음에 인스턴스 변수를 선언한다.

 

종속 함수

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

되도록 호출하는 함수를 호출되는 함수보다 먼저 배치한다

호출되는 함수를 찾기가 쉽고, 그만큼 모듈 전체의 가독성을 높일 수 있다.

 

 

 

 

 

 

참고한 책

클린 코드 (Clean Code)

 

반응형