"이름으로 소통하기!!"
변수, 함수, 클래스등의 이름을 결정할 때 정보를 담아 보자!
변수, 함수, 클래스의 이름이 곳 다른 사람과의 소통이기 때문이다.
1. 아무 생각없이 손에 익은 이름을 타이핑 하기 전에 더 명확하게 의미를 전달 할 수 있는 단어가 없는지 생각해 보자.
send => route, announce, deliver...
find => search, recover...
start=> launch, create ...
make -> create, set up, add, new..
센스 넘치고 은유적인 단어는 시나 편지에 쓰고 프로그램에 쓸 이름은 명확, 간결, 담백하게 쓰자!!
2. 흔해 빠진 고민 없는 이름 피하기
temp, ret 등과 같은 이름으로 변수 혹은 함수의 목적을 자신만 알게 쓰지 말자.
이와 같은 게으름은 다른 개발자를 힘들게 할 뿐만 아니라 몇개월이 지난 나 자신에게 야근으로 돌아온다.
3. 많은 의미를 내포한 두리뭉실한 작명보다 구체적인 직설 작명하기
구체적인 목표가 표현될 수 있도록 작명하자, 추상적인 표현은 제 3자의 창의성만 키워서 다른 의미로 와전될 수 있다.
4. 꼭 필요한 단서를 이름에 남기자.
추리 소설을 보면 자주 등장하는 단서, 이름만으로 다른 사람이 힌트를 얻을 수 있는 중요한 단서는 이름에 꼭 남기자.
다른 개발자가 실수하지 말아야 할 사항은 친절하게 이름에 남겨두자. 그것이 다른 사람의 퇴근을 앞당길 것이다.
(예 : time => time_min 시간 단위)
5. 이름의 길이
작명하다 보면 이름의 길이가 고민될 때가 있다. 너무 길어도 고민이고 너무 줄여도 고민이다. 길면 가독성이 떨어질 것이고 줄이면 의미 전달이 떨어질 수 있기 때문이다.
앞으로는 상황에 따라 길이를 조절해 보자.
5.1 좁은 범위에서는 짧은 이름 사용하기
그외 많은 부분에 영향이 가는 이름이라면 많은 의미를 내포하는 것이 좋다.
5.2 약어와 축약형
젊은 친구들이 요즘 줄임말을 사용하듯 프로그램에서도 줄임말을 많이 사용한다. 무엇이든 과한것은 문제가 된다. 적당히 사용하는 것이 관건이다. 지나친 약어와 축약형은 의미 전달이 되지 않는다.
대부분 사람들이 이해할 정도로 또는 아재들도 쉽게 이해할 수 있는 친절한 약어와 축약형 단어를 선택해 보자.
5.3 불피요한 단어는 제거하자.
구지 쓰지 않아도 의미가 전달된다면 사용하지 않는 것이 좋다.
(ConvertToString -> ToString)
6. 이름 포맷팅 활용하기
밑줄과 대시 그리고 대문자를 활용하면 이름에 많은 정보를 담을 수 있다.
각 언어별로 관행적으로 사용하는 이름 포맷팅이 있으니 개발전에 습득후 사용하는 것도 좋다.
7. 오해 하기 쉬운 단어는 최대한 피하자
사람 사이에도 잘못된 단어 사용으로 오해하고 싸우기도 한다. 사람들이 사용하는 언어가 오해의 소지를 담고 있는 것은 어쩔 수 없다 보다.
프로그램에서도 오해하지 않도록 단어의 선택에 신경을 써야 한다.
-상한과 하한 : min_, max_
-경계를 포함한 경계를 표현할때 : first, last
-경계의 시작만 포함하고 마지막은 배제할 때 : begin, end
-boolean의 이름은 is나 has와 같은 단어를 활용해서 정하기
-get으로 시작하거나 size()같은 함수는 무거운 로직은 피하기 => 사용자가 가벼운 연산으로 생각할 수 있음.
[읽기 좋은 코드가 좋은 코드다 - 더스틴 보즈웰, 트레버 파우커 / 임백준]에서 ~
'잡학다식 > IT 컬럼' 카테고리의 다른 글
블록 체인이란? (0) | 2017.09.18 |
---|---|
[IT 첫걸음] JAVA8편 람다(lambda) (0) | 2017.04.11 |
[IT 책갈피] Spring Framework 3.x -> 4.x Web Application migration (0) | 2017.03.28 |
[IT 첫걸음] 보기 좋은 코드가 고치기도 쉽다. (0) | 2017.03.21 |
[클라우드] 클라우드 서비스에 Iaas. Paas, Saas라 불리우는 자들은 도대체 누구인가? (0) | 2017.02.14 |