개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.20
오늘 읽은 범위
2장 의미 있는 이름
책에서 기억하고 싶은 내용을 써보세요.
불용어를 추가한 이름 역시 아무런 정보도 제공하지 못한다.
(p26)
Info나 Data는 a, an, the와 마찬가지로 의미가 불분명한 불용어다.
table이라는 단어도 마찬가지다. NameString이 Name보다 뭐가 나은가?
이름 길이는 범위 크기에 비례해야 한다. (p28)
접두어는 옛날에 작성한 구닥다리 코드라는 징표가 되버린다. (p30)
Manager, Processor, Data, Info 등과 같은 단어는 피하고, 동사는 사용하지 않는다. (p32)
생성자를 중복정의할 때는 정적 팩토리 메서드를 사용한다. 메서드는 인수를 설명하는 이름을 사용한다. (p32)
Complex fulcrumPoint = Complext.FromRealNumber(23.0);
위 코드가 아래 코드보다 좋다.
Complex fulcrumPoint = new Complex(23.0);
생성자 사용을 제한하려면 해당 생성자를 private로 선언한다.
동일 코드 기반에 controller, manager, driver를 섞어 쓰면 혼란스럽다. (p33)
모든 클래스 이름을 GSD로 시작하겠다는 생각은 전혀 바람직하지 못하다. IDE에서 G를 입력하고 자동 완성 키를 누르면 IDE는 모든 클래스를 열거한다. 현명하지 못하다. (p37)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
오늘도 뼈 맞는 내용이었다. 특히 발음하기 쉬운 이름을 사용하라는 부분에서 지금도 명확히 떠오르지 않는 그것이 생각났다. (내가 지은 이름은 아니었다.) 또, 그 숱하게 써댔던 Manager와 Info들이 생각났다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
새로운 페이지를 만들때마다 파일이름과 클래스명에 페이지명을 디폴트로 넣었다. 그럴땐 폴더로 구분해서 불필요한 맥락을 없애는 것이 맞는걸까?
인터페이스는 만들때부터 IDE에서 I를 붙인 이름을 추천해주는데 왜 여기서는 붙이지 않는 편이 좋다는 걸까?
해법 영역과 문제영역이 무슨 뜻일까?