개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
2022.02.20
오늘 읽은 범위
2장.의미있는 이름
책에서 기억하고 싶은 내용을 써보세요.
유사한 개념은 유사한 표기법을 사용한다. 이것도 정보다. 일관성이 떨어지는 표기법은 그릇된 정보다.(p.25)
이름이 달라야 한다면 의미도 달라져야한다. 연속적인 숫자를 덧붙인 이름(a1,a2...aN)은 의도적인 이름과 정반대다. 이런이름은 그릇된 정보를 제공하는 이름도 아니며, 아무런 정보를 제공하지 못하는 이름일 뿐이다.저자 의도가 전혀 드러나지않는다(p.26)
인코딩을 피하라 - 문제해결에 집중하는 개발자에게 인코딩은 불필요한 정신적 부담이다. 인코딩한 이름은 거의가 발음하기 어려우며 오타가 생기기도 쉽다(p.29)
인터페이스 클래스와 구현클래스 - 이름중 하나를 인코딩 해야한다면 구현클래스 이름을 택하겠다. ShapeFactoryImp나 심지어 CShapeFactory가 IShapeFactory보다 좋다(p.31)
메서드 이름은 독자적이고 일관적이어야한다. 그래야 주석을 뒤져보지 않고도 프로그래머가 올바른 메서드를 선택한다.(생략) 일관성 있는 어휘는 코드를 사용할 프로그래머가 반갑게 여길 선물이다(p.33)
여느 코드개선 노력과 마찬가지로 이름역시 나름대로 바꿨다가는 누군가 질책할지도 모른다 . 그렇다고 코드를 개선하려는 노력을 중단해서는 안된다.(p.38)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
클래스는 명사or명사구 메소드는 동사or 동사구! 간단하면서 당연한 것인데 이때까지 생각하지않고 지었던것 같다. 앞으로는 이걸 주의해봐야겠다
실제로 본인은 프로젝트를 하면서 네이밍에 관한 지적을 받아온적이 꽤나 있어서, 2장을 읽을때 찔리는 부분이많았다. 나역시 '내가 한부분이니까 나중에 적절한 네이밍으로 수정해야지'라며 대충 알아먹을거라 생각한 이름을 지어주고는 , 나중에 스스로 그 메소드(클래스였을지도)가 어떤일을 하는지 전혀 모른적이있었다. 다른사람들에게 설명하기는 커녕 스스로도 몰랐었어서 당황했었다. 이 책에서 정확하게 짚어준것같다. 스스로의 기억력을 믿지말자! 나중에 수정할때 골치만더 아파지니까....^^
내용이 생각보다 이해하기 쉬웠다. 특히 소제목들을 잘 지어서 어딘가에 메모해두고 두고두고 다시 보면서 내용을 계속 기억해 습관으로 세우고싶다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
JobQueue - 상태에 상관없이 모든 프로세스를 저장하고, 관리하기 위한 자료구조이며, 따라서, 반드시 메모리가 할당되어 있는 프로세스만 있지 않고, 말그대로 모든 프로세스가 담겨있다. [출처:https://velog.io/@0715yk/]
VISITOR패턴: Visitor pattern, 방문자 패턴, 실제 로직을 가지고 있는 객체(Visitor)가 로직을 적용할 객체(Element)를 방문하면서 실행하는 패턴이다. 즉, 로직과 구조를 분리하는 패턴이라고 볼 수 있다. 로직과 구조가 분리되면 구조를 수정하지 않고도 새로운 동작을 기존 객체 구조에 추가할 수 있다. [출처:https://thecodinglog.github.io/design/2019/10/29/visitor-pattern.html]