Differences between revisions 1 and 2
Revision 1 as of 2019-05-03 18:49:52
Size: 2211
Editor: Tiff
Comment:
Revision 2 as of 2019-05-07 04:16:16
Size: 2213
Editor: Tiff
Comment:
Deletions are marked like this. Additions are marked like this.
Line 80: Line 80:
대문자와 _ 로 구성함 upper_case_with_underscores 대문자와 _ 로 구성함 (UPPER_CASE_WITH_UNDERSCORES)

DKGL Coding Conventions. [DRAFT/작업중]

https://dkscript.com/wiki/CodingConventions 여기서 가져옴.

Coding

{ 와 } 는 다른 라인에 위치하게 되는 경우는 new-line 후에 한다. https://en.wikipedia.org/wiki/Indentation_style#Allman_style

  • 올바른 방법

if (expr)
{
// 되도록 이렇게.
}
  • 올바르지 않음

if (expr) {
// 특별한 이유가 없다면 이렇게 하지 말것.
}
  • 예외: 짧은것, 한줄에 한해서는 허용함.

if (expr) {... } // 한줄, 짧은것에 대하여 허용

struct ABC
{
    int Number() const { return 10; } // 허용
};

Naming

매크로를 제외하고 기본적으로 CamelCase 를 따른다. 의미 있는 이름을 사용해야 한다. 함수는 동사형, 변수는 명사형을 권장함.

리턴값이 함수의 역할에 해당하는 값이라면 Get 으로 시작하지 않는다.

  • 올바른 이름

String Name()
{
    return this->name;
}
  • 올바르지 않음

String GetName()
{
    return this->name;
}
  • 예외: 허용 가능한 경우 (리턴값이 함수 수행에 대한 결과값)

bool GetName(String& name) noexcept
{
    if (this->name != nullptr)
    {
        name = this->name;
        return true;
    }
    return false; // Cannot find name property! but I don't want to throw an exception.
}

함수, 상수, 타입

대문자로 시작한다.

변수, 인스턴스

소문자로 시작함.

매크로

대문자와 _ 로 구성함 (UPPER_CASE_WITH_UNDERSCORES)

#define SOME_MACRO_FOR_SOMETHING 20

기타

lambda 는 소문자로 (인스턴스 취급한다)

auto lambda = [](){};

템플릿 매개변수도 상수로 취급한다.

template <int Num>
struct Number 
{
};

CodingConventions (last edited 2019-05-07 17:28:41 by Tiff)