개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
Easy To Change.
Do not Repeat YourSelf.
무엇을 묻고 있는지 이해하고 추정한다.
TIL (Today I Learned) 날짜
2022-05-16
오늘 읽은 범위
2장. 실용주의 접근법
책에서 기억하고 싶은 내용을 써보세요.
opic 8 좋은 설계의 핵심 → Easy To Change(ETC)
topic 9 dry[do not repeat yourself] - 코드 그 이상의 중복을 제거.(개발자간 중복 등)
topic 10 직교성 → 일종의 독립성이나 결합도 줄이기 의미.(하나의 변경에 독립적이면 서로 직교한다.) 단일하고 잘 정의된 목적을 가진 독립적인 컴포넌트 (생산성의 향상과 리스크의 감소의 장점) 계층 구조의 설계로 최적화된 직교성을 가진 설계가 가능하다.
코딩 방법
코드의 결합도를 줄여라.
전역 데이터를 피하라. - 싱글톤패턴
유사한 함수를 피하라. - 전략패턴
늘 비판적으로 코드를 바라보는 습관을 갖는다. →리팩토링
topic 11 가역성
영원한 것은 없고, 요구사항은 늘 변한다.
유연한 아키텍처 (ETC)
시스템을 정의하는 중요한 요구사항을 찾아라. 개발 우선순위를 정하라.
목표물을 찾기 위해 예광탄을 써라.
예광탄이 언제나 목표물을 맞히는 것은 아니지만, 목표물에 맞을 수 있게 조준을 옮길 수 있게 한다.
프로토타입방식과 혼동될 수 있으나, 큰 차이가 있다.
예광탄 코드는 기능은 별로 없지만 완결된 코드이며, 최종 시스템 골격 중 일부가 된다.
프로토타입방식은 예광탄 발사 전에 먼저 수행하는 정찰이나, 정보수집
프로토타입의 핵심은 교훈에 있다. (학습) 위험을 수반하는 모든 것에 대해 학습하고 배운다.
세부사항을 생략하고 특정 측면에 초점을 맞추기때문에 버려질 수 있다.
프로토타입은 완벽하지 않다. 버려질 수 있다.
연습문제 3 .
화이트 보드로 이미지 맵과 다른 페이지를 연결하는 방식을 프로토타입으로 제공할 수 있고,
클릭하면 이동할 페이지 목록과 내용을 인덱스맵이나, 포스트 잇도구를 사용할 수 있다.
모든 추정치는 문제의 모델에 기반한다.
무엇을 묻고 있는지 이해하라. - 추정전에 어떤 조건이 있을지 생각해보는 습관을 길러보자.
시스템의 모델을 만들어라. - 개략적인 모델을 만든다.
모델을 컴포넌트로 나눠라.
각 매개변수에 값을 할당하라. - 나름의 근거가 있어야한다.
답을 계산하라. 오답도 충분한 힌트가 될 수 있다.
추정실력을 기록하라.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
프로토타입과 예광탄 접근법의 차이에 대해 다시 한번 숙지하고, 추정전에 어떤 조건이 있을지 생각하는 습관을 길러야 겠다.
답을 계산하고, 오답도 충분한 힌트가 될 수 있다.
연습문제 9 , 10은 어려운 것같다. 다시 풀어봐야 될 것 같고, 한번에 이 책의 내용을 익힌다는 것은 과욕일 것 같다. 충분한 여유를 가지고 다회독 한다는 마음으로 접근하는 것이 좋을 것 같다.
오늘 프로젝트 미팅에서 요구사항 ETC와 관련하여 충돌이 있었다. 실용주의적 접근하면, 가역성과 관련하여 유연한 아키텍처도 좋지만 오히려 "유연한" 미팅을 통해 요구사항과 협의사항을 "HTC"로 만들 수 있을까 고민했다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
오늘 읽은 다른사람의 TIL