Java 클래스 멤버는 각자의 위치가 존재한다.
우테코 미션에 대해 코드리뷰를 받으면서 이런 리뷰를 듣게 되었다.
클래스 변수의 선언부를 최상단으로 바꾸는 게 어떨까요?
컨벤션에 맞춰주시면 좋을 거 같아요!
클래스 멤버가 각각의 위치를 가지고 있다는 건 알았지만 내가 컨벤션을 잘못 기억하고 있었나보다 싶었다. 때문에 다시 한 번 찾아보고, 기록으로 남겨두고자 한다.
나 외에도 필요한 사람들에게 도움이 되었으면 좋겠다!
클래스 멤버의 선언 순서
Oracle의 자바 Code Covention 문서를 보면 클래스 멤버는 각자의 선언 위치를 가지고 있음을 알려준다.
- Class (static) variables public → protected → default → private 순서
- Instance variables public → protected → default → private 순서
- Constructors
- Methods
이러한 컨벤션을 지켜가며 자바 코드를 조금 더 가독성있는 코드로 바꿔나가자!
메서드 배치는 본인만의 기준 정하기
글을 살펴보면 메서드 부분에 대해선 살짝 애매하게 적혀있는 것을 확인할 수 있다.
요약하자면 "기능적인 단위로 가독성 좋게!" 인데, 어떻게 해야 가독성 좋게 메서드를 배치할 수 있을까?
나는 사용 순서대로 배치하는 것이 베스트라고 생각한다.
때문에 이런 순서는 어떨까 생각하며 적용해보고 있다.
- 생성자에서 사용되는 메서드
- 접근제어자 관련 없이 클래스의 코드 상에서 사용되는 순서대로
- public static 메서드
- 접근제어자 관련 없이 클래스의 코드 상에서 사용되는 순서대로
- public 메서드
- 접근제어자 관련 없이 클래스의 코드 상에서 사용되는 순서대로
접근제어자 관련 없이 클래스의 코드 상에서 사용되는 순서대로라는 기준은 아래와 같다
getBridgeAroundAt의 코드를 보면 내부적으로
hasLeftBridge() -> isFirstPosition() -> hasRightBridge() 순서대로 사용되고 있다.
가독성을 위해 이렇게 사용되는 순서대로 메서드를 정렬하는 것이 가장 베스트이지 않나 싶다.
혹시 본인이 사용하는 더 좋은 방법이 있다면 남겨주었으면 좋겠다! 🙌
Reference
Code Conventions for the Java Programming Language: 3. File Organization
'부트캠프 > 우아한테크코스 6기' 카테고리의 다른 글
테스트를 위한 객체, 테스트 더블(Test Double) (0) | 2024.04.04 |
---|---|
[Java] Fluent API란? (feat. JDBC에 적용해보기) (0) | 2024.04.04 |
[Java] 생성자 체이닝(Constructor Chaining) 기법 (0) | 2024.04.02 |
[Java] 자바에서 라인을 ‘잘’ 개행하는 방법 (2) | 2024.03.01 |
[우테코] LinkedHashMap을 통한 기초 캐싱 (0) | 2024.02.25 |