여러분들은 팀 프로젝트에서 가장 중요하게 생각하시는게 무엇인가요?
저는 커뮤니케이션이라고 생각합니다.
커뮤니케이션을 잘하기 위한 방법에는 무엇이 있을까요?
오프라인 회의, 잦은 소통 등이 있지만 저는 가장 효율적인 방법이 바로 컨벤션이라고 생각합니다.
팀에 컨벤션, 즉 규칙이 존재한다면 그거에 맞춰 커뮤니케이션 하기 편해지니깐요!
이번에는 개발자를 위한 코드 컨벤션 Part를 준비해봤습니다.
1-1. 코드 작성
1-1-0. 기본 세팅
에디터
- 2022.3.20f1
1-1-1. 기본
C# identifier names - rules and conventions - C#
Learn the rules for valid identifier names in the C# programming language. In addition, learn the common naming conventions used by the .NET runtime team and the .NET docs team.
learn.microsoft.com
MS 컨벤션을 따릅니다. 가장 대중적이고 확실하니깐요 ㅎㅎ
- 작명 기본
- 기본적으로 lowerCamelCase를 따릅니다.
int employeeCount = 0; string employeeName = "John Doe"; bool isEmployeeActive = true;
- 기본적으로 lowerCamelCase를 따릅니다.
- 클래스(Class)와 구조체(Struct): 클래스와 구조체의 이름은 명사나 명사구를 사용하며, PascalCase를 사용합니다. 예를 들어, EmployeeRecord, ColorOption 등입니다.
- 주로 명사로 작성하나, 반환 타입이 bool이라면, 질문 형태로 작성할 수 있습니다.
public bool IsVisible() { return true; }
public bool ShouldDestroyProjectile() { return false; }
- 인터페이스(Interface): 인터페이스의 이름은 형용사구를 사용하거나 가끔 명사나 명사구를 사용합니다. 인터페이스 이름은 'I’로 시작하여 해당 타입이 인터페이스임을 나타냅니다. 예를 들어, IComponent, ICustomAttributeProvider, IPersistable 등입니다.
- 예시
public interface IPersistable public interface ICloneable public interface IComparable public interface IDisposable public interface IComponent public interface ICustomAttributeProvider
- 구조체(Struct): 구조체의 이름도 클래스와 마찬가지로 명사나 명사구를 사용하며, PascalCase를 사용합니다.
- 예시
public struct Point { public int X; public int Y; } public struct Rectangle { public int Width; public int Height; } public struct Circle { public int Radius; } public struct Triangle { public int Base; public int Height; } public struct Employee { public string Name; public int Age; }
- 열거형(Enum): 열거형의 이름은 일반적으로 단수형을 사용합니다. 그러나 해당 열거형이 비트 필드를 나타내는 경우 복수형을 사용할 수 있습니다.
- 예시
public enum DaysOfWeek { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } public enum MonthsOfYear { January, February, March, April, May, June, July, August, September, October, November, December } public enum Colors { Red, Orange, Yellow, Green, Blue, Indigo, Violet } public enum Sizes { Small, Medium, Large, ExtraLarge } public enum EmployeeStatus { Active, Inactive, OnLeave, Retired }
1-1-2. 주석
- 주석은 ‘한글로' 작성 (영어여도 괜찮습니다)
1-1-3. 조건문과 반복문
- 조건문
- 한 줄을 제외한 모든 경우에 중괄호를 붙입니다.
- 들여쓰기는 반드시 지킵니다.
- 반복문
- 단순 idx 접근을 제외하면, 변수명 i, j, k는 지양합니다.
- 들여쓰기 필수입니다.
- Switch
- 들여쓰기 필수입니다.
- defaults에도 내용 기입 (예외처리문 등)입니다.
1-1-4. 그 외
- namespace
- <Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>] 규칙을 따르셔야합니다.
- 예시
- TTATGCompany.TTATG. <특징>. <서브특징>
- 예시