클린코드 핵심 정리 (5장 형식 맞추기)
포맷팅이 중요한 이유
public void horriblyFormattedMethod() {
System.out.println("First line");
System.out.println("Second line");
System.out.println("Third line");
for (int i = 0; i < 3; i++)
System.out.println("number " + i);
}
public void horriblyFormattedMethod() {
System.out.println("First line");
System.out.println("Second line");
System.out.println("Third line");
for (int i = 0; i < 3; i++)
System.out.println("number " + i);
}
내 for 문은 뭐지..?
public void horriblyFormattedMethod() {
System.out.println("First line");
System.out.println("Second line");
System.out.println("Third line");
for (int i = 0; i < 3; i++) {
System.out.println("number " + i);
}
}
이제 이해하기 좋다!
가독성에 필수적이다
- 코드를 수월하게 읽어나갈 수 있다.
- 아마추어처럼 보이지 않는다.
- 포맷팅으로 인해 코드를 잘못해석해 버그를 발생할 위험을 줄인다!
클린코드 포맷팅
적절한 길이 유지
~200 lines < 500 lines
200라인
- "코드 길이를 200줄 정도로 제한하는 것은 반드시 지킬 엄격한 규칙은 아니지만, 일반적으로 큰 파일보다는 작은 파일이 이해하기 쉽다"
-> 현업에서의 대부분의 코드들도 200라인 정도를 유지한다. - 코드 길이가 200라인을 넘어간다면, 클래스가 여러 개의 일을 하고 있을 수 있다. -> SRP 위배!
밀접한 개념은 서로 가까이 둔다.
- 행 묶음은 완결된 생각 하나를 표현하기 때문에 개념은 빈 행으로 분리한다.
- 변수는 사용되는 위치에서 최대한 가까이 선언한다.
Java Class Declarations
Class 내부 코드 순서.
-
static 변수
public → protected → package → private 순서
-
instance 변수
public → protected → package → private
-
생성자
-
메서드
public 메서드에서 호출되는 private 메서드는 그 아래에 둔다.
가독성 위주로 그룹핑한다!
예시
/*
* @(#)Blah.java 1.82 99/03/18
*
* Copyright (C) 1994-1998 Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
* All rights reserved.
*
* This software is the confidential and proprietary information of Sun
* Microsystems, Inc. (*Confidential Information"). You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with Sun.
*/
package java.blah;
import java.blah.blahdy.BlahBlah;
/**
*
* Class description goes here.
*
* @version 1.82 18 Mar 1999
* @author Firstname Lastname
*/
public class Blah extends SomeClass {
public static int classVar1;
private static Object classVar2; // static 변수
public Object instanceVar1;
protected int instanceVar2;
private Object[] instanceVar3; // instance 변수
public Blah() { // 생성자
// ...implementation goes here...
}
public void doSomething() { // 메서드
// ...implementation goes here...
}
public void doSomethingElse(Object someParam) {
// ...implementation goes here...
}
}
Team Coding Convention
개발 언어의 컨벤션이 우선이지만, 애매한 부분은 팀 컨벤션을 따른다.
없다면, 함께 만들어 가는 것도 좋다.
참고
해당 포스팅은 제로 베이스 클린코드 한달한권을 수강 후 정리한 내용입니다.
Author And Source
이 문제에 관하여(클린코드 핵심 정리 (5장 형식 맞추기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@coconenne/클린코드-핵심-정리-4장-형식-맞추기
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
해당 포스팅은 제로 베이스 클린코드 한달한권을 수강 후 정리한 내용입니다.
Author And Source
이 문제에 관하여(클린코드 핵심 정리 (5장 형식 맞추기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@coconenne/클린코드-핵심-정리-4장-형식-맞추기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)