⇤ ← Revision 1 as of 2019-05-03 18:49:52
Size: 2211
Comment:
|
Size: 2213
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
{
};