JAVA

[JAVA] 좋은 코드가 되려면 꼭 지켜야 할 기본적인 컨벤션

깃짱 2023. 4. 13. 06:00
반응형

💋 구현 순서를 지키자

 

클래스 내에서 순서가 있다.

상수, static 변수, 인스턴스 변수, 생성자, 메서드 순으로 작성한다.

메서드는 public 메서드 내에서 호출하는 private 메서드를 바로 아래에 적는 것이 더 읽기 편하다. (이 부분에 대해서는 사람들 의견이 다양하다.) 기능별로 모아서, 호출하는 순서대로 배치한다면 읽기 편할 것이다.

 

 

getter와 equals 오버라이딩 같은 것은 맨 아래에 둔다.

나는 getter => equals, hashCode, toString 오버라이딩 메서드 순서로 놓는 것을 좋아하는데, getter를 맨 아래에 두어야 한다는 사람들도 좀 있다. 이런 부분은 그냥 우리팀 하는대로 해서 일관성만 유지하면 될 것 같다.

 

public class Car {

    private final CarName name; // 인스턴스 변수
    private int position; // 인스턴스 변수

    public Car(String name) { // 생성자
        this.name = new CarName(name);
    }

    public void move(boolean isMove) { // 메서드
        if (isMove) {
            position++;
        }
    }

    public String getName() {
        return name.getName();
    }

    public int getPosition() {
        return position;
    }
}

 

 

💋 공백은 일관성 있게 

 

공백을 적절히 사용하면 가독성이 굉장히 좋아진다. 

하지만 아무 의미 없이 2줄 개행하는 일은 피하자! 

또 클래스가 끝날 때 뒤에 있는 개행은 사람에 따라 1줄 개행하거나 개행하지 않는데, 두 방법 모두 틀리지 않지만 일관성을 유지해서 한 사람이 작성한 코드처럼 만들게 하는 것이 가장 중요하다!

 

IDE 자동 정렬 기능을 활용해서 정렬하자! 

 

자동 정렬을 할 때 내가 원하는 스타일대로 정렬이 되게 하기 위해서는 설정을 만지면 더 좋다!

Settings > Editor > Code Style에 들어가면, Blank Lines이나 Conde Generation 등등 굉장히 구체적으로 설정할 수 있다.

아래 캡쳐본처럼 maximum blank lines를 구체적으로 설정하면 자동 정렬 시에 굉장히 일관적인 코드를 만들 수 있다.

 

 

 

💋 메서드, 변수의 이름은 명확하게

 

메서드 이름이 만약에 moveOrKill()이라고 생각해보자...! 이름에 Or이나 And같은 것(이걸 뭐라고하지..?)이 들어가는건 안좋다. 다른 사람이 보게 된다면, 이거 두 가지 일을 한번에 하는거 아니야? 라고 생각할 수 있기 때문이다.

 

파라미터의 이름을 지을 때 특히 조심해야 하는 것은, 상위에서 전달한 내용을 모두 담을 필요는 없다는 것이다. 해당 메서드가 속한 클래스의 역할에 대해 생각해보고, 이 클래스에서 이 파라미터가 어떤 정보까지를 담아야 하는 지에 대해서 잘 생각해 보자! 

 

 

 

반응형