[C++] 3. 변수 이름 및 함수 이름 코딩 룰에 맞게 설정하기(카멜 표기법,파스칼 표기법)
안녕하세요 고급 개발자가 꿈인 코린이 입니다.
오늘은 변수 이름 및 함수 이름을 코딩 룰에 맞게 설정한는 방벙에 대해서 포스팅 하겠습니다.
변수이름과 함수이름을 지정하는 방법은 아주 중요한 사항 입니다.
변수이름 과 함수이름 그냥 아무렇게 하면 되니않을까?? 구지 룰에 맞게 지켜야하나?? 라고 생각하시는 분들이 있고
신입 개발자들의 거의 대부분이 변수이름 및 함수이름을 규칙에 맞게 생성하지 않는 경우가
많기 때문에 포스팅을 합니다.
저 또한 제일 처음 신입으로 들어왔을때 항상 변수를 a,b,c,i 등 변수 이름을 막지었을 정도록 심각하게 변수 이름등을
막지은 경향이 있었습니다.
그러나 누구 하나가 이렇게 변수명을 넣게되면 이 코드를 읽어야하는 다른 개발자가 어떠한 변수명이
어떠한 일을 하고 어떠한 것을 담고있는지 모르게 되는 것입니다.
그렇기 때문에 코딩을 함에 있어서 변수명과 함수명을 규칙에 맞게 지어주는것이 좋은 프로그래머가 되는
첫번째 길 입니다.
변수와 함수이름을 지정하는 방법에는 카멜 표기법 및 파스칼 표기법 이 두가지 방법이 있습니다.
카멜 표기법은 각 단어의 첫문자를 대문자로 표기하고 붙여쓰되, 맨처음 문자는 소문자로 표기하는 방법 입니다.
예를들어 사람의 상태의 관한 변수를 만든다고 가정을 했을때 personState 라고 표시해주는 방법 입니다.
파스칼 표기법은 첫 단어를 대문자로 시작하는 표기법 입니다.
즉 사람 상태의 관한 변수를 만든 다고 가정 하면 PersonState라고 표시해주는 방법 입니다.
이 두가지중에 주로 쓰는 표현은 없지면 현재 현업에서 종사하시는 분들 대부분이 카멜 표기법을 많이 씁니다.
그래서 카멜 표기법에 대해서 간략하게 코드로 설명 드리겠습니다.
메인 cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <iostream>
#include <ServiceClass.h>
using namespace std;
int main()
{
ServiceClass *testClass = new ServiceClass();
testClass->setValue1(50);
testClass->setValue2(100);
cout << "value1:" << testClass->getValue1() << endl;
cout << "value2:" << testClass->getValue2() << endl;
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
ServiceClass 헤더파일
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#ifndef SERVICECLASSCECLASS_H
#define SERVICECLASSCECLASS_H
#include <iostream>
using namespace std;
class ServiceClass
{
public:
ServiceClass();
virtual ~ServiceClass();
void setValue1(int value1);//카멜 기법 함수 선언
void setValue2(int value2);//카멜 기법 함수 선언
int getValue1();//카멜 기법 함수 선언
int getValue2();//카멜 기법 함수 선언
private:
int mValue1;// 카멜 기법 전역 변수 선언 멤버 변수라는 것을 가르키기 위해 m을 넣어준다.
int mValue2;// 카멜 기법 전역 변수 선언 멤버 변수라는 것을 가르키기 위해 m을 넣어준다.
bool mbValue1Big; //멤버변수 및 bool타입이라는 것을 가르키기 위해 mb를 넣어준다.
};
#endif // SERVICECLASSCECLASS_H
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
ServiceClass cpp파일
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include "ServiceClass.h"
ServiceClass::ServiceClass()
{
cout << "ServiceClass()" << endl;
mValue1 = 0;
mValue2 = 0;
}
ServiceClass::~ServiceClass()
{
}
void ServiceClass::setValue1(int value1)
{
cout << "setValue1 value1:" << value1 << endl; //각 함수 시작시 로그를 찍는 버릇을 들이자
mValue1 = value1;
}
void ServiceClass::setValue2(int value2)
{
cout << "setValue2 value2:" << value2 << endl;
mValue2 = value2;
}
int ServiceClass::getValue1()
{
cout << "getValue1 mValue1:" << mValue1 << endl;
return mValue1;
}
int ServiceClass::getValue2()
{
cout << "getValue1 mValue2:" << mValue2 << endl;
return mValue2;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
위의 코드를 보면 각 전역 변수이름을 시작을 m으로 통일하고 그 다음 각 변수의 이름들을 선언 시켰다.
그리고 class의 함수들을 카멜 기법으로 어떤 동작을 하는지 함수 이름에 추가해서 넣었다.
위처럼 함수이름을 어떠한 기능 동작하는 설명으로 적어놓으면 보기도 쉽고 다른사람이 이 코드를 봤을때
이해하기도 쉽다. 프로그래머는 혼자서할수 없는 직업이고 한프로젝트에 여러명이서 개발을 하기때문에
위의 사소한 이름 작명 하나가 큰 차일이를 만듭니다.
그리고 각 전역 변수에 m을 넣은 이유는 m이라는 것은 즉 멤버 변수를 가르기는 것입니다.
위의 함수 중에 setValue1 이라는 함수를 보면 매개변수도 value1이고 전역변수도 value1이라면 어떠한 것이
전역 변수인지를 판단하기 어렵기 때문에 전역변수 즉 클래스의 멤버변수라는 것을 가르키기 위해 m을 붙혀서
mValue1이 됩니다.
그리고 각 변수에 타입을 넣어줄때도 있습니다. 예를들어 boolean타입을 넣을때 멤버면수에 mb~~~
이런식으로 멤버변수의 boolean타입 이라는 것을 가르킬수 있습니다.
이런 사소한 차이 하나가 다른 개발자들이 이해하기 쉽게하고 자기자신이 코딩을 할때도 아! 어떤 변수가
전역변수구나 라는 것을 알아서 변수 저장을 달리할수도 있게 하는 것 입니다.
위와같은 변수 및 함수 이름 설정 방법은 신입 개발자가 꼭 가지고 있어야하는 표기법으로
위와같은 표기법에 버릇이 들면 좋습니다.
그리고 각 함수마다 로그를 추가하였는데 이부분도 엄청 중요합니다.
각 함수가 시작될때마다 로그를 추가해서 현재 어떤 함수를 탄것인지 확인하는 버릇을 신입 개발자 분들이 꼭 가지고
있었으면 좋겠습니다.
여기까지 카멜 표기법과 파스칼 표기법에 대한 설명 이었습니다.
감사합니다.
'C++ > C++심화' 카테고리의 다른 글
[C++]6. vector 사용하기(구조체 vector사용 하기) (0) | 2019.07.14 |
---|---|
[C++]5. Enum값 사용하기 (0) | 2019.06.19 |
[C++] 4. null 과 nullptr의 차이점 (0) | 2019.06.09 |
[C++] 2. call by value 와 call by reference의 차이 (0) | 2019.06.07 |
[C++] 1. 초보개발자가 되기전 필요한 역량(신입 프로그래머의 역량,국비지원 교육과정 6개월 후 취업) (0) | 2019.06.07 |