📜. 코드 컨벤션?
- 코드 컨벤션이란 협업을 하는 개발자들에게 코드의 협약이다.
- 컨벤션을 잘 지키면 코드의 유지, 보수, 수정이 용이하다는 장점이 있다.
💪. 우리의 목표는 가독성 !
- 코드는 가독성이 중요하다.
- 가독성이 뛰어난 코드는 내가 작성하지 않았어도, 보면 이해햐기 쉬운 코드가 가독성이 뛰어난 코드이다.
- 가독성이 뛰어난 코드란?
- 일관성이 있는 코드 스타일
- 간단하고 명료한 로직
- 명확한 변수, 함수, 클래스의 네이밍이 일관적인 것
- 이 코드를 접하는 누구나 이해가 쉬운 코드
1️⃣. Naming Rule !
- 표기법
- 특별한 케이스를 제외한 경우 CamelCase를 사용함
- 위 룰은 유니티 에디터에서도 포함함
ex) CamelCase / GetData / GetService / GetUserName ....
- 종류 별 네이밍
종류 | convention | 예시 |
변수 (Variable) |
변수는 특별한 케이스를 제외한 경우 소문자로 시작하고, 그 이후는 카멜표기를 따른다. |
string userName int currentUsers bool onCheckPlayer |
함수 (Function) |
함수는 동사로 시작하면서 명확한 이름으로 지어준다. 유추해서 파악하는 단어는 피해서 지어준다. |
GetUserData() AddColor() ChangeImage() |
클래스 (Class) |
컴포넌트 개념으로 확실한 명시적인 제목으로 지어준다. - OOP 개념으로 접근하여, 개별적인 컴포넌트여야함 즉. 의존성과 커플링이 적어야함 데이터 파싱을 위한 클래스나 특별한 이유가 아니고선, 스크립터에 다수 클래스를 만들지 아니한다. |
CharacterMovement DamagedChecker ObjectGlowEffect |
프로퍼티 (Property) |
외부로 받아오는 값을 처리하거나 보안성이 필요한 경우 프로퍼티를 사용 C# 관례적인 프로퍼티 형태를 사용해 줌 프로퍼티 변수는 대문자로 시작해줌 private으로 사용할 내부 변수는 _변수 로 사용함 |
private string _playerHealth public string PlayerHealth { get set } |
- 피해야하는 네이밍
- 특별한 의미가 없고, 불분명한 이름들
ex) list, arr, string01, userInt
- 자신만 아는 단어나 줄임을 하는 경우
ex) GetUserData ----> GUD(); / aa / bb / cc / User -> u
2️⃣. 주석은 늘 친절함 !
- 주석은 항상 달아줘야함
- 불과 2달 전에 했던 프로젝트도 다시보니 늘 새롭다...
- 각 메서드마다 변수마다 또는 클래스마다 주석을 달아주자
- 어떠한 로직을 이해할 때 주석을 보고 이해하는 것과 무작정 들어가서 보는 코드는
이해하는 시간의 양이 상당히 차이가 난다.
- 주석을 꼭 자세하게 달아주자
3️⃣. 너무 긴 줄을 피하자 !
- 너무 긴 줄은 가독성을 현저하게 떨어트린다.
- .너무 긴 줄은 칸을 내려줘서 한 눈에 딱 들어오게 정리해주자
respawnPosition = new Vector3(inventorySlots[i].CharacterPosition.x, inventorySlots[i].CharacterPosition.y + 0.6f, inventorySlots[i].CharacterPosition.z);
---->
respawnPosition = new Vector3
(inventorySlots[i].CharacterPosition.x,
inventorySlots[i].CharacterPosition.y + 0.6f,
inventorySlots[i].CharacterPosition.z);
4️⃣. Enum 타입을 적극 활용하자!
- C#에 Enum 형식은 유용하다
- Enum은 다양한 형 변환으로 가독성을 올릴 수 있다.
- 종류를 결정하는 값을 이넘은 int와 string으로 전환이 쉽기 때문에 가독성을 올릴수 있음