본문 바로가기
프로그래밍/Code Craft

[1부 코드와 마주보기] Chapter3 이름이 뭐길래

by Ohdumak 2017. 9. 26.

이름?

신원: 가장 기본적인 개념

행동: 행동에 대한 암시

인지: 이름은 무언가가 다른 것과 구분되는 실체임을 표시

 

이름을 붙여야 하나?

소스 코드의 작성은 모두 명료한 의사소통에 관한 것이라는 사실을 기억하자

명료한 이름을 붙이면 만들어진 코드라는 품질보증 스티커가 하나 붙여지는 셈이다.

이름을 붙이는 능력은 코드 장인 중요한 스킬!! - 어렵다고 생각한다!! 쉽게 하는 방법이 있으면 공유하고 싶습니다? 있습니까?

코드 장인 읽기 쉬운 코드를 작성하기 위해 열심히 일한다!

 

우리는 무엇에 이름을 붙이는가?

변수, 함수, 타입(클래스, 열거 타입, 구조체, 사용자 정의 타입), C++ 네임스페이스와 JAVA 패키지, 메크로, 소스파일

 

이름 붙이기

무엇에 이름을 붙일 것인지가 가장 중요하다!!

잘못된 이름은 대개 이해 부족의 표시이다.

좋은 이름을 짓기 위해서는 무엇에 대한 이름을 짓고 있는지 정확히 아는 것이 가장 중요하다!

묘사적인 이름

이름을 고를 때는 프로그램에 대해 모르는 독자의 관점에서 선택하자

관용구를 사용하는 이름

관용구: 이상의 단어로 이루어져 있으면서 단어들의 의미만으로는 전체의 의미를 없는, 특수한 의미를 나타내는 어구

언어의 관용구를 알아 두는 것이 좋다

적절한 이름

길이: 이름은 짧게 짓는 것보다 명료하게 짓는 것이 중요

짧은 이름과 이름 사이의 타협점을 알아두자

말투: 항상 처음부터 이름을 짓도록 노력하자

세세한 실무

변수에 이름 붙이기

변수: 손에 잡을 있는 종류의

변수의 이름에는 보통 명사를 사용

stwmn(SomeTypeWithMeaningfulNaming): 변수의 사용 범위가 좁을 경우에는 이런 이름이 숨쉬기 힘들 정도로 이름보다 명료할 있습니다.

일반적으로 타입 이름과 변수 이름이 구별되는 관례가 가장 좋다.

타입 이름의 글자는 대문자, 변수 이름의 글자는 소문자

변수 이름과 타입 이름을 구분하는 명명 관례를 채택하자

함수에 이름 붙이기

함수는 동작이기 때문에 동사로

함수는 항상 사용자의 관점에서 이름을 붙여야 하고, 내부 구현은 보이게 깔끔하게 감춰야 한다

함수 이름은 함수가 하는 일을 명료하게 표현하는 문장

대문자 사용의 관례 : 코어엔진팀 사용 (camelCase)

타입에 이름 붙이기

클래스가 상태 값을 갖는 객체를 묘사할 경우 명사

클래스가 함수 객체이거나 가상 콜백 인터페이스를 구현하는 클래스일 경우 동사

이름에 불필요한 단어를 덧붙여서 사용하지 말자

클래스 이름은 실제의 객체가 아니라 반드시 클래스를 묘사해야 한다. 이것은 미묘하지만 중요한 차이이다.

*잘못된 클래스 이름: 좋은 이름을 붙였더라면 코드에서 로직으로 가는 분명한 길이 보일 것이다.

네임스페이스에 이름 붙이기

물건을 넣는 가방처럼 주로 무언가를 모으는 메커니즘으로 사용된다.

네이밍 스킴(naming scheme) 사용해야 한다.

네임스페이스의 이름을 고를 때는 안에 들어가는 내용물들의 관계를 묘사하는 이름으로 고르자

내용물들이 어떤 라이브러리에 속하는 전체 인터페이스에 해당한다면, 라이브러리 이름을 사용하자

논리적 관계를 반영해서 지어라

매크로에 이름 붙이기

최대한 눈에 띄게 이름을 붙이는 전통이 정착되어 있다. 모두 대문자를 사용해서 지어라

매크로는 단순히 텍스트 교체 도구다.

C/C++ 매크로는 언제든지 눈에 띄게 대문자로, 신중히 이름을 붙여서 이름 충돌이 일어나지 않게 해야 한다.

파일에 이름 붙이기

소스 파일의 이름은 코딩의 용이성에 정말로 영향을 미칠 있다 -인정

 

일관성 있는 명명 관례를 선택해서 일관성있게 사용하자

이름의 세세한 부분은 콘텍스트에 따라 달라진다. 콘텍스트 정보를 활용하자!!


728x90

댓글