💋 구현 순서를 지키자
클래스 내에서 순서가 있다.
상수, 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같은 것(이걸 뭐라고하지..?)이 들어가는건 안좋다. 다른 사람이 보게 된다면, 이거 두 가지 일을 한번에 하는거 아니야? 라고 생각할 수 있기 때문이다.
또 파라미터의 이름을 지을 때 특히 조심해야 하는 것은, 상위에서 전달한 내용을 모두 담을 필요는 없다는 것이다. 해당 메서드가 속한 클래스의 역할에 대해 생각해보고, 이 클래스에서 이 파라미터가 어떤 정보까지를 담아야 하는 지에 대해서 잘 생각해 보자!
'JAVA' 카테고리의 다른 글
[JAVA] 좋은 객체 지향 설계의 5가지 원칙 (SOLID) (0) | 2023.05.01 |
---|---|
[Spring] Spring Core(3): IoC Container의 개념, 생명 주기 (2) | 2023.04.23 |
[JAVA] 제네릭(Generic)이란? (0) | 2023.04.12 |
[JAVA] 원시값 포장과 VO(Value Object) (0) | 2023.03.30 |
[JAVA] 리스트(List) 정렬: Collections.sort() 코드를 뜯어보았다, Comparable (0) | 2023.03.27 |