개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.20
오늘 읽은 범위
2장) 의미있는 이름
책에서 기억하고 싶은 내용을 써보세요.
변수의 존재이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. (p.22)
한 개념에 한 단어를 사용하라 (p. 34)
맥락을 개선하면 함수를 쪼개기가 쉬워지므로 알고리즘도 좀 더 명확해진다. (p.36)
코드를 개선하려는 노력을 중단해서는 안된다. (p. 38)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
개발자 대부분이 겪는 가장 큰 고민 중에 하나가 변수 이름 짓기가 아닌가 싶다. 변수이름 짓기에 대해서 어렵지만 큰 생각을 안하고 사용하였는데, 이번 챕터를 읽고 생각이 달라졌다.
책을 읽고 내가 짠 코드를 보면 비슷한 단어를 많이 사용하고 있었고, 의미가 모호한 이름을 사용하고 있어서 바로 리팩토링을 적용 할 수 있었던 챕터였던 것 같다.
이렇게 간단히 코드를 개선하려는 동기부여를 해주는 클린코드이다.
책을 읽고 변수 이름짓기에 통용되는 가이드를 찾아 볼 수 있었다.
바로 구글의 java naming guide 인데, 이를 통해 기본적인 규칙을 적용해 나아갈 수 있다.
그래도 아마 제일 어려운건 변수이름 짓기가 아닐까 싶다. 🤣
영어 공부도 필요하다는 것을 깨닫게 된다..
이번 챕터을 읽고 개선한 코드를 잠시 적어본다.
const amount = (price * (100 - 22)) / 100;
다음과 같은 금액을 계산하는데 22가 무엇을 뜻하는 걸까요?
위에 코드는 제세공과금을 제외한 금액을 구하는 함수입니다. (제세공과금 : 5만월을 초과하는 경품에 당첨되었을 때 내야 하는 기타 소득세이며 물품 가격에 22%를 내야 한다. 😓)
이렇게 리팩토링을 하면 의미를 알 수 있고 검색하기도 쉬운 이름이 될 수 있다. const CUSTOMER_TAX_PERCENT = 22;
const amount = (price * (100 - CUSTOMER_TAX_PERCENT)) / 100;
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
인터페이스 이름은 접두어를 붙이지 않고 구현 클래스 이름을 택한다고 한다.
public interface IPublishFactory
→ publishFactory
public class publishFactoryImpl
헝가리식 표기법
변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙. 하지만 공식 가이드 라인에서는 사용하지 말 것을 권고.