개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
오늘 읽은 범위
2장. 의미있는 이름
책에서 기억하고 싶은 내용을 써보세요.
의도를 분명히 하라
- 변수, 함수, 클래스의 이름을 보고 존재 이유, 사용방법, 기능 등에 대해 알아보기 어려워 주석이 필요하다면 좋지 못한 코드다.
그릇된 정보를 피하라
- List type 이 아닌 객체인데 변수명에 List가 들어간다거나 let l ; 처럼 l 이 알파벳 l 인지 i 인지 1인지 구분이 안되게 작성하면 안된다.
의미있게 구분하라
- getAccount() , getAccounts() , getAccountsInfo() 처럼 3개의 함수명이 있다고 하자. 의미가 구분이 되는가? 함수명이나 클래스 명 변수명은 각자 해당 기능이 무엇인지 의미가 분명하게 구분되어야한다.
발음하기 쉬운 이름을 사용하라
- 발음하기 좋은 변수명이 커뮤니케이션을 하는데도 편리하다.
검색하기 쉬운 이름을 사용하라
- 개발을 하다보면 해당 변수나 클래스, 함수가 어떤 페이지에 사용되었는지 검색하는 일이 아주아주 흔하다. 따라서 이름을 검색하기 쉽게 짓는것도 중요하다.
클래스 이름
- 클래스, 객체 이름은 명사나 명사구가 적당하다
메서드 이름
- 메서드 이름은 동사나 동사구가 적당하다.
한 개념에 한 단어
- 똑같은 기능의 메서드가 있는데 클래스마다 retrieve, get, fetch 처럼 서로 다른 이름의 메서드를 사용하면 헷갈린다. 한 개념에는 하나의 이름만 사용하자.
말장난을 하지 마라
- 다른 클래스에 add 라는 메서드가 기존에 존재하고 있는데, 새로운 기능 중 리스트에 값을 하나 추가하는 메서드를 만들었다고 할때 add 라는 명으로 짓지 말아라.
의미 있는 맥락을 추가하라
- firstName, lastName, street, houseNumber, city, state.. 라는 변수 명을 보면 주소 클래스 라는것을 알 수 있다. 하지만 state 라는 변수명만을 본다면 의미가 분명한가? 아니다. 변수명 앞에 addr 를 추가해서 addrState로 변수명을 짓는다면 의미가 더 분명하다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
사람의 이름이건 제품의 이름이건 '이름' 이라는건 중요하다.
개발에서도 이름은 중요하다.
개발은 보통 혼자하는 것이 아니기 때문에 남들이 봤을 때 클래스, 함수명만 보고도 어떤 기능을 하는 클래스구나 함수구나를 알 수 있는 이름을 짓는것이 중요하다. 괜히 개발자 업무의 60%는 변수명 짓기라는 말이 나온게 아니었구나...
변수명이 길어지는것에 개의치 말자. 나는 그게 참 뭐랄까 찝찝했었는데 책을 읽어보니 변수명이 조금 길어지더라도 명료하게 작성한다면 좋은 변수명이다.
- 클래스나 객체 이름에는 명사, 명사구 / 메서드 이름에는 동사, 동사구 . . 메서드나 클래스 이름을 지으면서 구분지어서 생각해본적이 없었는데 각자 역할을 생각해서 이름을 짓자
- 그리고 코드에 줄임말 쓰지 말자...