-
[Coding Convention] 명명 규칙과 표준프로그래밍 언어 2022. 4. 15. 13:41
1.1 네임스페이스 (Namespace)
- 네임스페이스는 아래와 같은 규칙으로 작성
<회사명>.<제품명>.<상위모듈>.<하위모듈>
1.2 클래스 (Class)
- 클래스 명 : 파스칼 케이싱
public class HelloWorld
{
...
}
- 인터페이스 : 'I' + 파스칼 케이싱
예 : IEntity
- 하나의 파일에는 하나의 클래스만 작성
- 너무 긴 소스를 가지는 클래스를 작성하지 않음. (1000라인 이상이 된다면, 이는 Refactoring 대상으로 좋음. 둘 이상의 클래스로 분할)
*Refactoring : 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 변경하는 것 (기능적인 부분이 아닌 구조적인 부분을 변경하는 것)
1.3 메소드 (Method)
- 메소드 명 : 파스칼 케이싱
void SayHello()
{
}
- 메소드 인자 : 케멀 케이싱
void SayHello(string name)
{
}
- 메소드 명은 수행하는 이름을 명확히 하여 작성하기 ( 이렇게 하면 메소드에 대한 주석이 필요 없음)
void SavePhoneNumber (string phoneNumber)
{
// Save the phone number.
}
- 메소드가 길다면 Refactoring을 통해 분리
- 아무리 작은 단위의 작업을 하는 메소드라 할지라도 하나의 메소드는 하나의 작업만 할 것
예)
//Save the address.
SaveAddress (address);
//Send an email to the supervisor to inform that the address is updated.
SendEmail (address, email);
void SaveAddress (string address)
{
//Save the address.
//...
}
void SendEmail (string address, string email)
{
//Send an email to inform the supervisor that the address is changed.
//...
}
나쁜 예)
// Save address and send an email to the supervisor to inform that
// the address is updated.
SaveAddress (address, email);
void SaveAddress (string address, string email)
{
// Job 1.
// Save the address.
//...
// Job 2.
// Send an email to inform the supervisor that the address is changed.
//...
}
- 메소드에 너무 많은 인자를 넘기지 말 것. 4 ~ 5개 이상의 인자가 전달되는 메소드가 있다면, 클래스 혹은 메서드의 구조를 재조정할 것.
1.4 변수 (Variable)
- 변수 명 : 캐멀 케이싱
int totalCount = 0;
- 변수명에 대해 헝가리안 표기법 사용하지 않기
예) string m_sName;
int nAge;
- 변수를 의미 있게 부여하고 축약하지 않기
예) string address
int salary
- i, n, s와 같은 한 글자로 이루어진 변수를 사용하지 않기. 다만, 다음은 예외로 함.
for ( int i = 0, i < count, i++)
{
...
}
- 지역변수에 언더스코어( _ ) 문자를 사용하지 않기
- 멤버변수는 언더스코어( _ )로 시작하여 지역변수와 구분하기
- 메소드 안에서 변수선언은 해당 변수가 최초로 사용되는 곳에서 선언하도록 하고 한 줄에 하나의 변수만 선언
'프로그래밍 언어' 카테고리의 다른 글
[Coding Convention] 주석, 예외처리 (0) 2022.04.15 [Coding Convention] 프로그래밍 습관 (0) 2022.04.15 [Coding Convention] 들여쓰기, 공백 (0) 2022.04.15 [Coding Convention] 파스칼 케이싱, 캐멀 케이싱 (0) 2022.04.15