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

2023. 4. 13. 06:00· JAVA
반응형

💋 구현 순서를 지키자

 

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

상수, 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
'JAVA' 카테고리의 다른 글
  • [JAVA] 좋은 객체 지향 설계의 5가지 원칙 (SOLID)
  • [Spring] Spring Core(3): IoC Container의 개념, 생명 주기
  • [JAVA] 제네릭(Generic)이란?
  • [JAVA] 원시값 포장과 VO(Value Object)
깃짱
깃짱
연새데학교 컴퓨터과학과 & 우아한테크코스 5기 백엔드 스타라이토 깃짱
반응형
깃짱
깃짱코딩
깃짱
전체
오늘
어제
  • 분류 전체보기
    • About. 깃짱
    • PROJECT
      • AIGOYA LABS
      • Stamp Crush
      • Sunny Braille
      • RAG 기반 희귀품종 무화과 챗봇
    • 우아한테크코스5기
    • Computer Science
      • Operating System
      • Computer Architecture
      • Network
      • Data Structure
      • Database
      • Algorithm
      • Automata
      • Data Privacy
      • Graphics
      • ETC
    • AI
      • Deep Learning
      • LLM
      • VLA
    • JAVA
    • Spring
      • JPA
      • MVC
    • WEB
      • HTTP
      • Application
    • C, C++
    • MySQL
    • PostgreSQL
    • Architecture
    • DevOps
      • AWS
    • frontend
      • HTML+CSS
    • NextJS
    • TEST
    • Industrial Engineering
    • Soft Skill
    • 회고+후기
    • TIL
      • 2023
      • 2024
    • Weekly Momentum
      • 2024
    • Linux
    • Git
    • IntelliJ
    • ETC
      • 日本語

블로그 메뉴

  • 홈
  • 깃허브

인기 글

최근 글

태그

  • Composition
  • 람다와스트림
  • 조합
  • 레벨로그
  • 상속과조합
  • 람다
  • 우테코5기
  • OOP
  • 상속
  • 함수형프로그래밍
  • 컴포지션
  • TDD
  • 우테코
  • 우아한테크코스5기
  • Stream
  • 스트림
  • 예외
  • 우아한테크코스
  • lamda
  • Java
hELLO · Designed By 정상우.v4.2.0
깃짱
[JAVA] 좋은 코드가 되려면 꼭 지켜야 할 기본적인 컨벤션
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.