본문 바로가기

Book review/clean code

17장. 냄새와 휴리스틱(clean code) -1

부적절한 상황들 

 

주석

  • 부적절한 정보 - 일반적으로 작성자, 최종 수정일 , software problem report 번호 등과 같은 메타 정보만 주석으로 넣는다.
  • 쓸모 없는 주석 - 쓸모 없어질 주석은 아예 달지 않는 편이 좋다.
  • 중복된 주석 - 코드로 충분하면 삭제해라
  • 성의없는 주석 - 간결하고 명료하게 작성해라.
  • 주석 처리된 코드 - 지워라!

환경

  • 여러 단계로 빌드한다. - 빌드는 한단계로 끝내라.
  • 여러 단계로 테스트한다. - 모든 단위 테스트는 하나의 명령으로 돌려라. 

함수

  • 너무 많은 인수 - 인수는 작을수록 좋다.
  • 출력 인수 - 함수에서 출력 인수는 피하고, 함수가 속한 객체 상태를 변경하는 방식을 사용해라.
  • 플래그 인수 - 플래그 인수는 피해라.

일반

  • 한 소스 파일에 여러 언어를 사용한다. -> 소스 파일 하나에는 언어 하나를 사용해라.
  • 당연한 동작을 구현하지 않는다. -> 다양한 동작을 구현하지 않으면 함수 기능을 직관적으로 예상하기 어렵다.
  • 경계를 올바로 처리하지 않는다. -> 스스로의 직관에 의존하지 마라. 모든 경계 조건을 테스트하라. 
  • 안전 절차 무시 
  • 중복 -> 중복된 코드를 하위 루틴이나 다른 클래스로 분리하라.  
  • 추상화 수준이 올바르지 못하다. -> 저차우너 개념은 파생클래스로, 고차원 개념은 기초 클래스에 넣는다. ex) 상수, 변수, 유틸리티 함수는 기초 클래스 X
  • 기초 클래스가 파생 클래스에 의존한다. -> 일반적으로 기초 클래스는 파생 클래스를 몰라야한다. 
  • 과도한 정보 - > 클래스나 모듈 인터페이스에 노출한 함수를 제한해야한다. 인터페이스를 깐깐하게 만들어라.

review

내용이 많아서 이하 생략한다. 일반 part 에서 많은 내용이 있는데 꾸준히 보고 체화해야겠다. 🏃

 

출처) clean code / 인사이트 

'Book review > clean code' 카테고리의 다른 글

10장. 클래스(clean code)  (0) 2021.09.02
8장. 경계(clean code)  (0) 2021.09.02
7장. 오류처리(clean code)  (0) 2021.08.30
6장. 객체와 자료구조(clean code)  (0) 2021.08.25
5장. 형식 맞추기(clean code)  (0) 2021.08.09