Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 2장 의미있는 이름
#clean_code
2년 전
576


TIL (Today I Learned)

2022.02.20

오늘 읽은 범위

2장. 의미있는 이름

책에서 기억하고 싶은 내용을 써보세요.

  • 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다.(p 22)

  • 프로그래머는 코드에 그릇된 단서를 남겨서는 안 된다.(p. 24)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 게임 시작할 때 캐릭터 이름 짓는데 시간 많이 들이는 것처럼, 코딩할 때에 변수에도 그리해야 함. 고민을 많이 해야 하는데.. 나는 고민을 많이 하는 편인가.. 생각해보니.. 안 그런 것 같아서 조금 더 습관화 들여야 겠음.

  • 내가 의미있게 명명을 한다고 해서, 남이 잘 알아볼까..?? 나만 의미있는 것이 아니라, 다른 사람들에게도 의미있는 명명을 해야 하니, 조금 더 일반적이고 상식적이면서도.. 이 책에 나와있는 몇가지 법칙을 적용해야겠다는 생각이 들었음.

  • 이를테면, 의도를 분명히 밝혀라(아무 의미없는 변수 쓰지 말고), 그릇된 정보를 피하라(l, 1처럼 혼동되는 것이나, 다른 예약어와 비슷한 것들, 유사한 이름들..), 의미있게 구분하라(의미 없는 불용어 같은 것 쓰지 말고, 쓸데 없는 것 명명에 추가하지 말고), 발음하기 쉬운 이름을 사용하라, 검새하기 쉬운 이름을 사용하라(숫자 같은 것 넣지 말고, 상수로 만들어서 검색할 수 있도록 하고), 인코딩을 피하라(예전 c, c++의 헝가리안 표기법, 요즘 IDE나 언어는 똑똑해서.. 타입을 어느정도 다 알고 있음).. 이런 것들은 약간 상식 범위에 속한다고 보는데...

  • 인터페이스와 구현 클래스 명명 규칙(굳이 I나 C 안 넣어도 되고.. ShapeFactory, ShapeFactoryImpl 등으로), 클래스, 오브젝트 이름은 명사(구), 메소드는 동사(구), 한 개념에 한 단어 사용(예를들어, retrieve, fetch, get을 혼용하지 말고), 말장난을 하지 말라(같은 이름은 같은 방식으로 작동을 하도록...예를 들어 add가 두 값을 더 하는 기능을 하면, insert 등으로 리스트에 아이템 추가하는 방식으로), 해법영역 이름 사용(디자인 패턴이나 알고리즘, 수학 용어 등의 이름을 사용), 전문분야의 이름 가지고 오기.. 의미있는 맥락 추가(firstName, lastName, state, city 이런 것들이 있으면 addrFirstName, addrLastName ... 등으로 묶어서..명명하면 context를 조금 더 명확히 알 수 있다), 그치만 불필요한 맥락은 만들지 말구...등의 일종의 법칙과 같은 것들을 알고 명명하는 것도 괜찮다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.