Community

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

← Go back
[TIL] Assignment-03 (22.02.20[일])
#clean_code
2년 전
1,504
2


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]


2 comments