#4_Clean Code(클린 코드)를 읽고(11,12,13,14,15장 정리) :: 개발/일상_Mr.lee

#4_Clean Code(클린 코드)를 읽고(11,12,13,14,15장 정리)

Posted by Mr.mandu.
2019. 4. 25. 14:05 개발/서적

 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을 예시로하여 프로그램 설명이 나와있었습니다.