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를 조합하여 추가 기능을 설계하는 방식.
![](https://blog.kakaocdn.net/dn/be66v2/btrCmdHX8CT/wDF49Cspnm0o3JVWIN4Bi0/img.png)
@GoF의 디자인 패턴
1) 생성 패턴 (Creational Pattern)
2) 구조 패턴 (Structural Pattern)
3) 행동 패턴 (Behavioral Pattern)
![](https://blog.kakaocdn.net/dn/bgfoVr/btrCmeAaCZy/pyAz4vVc4JPWj5j9kJshT0/img.png)
'책 > 실용주의 프로그래머' 카테고리의 다른 글
[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 |