#4_Clean Code(클린 코드)를 읽고(11,12,13,14,15장 정리)
11.시스템
○ 시스템 제작과 시스템 사용을 분리하라
- 추상팩토리패턴, 팩토리패턴 공부
- 의존성 주입 : 사용과 제작을 분리하는 강력한 메커니즘
- 제어 역전 기법 사용 : 한 객체가 맡은 보조 책임을 새로운 객체에게 전적으로 떠넘긴다.
새로운 객체는 넘겨받은 책임만 맡으므로 단일 책임 원칙, 새로운 객체는 넘겨받은 책임만
맡으므로 단일 책임 원칙(Single Responsibility Principle, SRP)을 지키게된다.
○ 횡단(cross-cutting)관심사
- AOP(Aspect-Oriented Programming) : 횡단 관심사에 대처해 모듈성을 확보하는 일반적인 방법론
- 관점(aspect) : 특정 관심사를 지원하려면 시스템에서 특정 지점들이 동작하는 방식을 일관성 있게 바꿔야 한다.
- 자바에서 사용하는 관점 혹은 관점과 유사한 메커니즘 프록시란?(공부)
- 자바 프록시 : 순수 자바 AOP 프레임워크, AspectJ 관점
12. 창발성
○ 창발적 설계로 깔금한 코드를 구현하자
○ 모든 테스트를 실행한다.
○ 중복을 없앤다
○ 프로그래머 의도를 표현한다.
○ 클래스와 메서드 수를 최소로 줄인다
○ 모든 테스트를 실행하라
○ 검증이 불가능한 시스템은 절대 출시하면 안 된다.
- "테스트 케이스를 만들고 계속돌려라”라는 간단하고 단순한 규칙을 따르면 시스템은 낮은 결합도와 높은
응집력이라는, 객체 지향 방법론이 지향하는 목표를 저절로 달성한다.
○ 중복을 줄여라
- template method 패턴은 고아원 중복을 제거할 목적으로 자주 사용하는 기법이다
13. 동시성
○ 동시성 방어 원칙
- 단일 책임 원칙(Single Responsibility Principle, SRP) : 동시성 관련 코드는 다른 코드와 분리해야 한다.
- 따름 정리: 자료 범위를 제한하라 :
공유 객체를 사용하는 코드 내 임계영역을 synchronized 키워드로 보호하라고 권장한다.
- 료를 캡슐화하라. 공유 자료를 최대한 줄여라.
- 자료 사본을 사용하라
- 스레드는 가능한 독립적으로 구현하라.
○ 동기화하는 부분을 작게만들어라
○ 프로세서 수보다 많은 스레드를 돌려보라
○ 다른 플랫폼에서 돌려보라
14. 점진적인 개선
15. JUnit 들여다보기
14장은 프로그램을 리펙토리 하는 과정을 상세히 설명하고 있었습니다.
15장은 JUnit을 예시로하여 프로그램 설명이 나와있었습니다.
'개발 > 서적' 카테고리의 다른 글
#3_Clean Code(클린 코드)를 읽고(7,8,9,10장 정리) (0) | 2019.04.22 |
---|---|
#2_Clean Code(클린 코드)를 읽고(4,5,6장 정리) (0) | 2019.04.20 |
#1_Clean Code(클린 코드)를 읽고(1,2,3장 정리) (0) | 2019.03.28 |