티스토리 뷰
반응형
[클린코드 - http://www.yes24.com/Product/Goods/11681152]
창발적 설계로 깔끔한 코드를 구현하자
- 켄트 벡이 제시한 단순한 설계 규칙
- 모든 테스트를 실행한다
- 중복을 없앤다
- 프로그래머 의도를 표현한다
- 클래스와 메서드 수를 최소로 줄인다
단순한 설계 규칙 1: 모든 테스트를 실행하라
- 테스트를 철저히 거쳐 모든 테스트 케이스를 항상 통과하는 시스템은 '테스트가 가능한 시스템'이다
- 테스트가 불가능한 시스템은 검증도 불가능하다
- "테스트 케이스를 만들고 계속 돌려라"라는 간단하고 단순한 규칙을 따르면 시스템은 낮은 결합도와 높은 응집력이라는
객체 지향 방법론이 지향하는 목표를 저절로 달성한다
=> 테스트 케이스를 작성하면 설계 품질이 높아진다
단순한 설계 규칙 2~4: 리팩터링
- 코드를 추가할 때마다 새로 추가하는 코드가 설계 품질을 낮추는지 점검하고
낮춘다면 깔끔히 정리한 후 테스트 케이스를 돌려 기존 기능을 깨뜨리지 않았다는 사실을 확인한다 - 이 단계에서는 소프트웨어 설계 품질을 높이는 기법이라면 무엇이든 적용해도 괜찮다
중복을 없애라
- 중복은 추가 작업, 추가 위험, 불필요한 복잡도를 뜻한다
- 깔끔한 시스템을 만들려면 단 몇줄이라도 중복을 제거하겠다는 의지가 필요하다
- '소규모 재사용'은 시스템 복잡도를 극적으로 줄여준다
- TEMPLATE METHOD 패턴은 고차원 중복을 제거할 목적으로 자주 사용하는 기법이다
표현하라
- 코드는 개발자의 의도를 분명히 표현해야 한다
- 개발자가 코드를 명백하게 짤수록 다른 사람이 그 코드를 이해하기 쉬워지고
그래야 결함이 줄어들고 유지보수 비용이 적게든다 - 표현 방법
- 좋은 이름을 선택한다
- 함수와 클래스 크기를 가능한 줄인다
- 표준 명칭을 사용한다
- 표준 패턴을 구현하는 클래스는 클래스 이름에 패턴 이름을 넣어준다
- 단위 테스트 케이스를 꼼꼼히 작성한다
- 노력이 제일 중요하다
클래스와 메서드 수를 최소로 줄여라
- 목표는 함수와 클래스 크기를 작게 유지하면서 동시에 시스템 크기도 작게 유지하는 데 있다
- 우선순위가 가자 낮음
- 클래스와 함수 수를 줄이는 작업도 중요하지만, 테스트 케이스를 만들고 중복을 제거하고 의도를 표현하는 작업이 더 중요하다
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- k8s
- cacheable
- Spring
- gasmask
- 도메인주도설계
- 자바스크립트
- ImagePullBackOff
- back merge
- docker for mac
- 스프링
- kotlin In Action
- IntelliJ
- 코틀린
- 자바
- Kubernetes
- java
- clean code
- JavaScript
- docker
- 클린코드
- 쿠버네티스
- gradle
- kotlin
- linuxkit
- springboot
- docker pull limit
- QuickTimePlayer
- ddd
- 도커
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함