Coding Standards Naming Conventions
Wednesday, April 24, 2024 6:20 PMNaming Conventions
Capitalization
Casing Styles
- 아래의 표기 형식을 사용하며, 식별자별로 구분하여 사용한다.
Style | Description |
---|---|
lowercase | 모든 단어를 띄어쓰기 하지 않은 소문자로 표기한다. |
lower_case_with_underscores | 모든 단어를 소문자로 표기하고, 단어와 단어는 _ 를 삽입하여 구분한다. |
UPPERCASE | 모든 단어를 띄어쓰기 하지 않은 대문자로 표기한다. |
UPPER_CASE_WITH_UNDERSCORES | 모든 단어를 대문자로 표기하고, 단어와 단어는 _ 를 삽입하여 구분한다. |
lowerCamelCase | 첫글자 를 소문자로 표기하고, 나머지 단어의 첫글자는 대문자로 표기한다. |
UpperCamelCase | 첫글자 를 대문자로 표기하고, 나머지 단어의 첫글자는 대문자로 표기한다. |
Capitalized_Words_With_Underscores | 각 단어의 첫글자를 대문자로 표기하고, 단어와 단어는 _ 를 삽입하여 구분한다. |
Style for Identifiers
- 추가적인 세부규칙은 각 항목에서 다루며, 기본 규칙은 아래와 같다.
Idenfidier | Style | Example |
---|---|---|
Variable | lowerCamelCase, lowercase | $fooBar, $i |
Class | UpperCamelCase | FooBar |
Namespace | UpperCamelCase | FooBar |
Property | lowerCamelCase | $fooBar |
Method | lowerCamelCase | fooBar |
Constant | UPPER_CASE_WITH_UNDERSCORES | FOO_BAR |
Internal Function | lower_case_with_underscore | mysql_query |
Database | lower_case_with_underscores, UPPER_CASE_WITH_UNDERSCORES | gd_goods, USP_GET_GD_GOODS_LIST |
Column | lower_case_with_underscores | goods_name |
Filenames
PHP
- 클래스명과 파일명이 같아야 한다.
Resources
- Image : lower_case_with_underscores 를 사용하되, 구분자는 _ 대신 . 을 사용해도 된다.
- CSS : lower_case_with_underscores 를 사용하되, 구분자는 _ 대신 . 을 사용해도 된다.
- JS : lower_case_with_underscores 를 사용하되, 구분자는 _ 대신 . 을 사용해도 된다.
General
Word Choice
- 의미가 전달 될 수 있도록, 쉽고 간단한 단어를 사용하여 작명한다.
- 흔히 쓰이는 용어(ex: email, XML, file, error 등)를 사용할 경우, 반드시 1개 이상의 수식어를 함께 사용한다.
- 헝가리안 표기를 사용하지 않는다.
- Control Structures 에 i, j, k, v 등의 네이밍을 사용하는 것은 복잡한 중첩 구조가 아닌 경우에는 허용된다.
Abbreviations
- 약속된 약어 외에는 단어를 모두 풀어쓰도록 한다.
getMemberInformation (O)
getMbInfo (X)
openPopupWindow (O)
openPopupWin (X)
register_date (O)
regdt (X)
Namespaces & Classes
- UpperCamelCase 형태로 표기한다.
- Interface 는 접미사로 Interface 를 붙인다.
- Trait 는 접미사로 Trait 를 붙인다.
- Abstract 클래스는 접두사로 Abstract 를 붙인다.
- Exception 클래스는 접두사로 Exception 을 붙인다.
Methods
- lowerCamelCase 형태로 표기한다.
- 동사로 시작한다.
- Visibility를 반드시 지정한다.
- private method일 경우에만 _ 로 시작한다.
class SomeClass
{
public function getResultSet()
{}
protected function getResult()
{}
private function _getResultSet()
{}
}
Properties
- lowerCamelCase 형태로 표기한다.
- 명사로 시작한다.
- Visibility를 반드시 지정한다.
- private method일 경우에만 _ 로 시작한다.
class SomeClass
{
private $_data;
public $resultSet;
}
Constants
- UPPER_CASE_WITH_UNDERSCORES 형태로 표기한다.
- true, false, null 은 소문자를 유지한다.
define('DEFINE_CONSTANT', '...');
class SomeClass {
const SOME_CONSTANT;
}
Internal Functions
- 내장 함수는 모두 소문자와 _로 표기한다.
- PHP코드와 프로젝트 코드를 구분하기 위해 반드시
gd_
를 prefix로 붙힌다.
define('DEFINE_CONSTANT', '...');
class SomeClass {
const SOME_CONSTANT;
}
Databases
Table Name Prefix
- 프로젝트별 구분을 위해 Table Name Prefix 를 사용할 수 있다.
- 고도몰의 Table Name Prefix 는
es_
이다.
Tables
- lower_case_with_underscores 형태로 표기한다.
- DBMS 내장 키워드명, 함수명을 사용하지 않는다.
- 의미 없는 단어나, 약속되지 않은 약어를 사용하지 않는다.
Columns
- lower_case_with_underscores 형태로 표기한다.
- DBMS 내장 키워드명, 함수명을 사용하지 않는다.
- 의미 없는 단어나, 약속되지 않은 약어를 사용하지 않는다.
confirm_yn (O)
cyn (X)
delivery_yn (O)
dyn (X)
Indexes
-
lower_case_with_underscores 형태로 표기한다.
-
인덱스에 포함된 모든 컬럼명을 모두 입력한다.
-
인덱스 형태별로 아래의 prefix 를 사용한다.
- Unique : uidx
- Index : idx
Triggers
- 사용금지
Stored Procedures
- 사용금지
User Defined Functions
- 사용금지
Viewes
- 사용금지