본문 바로가기
개발/Unity

Unity)C#) 코드 스타일 가이드 만들기

by 테샤르 2023. 4. 3.

C# 코드 스타일 가이드 만들기

 

Unity에서도 기본적으로 C# 코드를 Microsoft 의 코드 스타일을 권장한다.

Google C# 스타일 가이드도 존재하지만 여기서는 Microsoft를 기반으로 작성된 글을 기준으로 정리한다.

 

반응형

결국 Code Style은 개발하는 개발자들의 좀더 적합한 형태를 선택하는게 바람직하다.

<형식 지정 규칙>

형식 지정 규칙은 에서는 1번형태를 권장한다.

<1번>

// EXAMPLE: Allman or BSD style puts opening brace on a new line.

void DisplayMouseCursor(bool showMouse) 
{
     if (!showMouse)
     {
          Cursor.lockState = CursorLockMode.Locked;
          Cursor.visible = false;
     }
     
     if(IsDebug)
     	Debug.Log("DisplayMouseCursor TEST")
}

<2번>

// EXAMPLE: K&R style puts opening brace on the previous line.

void DisplayMouseCursor(bool showMouse){
     if (!showMouse) {
          Cursor.lockState = CursorLockMode.Locked;
          Cursor.visible = false;
     }
     
      if(IsDebug){
     	Debug.Log("DisplayMouseCursor TEST")
    }
}

 

<코드 가독성>

띄어쓰기 등의 간단한 요소로도 화면에서 코드의 가독성을 높일 수 있다. 선호하는 형식은 다양할 수 있지만, 전반적인 가독성 개선을 위해 스타일 가이드에서는 다음과 같은 방법을 권장한다.

  • 공백을 추가하여 코드 밀도 감소: 추가 공백을 사용하면 라인의 요소들을 시각적으로 분리하는 느낌을 줄 수 있습니다.
// EXAMPLE: Add spaces to make lines easier to read.
for (int i = 0; i < 100; i++) { DoSomething(i); }

// AVOID: No spaces
for(int i=0;i<100;i++){DoSomething(i);}
  • 함수 인수 사이의 쉼표 다음에 하나의 공백을 사용합니다.
// EXAMPLE: Single space after comma between arguments
CollectItem(myObject, 0, 1);

// AVOID:
CollectItem(myObject,0,1);
  • 괄호와 함수 인수 뒤에는 공백을 추가하지 않습니다.
// EXAMPLE: No space after the parenthesis and function arguments 
DropPowerUp(myPrefab, 0, 1);

// AVOID:
DropPowerUp( myPrefab, 0, 1 );
  • 함수 이름과 괄호 사이에 공백을 사용하지 않습니다.
// EXAMPLE: Omit spaces between a function name and parenthesis.
DoSomething()

// AVOID:
DoSomething ()
  • 대괄호 안에 공백을 사용하지 않습니다.
// EXAMPLE: Omit spaces inside brackets.
x = dataArray[index];

// AVOID:
x = dataArray[ index ];
  • 흐름 제어 조건 앞에 하나의 공백 사용: 비교 연산자와 괄호 사이에 공백을 추가합니다.
// EXAMPLE: Space before condition; separate parentheses with a space
while (x == y)

// AVOID:
while(x==y)
  • 비교 연산자 앞뒤로 하나의 공백을 사용합니다.
// EXAMPLE: Space before condition; separate parentheses with a space
if (x == y)

// AVOID:
if (x==y)

 

<명명 규칙>

명명 규칙은 이름 그 자체가 의미를 파악이 가능하고 긍정적인 의미를 기반으로 작성하는것을 권장한다.

 

동사로 시작하고 반환유형을 기반해서 'GetDirection, FindTarget'의 형태가 좋다.

Boolean에서는 IsGameOvjer, HasStartedTurn 등이 권장한다.


추가로 축약은 최대한 자제하는것을 권장한다.

클래스의 이름이 Player일 경우에 변수이름을 PlayerScore같은 형태로 지정할 필요가없다.

Player.Score 형태가 바람직하다.

 

이벤트 발생은 'On'이라는 접두사를 많이 사용한다.

 

<대소문자- 표기법>

카멜 표기법과 파스칼 표기법은 스네이크 표기법, 케밥 표기법, 헝가리언 표기법에 비해 일반적으로 사용되는 표준 표기법입니다. 유니티 가이드에서는 일반적인 Unity 사용 사례에 따라 public 필드, 열거형, 클래스, 메서드에 파스칼 표기법을, private 변수에는 카멜 표기법을 사용하도록 권장하고 있습니다.

 

 

 

Unity C# 코드 스타일 가이드 만들기 : [링크]

 

C# 코드 스타일 가이드 만들기 | Unity Blog

카멜 표기법과 파스칼 표기법은 스네이크 표기법, 케밥 표기법, 헝가리언 표기법에 비해 일반적으로 사용되는 표준 표기법입니다. 유니티 가이드에서는 일반적인 Unity 사용 사례에 따라 public 필

blog.unity.com

Microsoft C# 코딩 규칙 : [링크]

 

C# 코딩 규칙

C#의 코딩 규칙에 대해 알아봅니다. 코딩 규칙은 코드를 일관되게 표시하고 코드 복사, 변경 및 유지 관리를 용이하게 합니다.

learn.microsoft.com

Google C# Code Style : [링크]

 

C# at Google Style Guide

Style guides for Google-originated open-source projects

google.github.io

 

★☆☆☆☆

 

반응형

댓글