Skip to content

Coding Convention

AppleMangoSpd edited this page Feb 15, 2021 · 39 revisions

개요

협업과 코드 해석을 위해 FPSWithTower를 제작할 때 사용되는 코딩 규칙을 정리해둔 문서

읽기 쉬운 코드 작성을 목표로 작성됨

함수 및 변수 작성 순서

  • public - protected - private 순으로 작성한다

예시

public class SampleClass
{
   public void SamplePublicFunction(){ } 
   public float _publicFloat;

   protected void SampleProtectedFunction(){ }
   protected float _protectedFloat;

   private void SamplePrivateFunction() { }
   private float _privateFloat;
}

함수 및 변수 네이밍 규칙

모든 함수/변수는 파스칼과 카멜방식을 합쳐서 사용한다

  • 함수는 대문자부터 작성한다.

    • 단어를 여러개 사용하는 경우 단어의 앞글자를 대문자로 작성한다.
  • 변수는 소문자부터 작성한다.

    • 단어를 여러개 사용하는 경우 두번째 단어부터의 앞글자를 대문자로 작성한다.
  • 멤버변수는 _를 붙인다

  • 메게변수와 지역변수는 _를 붙이지 않는다

예시

public class SampleClass
{
   public void SampleFunction(float sampleVariable) 
   {
        float localVariable = 10;
   }
   public float _sampleFloat;
}

변수/함수이름은 기능을 의미하도록 만든다

  • bool반환함수는 앞에 is/has를 붙인다

예시

public class NamingSampleClass
{ 
   public bool IsTrue()
   {
       return true;
   }
   public bool HasObject()
   {
       return true;
   }
}
  • 좌표 등을 표기할 때 변수의 X, Y는 마지막에 _와 함께 붙인다

예시

public float _coord_X;
public float _coord_Y;

var

  • var사용은 지양하되 아래와 같은 상황에서는 사용이 권장된다.
    • 객체 생성시에는 뒤에 자료형이 명시됨으로 var사용을 통해 코드를 간결하게 작성

예시

//var == SampleClass
var _sampleclass = new SampleClass();

클래스 네이밍 규칙

모든 클래스는 파스칼 방식을 사용한다

  • 모든 클래스는 대문자부터 작성한다
    • 추상클래스는 앞에 A를 붙인다
    • 인터페이스는 앞에 I를 붙인다

예시

public class SampleClass { }

public abstract class ASampleAbstract { }

public interface ISampleInterface { }

접근제한자

접근제한자는 항상 명시해준다

  • interface의 경우는 생략한다

  • 기획적인 측면에서 수정이 필요하지만 외부클래스에서의 접근은 불가능한 변수들은 private 선언 후 SerializeField를 적용한다

[SerializeField]
private float _playerSpeed;
  • private변수의 get set은 이름 앞의 _를 빼고 변수명으로 만든다
private float _playerHp;
public float playerHp
{
   get;
   set;
}

주석

  • 주석은 줄의 끝이 아닌 별도의 줄에 작성한다

예시

//SampleFunc에 대한 주석
public void SampleFunc()