본문 바로가기

프로그래밍/기본기ㆍ자료구조

Clean Code (클린코드)

728x90
반응형

의미 있는 이름

1. 의도를 분명히 밝혀라

- 이름에는 의도가 분명히 있어야 한다.

('단일 책임 원칙'에 의거하여 책임에 맞는 이름이어야 한다.)

- 좋은 이름을 지으려면 시간이 걸리지만 그만큼 좋은 이름으로 절약하는 시간이 훨씬 많다.

- 변수/함수/클래스의 목적을 파악하기 위해 주석이 필요하다면 이미 의도를 분명하게 나타내지 못한 이름을 사용한 것이다.

의도가 분명하지 않은 예시)

- public int dTime; // 경과 시간 (단위 : 날짜)

의도가 분명한 예시)

- public int elapsedTimeInDays;

(주석이 없더라도 경과된 일 단위 시간을 나타낸 것을 알 수 있다.)

2. 그릇된 정보를 피해라

- 중의적인 표현을 피한다.

- 컨테이너를 의미하는 이름은 주의한다.

중의적인 표현 예시)

- 개발자 A : 빗변을 나타내는 단어 hypoptenuse를 줄여서 hp라고 사용함

- 개발자 B : hp라는 명칭을 보고 체력이라고 착각함

컨테이너를 의미하는 이름 예시)

- 프로그래머에게 List는 특수한 의미이다. (자료구조)

- accountList가 실제 List형이 자료구조가 아니라면 이름을 다르게 지어라

int[] accountList; -> accountGroup, bunchOfAccounts, Accounts 등으로 명명 하는 것을 추천한다.

3. 의미 있는 구분

- 연속적인 숫자를 붙인 이름을 사용하지 마라 (a1,a2,a3. . .)

- 중복된 의미를 사용하지 마라

(int variable; // variable이라는 단어 자체가 변수라는 의미이다. 변수 이름이 변수가 되는 이상한 상황이 된다.)

(string NameString; // name은 보통 string이다. name을 float이나 int 등으로 저장할 일은 없을 것이다. string name;으로 바꾸자)

4. 발음하기 쉬운 단어를 선택해라

- 프로젝트는 일인 개발이 아닌 이상 혼자하지 않는다. 발음하기 어려운 단어는 의사소통에 어려움을 줄 수 있다.

5. 검색하기 쉬운 이름을 사용해라

- MAX_SLOT_COUNT = 7; 는 검색이 가능하다.

- 상수 7처럼 검색이 어려운(불가능에 가까운)것은 사용하지 마라

6. 자신의 기억력을 믿지마라

- 자기만 아는 명칭은 사용하지 마라

- 단순 반복문을 제외하고는 i, j, k 등의 단일 문자는 사용하지 마라

- 지나친 줄임말을 사용하지 마라 (위에서도 언급됬지만 타인은 알 수 없고 한달 뒤 개발 당사자도 모를 수 있다)

7. 헝가리언 표기법을 사용하지 마라

- 구시대의 유물이다.

- 과거 컴파일러가 타입구분을 엄격하게 하지 않을 때 타입 구분을 위해 사용했던 방법이다.

- 이제는 IDE가 컴파일 하지 않고도 감지한다.

8. 멤버변수 접두어

- 클래스와 함수는 접두어가 필요 없을 정도로 작게 설계 되어야 한다.

이 외에도 많은 내용이 있지만, 결국 이야기 하는것은 위 내용과 일맥상통한다고 판단된다.

 

 

 

Clean Code(클린 코드):애자일 소프트웨어 장인 정신

COUPANG

www.coupang.com

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있습니다.

 

프로그래머에게는 꼭 한번 읽어봤으면 하는 책으로 추천

 

다람쥐와 포동포동이

 

RememberCook 9월 28일 정식 출시!

두번째 게임인 RememberCook이 출시되었습니다. 귀여운 캐릭터들이 나오는 간단한 게임이며 플레이어의 공간인지능력을 테스트하는 게임입니다. 아래 링크를 통해 다운 받으실 수 있으니 많은 관��

chipmunk-plump-plump.tistory.com

반응형

'프로그래밍 > 기본기ㆍ자료구조' 카테고리의 다른 글

Dictionary (딕셔너리)  (0) 2020.05.14
Generic (제네릭)  (6) 2020.05.13
BackBuffer (백버퍼)  (5) 2020.05.01
Property Indexer (프로퍼티 인덱서)  (5) 2020.04.30
Property (프로퍼티)  (10) 2020.04.29