본문 바로가기
책/실용주의 프로그래머

[TIL] 2장 실용주의 접근법

by 정선한 2022. 5. 16.
728x90
반응형

2장 실용주의 접근법

오늘의 TIL 3줄 요약

  • 코드는 바꾸기 쉽게 잘 설계해야 한다.
  • 스스로에게 질문하고 내가 옳은 방향으로 가고있는지 고민해야 한다.
  • 섣불리 결정하거나 대답하기 보다 고민하고 답을 도출하는 과정을 거쳐야만 한다.

1. 책에서 기억하고 싶은 내용

좋은 설계는 나쁜 설계보다 바꾸기 쉽다.
잘 설계된 코드는 바뀜으로써 사용하는 사람에게 맞춰져야 한다. -39p

스스로 자꾸 물어보라.
'내가 방금 한 일이 전체 시스템을 바꾸기 쉽게 만들었을까, 어렵게 만들었을까?'
파일을 저장할 때마다 물어보라. 테스트를 쓸 때도, 버그를 수정할 때도 물어보라. -40p

DRY (Don't Repeat Yourself.)
DRY는 지식의 중복, 의도의 중복에 대한 것이다. 똑같은 개념을 다른 곳 두 군데에서 표현하면 안 된다는 것이다. -43,44p

자신의 힘으로 제어할 수 없는 속성에 의존하지 말라.
기술을 현명하게 선택하라. -60p

코드를 작성할 때마다 여러분은 애플리케이션의 직교성을 떨어뜨릴 위험을 감수하는 셈이다. -61,62p
직교성으르 유지할 수 있는 방법
1) 코드의 결합도를 줄여라.
 - 불필요한 것은 다른 모듈에 보여주지 않으며, 다른 모듈의 구현에 의존하지 않는 코드를 작성하라.
 - 데메테르 법칙을 따르려고 노력하라.
2) 전역 데이터를 피하라.
 - 싱글턴 패턴(단일체 패턴 : singleton pattern)
3) 유사한 함수를 피하라.
 - 전략 패턴(strategy pattern)

최종 결정이란 없다.
아키텍처가 변덕스러운 환경에서 어떻게 계획을 세울 수 있겠는가? 못한다.
여러분이 할 수 있는 것은 바꾸기 쉽게 만드는 것이다. -60p

예광탄 코드 vs. 프로토 타이핑
프로토타입은 나중에 버리는 코드를 만든다. 예광탄 코드는 기능은 별로 없지만 완결된 코드이며, 최종 시스템 골격 중 일부가 된다. 프로토타입은 예광탄을 발사하기 전에 먼저 수행하는 정찰이나 정보 수집과 같은 것이다. -79p

누군가 추정해 달라고 하면 뭐라고 대답해야 할까?
"나중에 연락드릴게요."라 말해야 한다. -102p

2. 궁금한 내용과 잘 이해되지 않은 내용에 대한 정리

@장식자 패턴 (Decorator Pattern)
1) 객체의 결합을 통하여 기능을 동적으로 유연하게 확장할 수 있는 패턴.
2) 추가 기능을 Decorator Class로 정의한 후, 필요한 Decorator Object를 조합하여 추가 기능을 설계하는 방식.

@GoF의 디자인 패턴
1) 생성 패턴 (Creational Pattern)
2) 구조 패턴 (Structural Pattern)
3) 행동 패턴 (Behavioral Pattern)

 

728x90
반응형

' > 실용주의 프로그래머' 카테고리의 다른 글

[TIL] 6장 동시성  (0) 2022.05.26
[TIL] 5장 구부러지거나 부러지거나  (0) 2022.05.22
[TIL] 4장 실용주의 편집증  (0) 2022.05.20
[TIL] 3장 기본도구  (0) 2022.05.19
[TIL] 서문, 1장 실용주의 철학  (0) 2022.05.14