개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
결합도를 낮추어 유연한 코드를 작성하자.
수정 할 수 있는 외부 리소스는 모두 전역 데이터이다.
어디서나 접근할 수 있는 데이터 역시 교묘하게 결합을 만들어 낸다.
TIL (Today I Learned) 날짜
2022. 05.21
오늘 읽은 범위
5장. 구부러지거나 부러지거나
책에서 기억하고 싶은 내용을 써보세요.
page 181. 삶은 멈추지 않는다. 우리가 작성한 코드도 마찬가지다. 현대의 미친듯이 빠른 변화 속도를 따라가려면 가능한 한 느슨하고 유연한 코드를 작성하여야 한다.
page 186. 이 원칙은 다른 객체의 내부 상태에 따라 판단을 내리고 그 객체를 갱신해서는 안된다는 것이다.
page 187. 하지만 TDA ( Talk Don't Ask ) 는 자연법칙이 아니다. 문제를 알아볼 수 있게 도와줄 뿐이다.
page 187. '무언가에 접근한다.'는건 중간 변수를 사용해야하는 경우까지 포함한다.
page 189. 점 하나 규칙에는 큰 예외가 하나 있다. 엮는 것들이 절대로 바뀌지 않을 것 같다면 이 규칙을 지키지 않아도 된다.
page 190. 어디서나 접근할 수 있는 데이터는 교묘하게 애플리케이션 컴포넌트 간의 결합을 만들어 낸다.
page 190. 코드를 처음 작성하는 시점의 제 1관심사가 코드 재활용이면 안될 것이다. 하지만 우리의 경험에 비추어 볼 때 코드를 재사용할 수 있도록 해야 한다는 생각이 코딩 습관의 일부가 되어야 한다.
page 191. 외부로 노출된 인스턴스 변수가 잔뜩 있는 싱글턴은 여전히 전역 데이터이다.
page191. 수정 가능한 외부 리소스는 모두 전역 데이터이다.
page 210. 때에 따라서는 요구사항에서 시작하는게 변환을 찾는 가장 쉬운 방법이다.
page 226. 상속도 일종의 결합이다.
page 228. 따라서 아무리 복잡한 클래스 계층돠 마음에 들더라도 어차피 여러분의 도메인을 정확하게 모델링 할 수는 없다.
page 232. 서비스에 위임하라. IS-A 가 HAS-A 보다 낫다.
page 236. 애플리케이션이 출시된 이후 바뀔 수 있는 값에 코드가 의존하고 있다면 그 값을 애플리케이션 외부에서 관리하라.
page 239. 게으름 때문에 결정을 내리지 않고 설정을 추가하여 사용자에게 미루지 말라.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
코드를 작성하는 것은 매 순간 선택이 필요한 일이다. 유연한 코드를 작성하는 것과 코드의 효율성 사이에서 늘 고민해야 하는 일. 챕터가 깊어갈수록 내용이 어렵게 다가온다. 그 동안 내가 지나쳤던 수 많은 코드들이 스쳐지나가면서 과연 그 코드들은 최선이었을까, 어떻게 개선할 수 있었을까 하는 물음표가 찍힌다. 아직 그 물음에 대한 해답을 찾진 못했지만, 책을 다 읽을 쯤에는 어렴풋한 답변이나마 가능하지 않을까하는 기대감이 든다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
오늘 읽은 다른사람의 TIL