DAY 9 오늘 읽은 범위: 5장. 구부러지거나 부러지거나

📚 책에서 기억하고 싶은 내용?


모듈간의 결합도를 최소화하라.

  • 한 모듈이 변경되거나 교체된다하더라도 다른 모듈들은 변경없이 수행될 수 있을 것이다. 
  • 디미터의 법칙
    한 객체가 제공하는 메서드에 접근하기 위해 또 다른 객체들을 통하는 것을 허용하지 않는다.
  • 논리적 설계와 물리적 설계가 함께 고려되어야 한다.

통합하지 말고 설정하라.

  • 아무리 뛰어난 천재라도 세부사항에 집착하면 그 재능이 발휘되지 않는다.
  • 메타데이터를 이용하여 반환 매개 변수, 사용자 선호사항, 설치 디렉터리와 같은 애플리케이션 설정 옵션을 기술하라.
    코드에는 추상화, 메타데이터에는 세부 내용
    메타데이터는 범용 프로그래밍 언어보다 문제 도메인에 가까운 방식으로 표현될 수 있다.
    메타데이터 → 일반 텍스트로 표현

작업흐름 분석을 통해 동시성을 개선하라.

  • UML 활동 다이어그램
  • 배고픈 소비자 모델의 컴포넌트를 서비스로 잘 정의되고 일관성 있는 인터페이스 뒤에서 일하는 독립적이고 동시적인 객체를 만들어야 한다.
  • 동시성을 고려한 설계
    자바의 멀티 쓰레드 기능으로 동시성을 고려하게 된다. thread safe
    더 깔끔한 인터페이스를 설계하는 방향을 고려한게 된다.
    예) C의 strtok보다 Java의 StringTokienizer를 이용한 설계가 유지보수하기에도 더 깔끔하다.

모델에서 뷰를 분리하라.

  • 이벤트를 이용하면 객체들 사이의 결합을 최소화할 수 있다.
  • 모델-뷰-컨트롤러 MVC 모델
  • 자바의 트리 위젯 → TreeCellRender, TreeCellEditor

칠판을 이용해 작업흐름을 조율하라.

  • 일반적인 분산 애플리케이션을 작성할 때는 시스템 내부의 모든 분산 트랜잭션과 상호작용마다 서로 구별되는 API 호출을 만드느라 상당한 시간을 소모하기 마련이다.

 

🤩 오늘 읽은 소감?


책에서 이해를 돕기 위해 든 수식어들이 이해가 되지 않는 부분들이 있었다.

나의 경우 이번 챕터가 제일 집중이 되지 않고 무엇인가 헛도는 느낌을 받았다. 다시 제대로 읽고 학습해야할 필요를 느꼈다.

 

 궁금한 점이나 잘 이해되지 않는 내용


  • 책에서 의미하는 메타데이터와 thread safe한 코드 작성에 대해 알아보는 것이 좋겠다.

 

 

 

 

실용주의 프로그래머 - 교보문고

The Pragmatic Programmer숙련공에서 마스터로프로그래밍은 대체로 머리로 하는 일이지만 한편으로는 몸에 새겨져야 하고 때로는 그 이상의 통찰을 발휘해야 하는 상황에 맞닥뜨리게 되는 복합적인

www.kyobobook.co.kr

 

댓글