본문 바로가기
독서/클린 코드

TIL 3장. 의미 있는 이름

by 동배_ 2022. 2. 20.

TIL (Today I Learned)

2022.02.20

 

오늘 읽은 범위

2장. 의미 있는 이름

 

책에서 기억하고 싶은 내용을 써보세요.(요약)

  • 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨 씬 더 많다.(p.22)
  • 발음하기 쉽고, 검색하기 쉽고, 이해하기 쉬운 이름을 사용해라.
  • 인코딩을 하지말되 인터페이스, 구현클래스를 이름을 지을때는 구현클래스의 이름을 인코딩해라. 
    (e.g. 인터페이스 클래스 이름 : ShapeFactory , 구현 클래스 : ShapeFactoryImpl p.31)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

 

2장의 내용도 하나로 요약된다. 결국 코드는 만들면 누군가가 유지보수를 하기 위해서 다시 들여볼일이 무조건 있다고 생각되니 그 사람들을 위해서 변수명, 함수명, 클래스명 등의 이름들을 매우 명확하고 이해하기 쉽게 만들어야 한다는 뜻이다. 

 

실제로 회사에서 이런 네이밍 방법을 중요시하다는 것을 배우게 되었고 사용하고 있었다. 그리고 내가 토이프로젝트로 했던 코드들을 살펴보게됐는데 이 변수명이 함수명이 어떤 의미를 뜻하고 있는지를 이해하지 못하는 경우가 있었다. 내 코드임에도 불구하고 모르는 것이다. 

 

2장을 읽고 다시 한번 명심한 것이 내가 이름 짓는데 시간을 쓰는 것을 아까워 하지말자고 생각했다. 지금은 쓸데 없이 작명에 시간 들인다고 생각할 수 있으나 결국 유지보수를 고려하고 장기적으로 본다면 훨씬 효율적인 일이다.

 

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

 

p31 페이지에서 구현 클래스 이름을 인코딩한다면 impl를 넣는 것을 보았는데

List의 구현체인 ArrayList, LinkedList 들은 impl를 넣지 않는다 왜 그런건지 알아보아야겠다.

댓글