클린 코드 책에서 기억할만하거나 인상 깊었던 내용을 발췌한 내용임
클린 코드에 대한 정의
비야네스트롭스트룹
논리가 간단해야 버그가 숨어들지 못한다.
깨끗한 코드는 한가지를 제대로 한다.
그래디 부치
깨끗한 코드는 결코 설계자의 의도를 숨기지 않는다.
오히려 명쾌한 추상화와 단순한 제어문으로 가득하다.
함수
작게 만들어라!
가로 150자 이하 세로 20줄도 길다!
들여쓰기가 2단을 넘어서는 안된다
한가지만 해라!
함수당 추상화 수준은 하나로!
플래그 인수는 추하다
한수가 한꺼번에 여러가지를 한다는걸 그대놓고 공표하는 셈임
명령과 조회를 분리하라!
함수는 객체 상태 변경 아니면 객체 정보 반환 둘 중 하나를해야 혼란이 없다.
형식 맞추기
서로 밀접한 개념은 세로로 가까이 둬야 한다.
변수는 사용 위치에 최대한 가까이 선언한다.
객체와 자료구조
모든 것이 객체라는 생각은 미신이다
때로는 단순한 자료 구조와 절차적인 코드가 가장 적합하다
디미터 법칙
클래스의 메서드는 다음 객체의 메서드만 호출해야 한다
- 자기 클래스
- 메서드가 생성한 객체
- 메서드 인수로 넘어온 객체
- 클래스 인스턴스 변수에 저장된 객체
낯선 사람은 경계하고 친구랑만 놀라
오류 처리
미확인 예외를 사용하라
확인된 예외는 OCP를 위반한다
아주 중요한 라이브러리라면 확인된 예외도 유용하다
오류 정의 시 프로그래머의 가장 중요한 관심사는 오류를 잡아내는 방법임
외부 api사용시 예외별로 처리가 다르지 않다면 감싸기 기법이 최선임
특수사례 패턴, 널 오브젝트 패턴 같은 것도 유용하다
메서드에 null을 전달하지 말라
점진적인 개선
프로그래밍은 과학보다 공예에 가깝다 깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다
시간적 결합 나타내기
If/else switch/case 보다 다형성을 사용하라
유형보다 함수가 더 쉽게 변하는 경우는 드물다
'개발 > 리팩토링' 카테고리의 다른 글
클린 코드 - 2장 의미 있는 이름 요약 (0) | 2017.05.18 |
---|---|
네이밍 관련 글 정리 (0) | 2017.05.08 |
읽기 좋은 코드가 좋은 코드다 - 노트 (0) | 2017.03.18 |
자바 코드 리팩토링 시 주의해야할 점 몇 가지 (0) | 2016.11.03 |