일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 다이나믹 폰트
- ui
- sha
- jumping ball
- 프레임워크
- TextMeshPro
- 가이드
- 이미지 폰트
- Unity Editor
- Job 시스템
- Dots
- base64
- job
- 텍스트 메시 프로
- 단말기 해상도
- 커스텀 패키지
- RSA
- Custom Package
- unity
- AES
- 2D Camera
- C#
- Tween
- Framework
- DotsTween
- Dynamic Font
- 최적화
- 샘플
- adfit
- 암호화
- Today
- Total
EveryDay.DevUp
[Unity] C# 코딩 규칙 본문
코딩 규칙은 혼자 개발할 때는 중요하지 않지만, 다른 사람들과 협업을 할 때 매우 중요한 요소.
- 일관성 있는 코드 규칙을 통해, 확인하는 사람으로써 빠른 이해가 가능할 수 있게 함
- 코드의 유지 보수가 용이 해짐
▶ Visual Studio를 사용하는 경우 도구 -> 설정 가져오기 및 내보내기 를 통해 자신의 설정을 내보내거나, 다른 사람의 설정을 가져올 수 있음
: 이를 통해 팀원 간의 환경을 맞출 수 있음
● 코드 표기법
▶ 카멜 표기법 : 첫 단어의 첫 글자는 소문자로, 이후 단어의 첫 글자는 대문자를 사용 ex ) testCamel
▶ 파스칼 표기법 : 모든 단어의 첫 글자는 대문자를 사용 ex) TestPascal\
▶ 헝가리안 표기법 : 변수 및 함수 앞에 데이터 타입을 표기 ex) iValue
▶ 스네이크 표기법 : 단어를 "_" 로 구분하는 방식 test_snake
▶ 케밥 표기법 : 단어를 "-" 로 구분하는 방식 test-kebab
● 일반적인 코드 표기법의 사용
- 아래 사이트와 개발 시에 읽기가 편했던 코드들의 경험을 바탕으로 사용 규칙을 다음과 같이 정리
http://csharpdocs.com/c-coding-standards-and-best-practices/
▶ 파스칼 표기법 사용
: Class, Method, FileName
public class TestCode {} // class에 파스칼 사용
public int GetCount() {} // 함수에 파스칼 사용
TestCode.cs // 파일 이름에 파스칼 사용
▶ 카멜 표기법 사용
: 지역 변수 및 public, protected 변수에는 일반적인 카멜 표기법 사용, 멤버 변수는 "_"를 추가한 카멜 표기법 사용
public class TestCode {
int _testId; // 멤버 변수에는 _ 을 추가한 카멜 표기법
public int testAccountId; // public, protected 변수에는 카멜 표기법
public void GetAccountId() {
int tempId = testAccountId; // 지역 변수에는 카멜 표기법
return tempId;
}
}
▶ 인터페이스에는 I 를 추가
public interface IObserver // 인터페이스
{
int Priority { get; set; }
OBSERVER_STATE State { get; set; }
void OnNotify(object obj);
}
▶ bool 값을 가지는 변수 또는 프로퍼티는 Is를 사용
bool _IsReward = false;
public bool IsReward = false;
▶ 단순히 값을 가져오는 경우에는 Get을 셋팅하는 경우에는 Set을 사용
public int GetRewardGold()
{
return rewardGold;
}
public void SetGold( int goldAmount )
{
rewardGold = goldAmount;
}
▶ Class 안에 멤버 변수를 다른곳에서 참조하려고 할때는 직접적으로 가져다가 쓰기보다는 get; set;을 활용
public class Game
{
int _gold;
public int Gold
{
get {
return _gold;
}
set {
return _gold
}
}
}
public class Main
{
void OnStart() {
Game game = new Game();
game.Gold = 100;
}
}
▶ ENUM은 항상 대문자만을 사용
public enum OBSERVER_STATE
{
PROGRSS,
REMOVE,
}
▶ 한 파일에는 하나의 클래스만 담길 수 있도록 해야함
▶ 하나의 클래스가 길어진다면 partial 을 사용하여 큰 기능별로 클래스를 분리
▶ 함수의 코드가 길어지는 것을 회피, 함수가 길어진다면 함수를 분리하는 것을 고려해야 함
▶ 함수와 변수의 이름은 줄임말을 사용하지 않고 명확한 단어를 사용
: 예외적으로 반복문의 경우에는 i, j, k를 사용해도 됨 ( 프로그래머 친화적인 규칙 )
▶ 함수 안에서 하나의 로직이 끝나면 개행으로 분리
public int Sum() {
int a = 1;
int b = 2;
int result = 0;
result = a + b;
return result;
}
▶ if, switch 문과 같은 구문의 {}는 한행의 { 를 사용
if( a == b )
{
Debug.Log( "test1" );
}
else
{
Debug.Log( "test2" );
}
▶ if, switch 문과 같은 구문의 {}는 한행의 { 를 사용
▶ if 문은 최대한 하나의 상태값만을 비교할 수 있도록 함으로써 조건을 명확히 함
▶ 계산식을 표시할 때는 논리적인 계산으로 ()가 없어도 될 때에도 최대한 ()를 넣어주는 것이 좋음
result = a + ( b / 2 );
▶ 주의가 필요한 함수 또는 이슈에 대한 처리 시 해당 부분에 주석을 달아주는것이 좋음
'C#' 카테고리의 다른 글
[Unity] Struct (구조체) (0) | 2021.12.23 |
---|---|
[Unity] Namespace ( 네임 스페이스 ) (0) | 2020.06.16 |
[Unity] C# 주석 (0) | 2020.05.31 |
[Unity] C# Boxing , unboxing ( 박싱, 언박싱 ) (0) | 2020.05.31 |
[Unity] C#에서의 메모리 (0) | 2020.04.27 |