부적절한 상황들
주석
- 부적절한 정보 - 일반적으로 작성자, 최종 수정일 , 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 |