클린코드 1장(깨끗한 코드), 2장 (의미있는 이름)
JAVA/클린코드

클린코드 1장(깨끗한 코드), 2장 (의미있는 이름)

반응형

 

깨끗한 코드


태도

  • 나쁜 코드는 생산성을 떨어트리고 갈수록 생산성 0로 수렴하게 만든다.
  • 일정에 쫓겨서 만든 나쁜 코드를 나중에 고치려는 습관은 버려라. 르블랑의 법칙 대로 나중은 결코 오지 않는다.
  • 핑계될 것 없다 모두 개발자 탓이다.
  • 시간이 없어서 만든 잘못된 코드는 결국 일정을 빠르게 앞당기는 것이 아니라 결국 그 잘못된 코드로 일정을 지연시킨다.

깨끗한 코드란?

  • 논리가 간단해야 한다.
  • 의존성이 줄어 유지보수가 쉬워야 한다.
  • 성능이 최적화 되어 있어야 한다.
  • 오류는 확힐 하게 처리해야 한다.
  • 많은 일을 하지말고 한가지 잘하는 일을 잘하는 코드를 만들어라.
  • 테스트 케이스가 없는 코드는 깨끗한 코드가 아니다.
  • 중복이 없다.
  • 코드를 최대한 줄인다.
  • 지속적으로 나빠지는 코드를 개선한다.

결론

  • 백날 좋은 코드에 대한 이론만 공부해서는 도움이 되지 않는다. 남의 코드를 지켜보고 개선하면서 꾸준히 연습하자.

 

 

의미 있는 이름


  • 의미있는 이름을 지어라.
  • 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다.
  • 약어를 사용하지 말고 명확한 이름을 기재하라. 비슷한 이름을 사용하지마라. ex) studentAccont, studentAccountNum 두 개 의미가 어떤건지 모호해진다.
  • Info, Data는 a, an과 같은 불용어로써 불분명하니 사용하지 마라.
  • 불용어를 계속 사용하면 중복을 만들게 된다. ex) AccountInfo는 Account와 헷갈리고 BankAccoutData는 BankAccount와 헷갈리게 된다.
  • 단축시키려 하지말고 읽기 좋게 명확하게 코드를 작성하라 ex) genymdhms → generationTimestamp;
  • 상수는 변수로 선언해서 의미를 부여하라.
  • 인터페이스에 I 접두어를 붙이지 말아라. ex ) IShapeFactory → ShapeFactory, 구현 클래스 ShapeFactoryImpl
  • 클래스 이름은 명사나 명사구가 좋고 Data, Info 같은 명사구는 피하고 동사는 사용하지 마라
  • 메소드 이름은 동사나 동사구를 사용하라
  • 의도를 분명하게 솔직한 이름을 사용하라
  • 하나의 개념에 단어는 하나의 이름을 사용하라ex) fetch, retrieve, get 필요 시 마다 제각각 다른 단어를 선택 하지말고 하나로 통일해서 사용하라.
  • 행동이 다르다면 굳이 동일한 이름을 사용하지 말고 다른 이름을 사용하라
  • 클래스이름으로 너무 범용적인 이름을 사용하게 된다면 동일한 기능을 하는 다른 클래스가 생길 때 이름을 정하기 어려워진다. ex) CustomerAddress를 고객 주소관리 클래스로 썼다면 고객 주소가 하나 더 늘거나 관리 데이터가 변경된다면?

 

결론

개발하다보면 진짜 어려운게 이름 규칙이다. 근데 하다보면 위에 써있는 대로 동일한 이름의 클래스들이 많이 만들어진다. 중복되는 불용어들을 줄이고 명확한 의미가 있는 클래스를 만들 수 있도록 노력해보자. 말 그대로 이름을 짓는 시간보다 잘못된 이름을 만들어 드는 시간이 더 크다는 걸 잊지말자.

반응형