Overview
프로그래밍을 처음 배울 땐 풀고자하는 문제에 많이 집중했던 것 같습니다. 그러나 협업을 하게 되면서 Clean Code의 중요성을 많이 느끼고 있습니다.
이름(Name)은 어디에나 있습니다. 우리가 사용하는 Function, Class, File, Component, Package 등은 모두 이름을 가지고 있습니다. 그 이름을 짓는 작업을 Naming(명명)이라 합니다.
Naming은 중요하고도 일상적인 작업입니다. 모든 구성원들이 이해하기 좋고 적용하기 쉬운 규칙을 만들어 프로젝트에 활용해야 합니다.
그 규칙은 코드를 작성한 의도와 목적을 분명히 나타낼 수 있어야 합니다. 막힘없이 술술 읽혀지는 코드가 될 수 있도록 말입니다. 잘 읽혀지는 코드는 이해하는 시간을 최소화하여 개발 속도 향상에 기여합니다.
Case Style
PascalCasing
파스칼 케이스는 합성어를 구성하는 각 단어의 첫 글자를 대문자로 표기하는 방식입니다.
public class JavaNamingConvensions { ... }
camelCasing
카멜 케이스는 합성어를 구성하는 첫번째 단어의 첫 글자를 소문자로 표기하고, 이후 이어지는 단어들에 대해서는 첫 글자를 대문자로 표기합니다.
public String toUpperCase() { ... }
snake_casing
스네이크 케이스는 합성어를 구성하는 각 단어를 _
(Underscores)로 구분합니다는
// java.lang.Integer
public static int MAX_VALUE = 2147483646;
Naming Convensions in Java
Construct | Convention | Examples |
---|---|---|
Class | PascalCase | MyClass, Department |
Interface | PascalCase | Serializable, Runnable |
Method | camelCase | toString(), toUpperCase() |
Variable | camelCase | numList, strList |
Package | snake_case(all lower case) | java.lang, java.util |
Constant | SNAKE_CASE(ALL UPPER CASE) | MAX_VALUE, MIN_VALUE |
Method prefix
create
: 새로운 객체를 생성한 뒤 반환하는 메소드에 사용합니다.find
: 데이터를 조회하는 메소드에 사용합니다.get/set
: 멤버 변수에 접근하는 메소드에 사용합니다 (자바빈 규약).init
: 초기값 설정 및 내부 검증을 실행하는 메소드에 사용합니다.is/has/can
: boolean 타입을 반환하며 확인용 메소드에 사용합니다.load
: 어떤 값을 불러와 객체에 내장하거나 카운팅하는 메소드에 사용합니다.register
: 자바빈 규약에 따라 복잡한 연산이 불가능한 set 접두어를 대신하여 사용합니다.to
: 해당 객체를 다른 형태의 객체로 변환하는 메소드에 사용합니다.
Method prepositions
A-By-B
: B를 기준으로 A를 하겠다는 메소드에 사용합니다.A-With-B
: B와 함께 A를 하겠다는 메소드에 사용합니다.
References
https://www.educative.io
https://www.geeksforgeeks.org