diff --git "a/4\354\236\245/\354\235\264\354\203\201\354\241\260.md" "b/4\354\236\245/\354\235\264\354\203\201\354\241\260.md" new file mode 100644 index 0000000..6986504 --- /dev/null +++ "b/4\354\236\245/\354\235\264\354\203\201\354\241\260.md" @@ -0,0 +1,41 @@ +# 실용주의 편집증 + +완벽한 프로그램을 만들지 못한다는 사실을 강점으로 바꾸는 방법 + +## 계약에 의한 설계 + +선행 조건 +후행 조건 +클래스 불변식 + +뭔 소린지 하나도 모르겠음; + +## 잡은 후 그냥 놓아주는 것은 물고기뿐 + +로그 찍고 다시 던지는 것은 로직과 에러 처리의 결합도를 높인다. +잡고 그냥 다시 던지지 마라. 잡고 처리하는 것을 별도의 로직으로 분리하자. + +## 망치지 말고 멈춰라 + +죽은 프로그램이 끼치는 피해는 이상한 상태의 프로그램이 끼치는 피해보다 훨씬 적다. +리액트에서 에러를 캐치하지 않는다면 앱이 터져버리는 이유. + +## 단정적 프로그래밍 + +절대란 없다. +절대로 그럴거라고 생각한다면 단정문을 사용해라. + +## 리소스 사용의 균형 + +자신이 시작한 것은 자신이 끝내라. +각 모듈이 갖는 책임의 범위를 확실히 하라. +useEffect의 cleanup을 잘 쓰는 것. + +## 헤드라이트를 앞서가지 말라 + +지금은 좋은 추상화라고 생각할 수 있어도 시간이 지나면 적절하지 않은 추상화라고 느껴질 때가 있다. +따라서 추상화된 코드를 작성할 때는 언제든 교체될 수 있는 모듈로 설계하자. + +--- + +이번 장은 이해 안가는게 너무 많았음...