개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
영원한 것은 없다. 언젠가는 변한다. 어떤 미래가 펼쳐질지 지금은 알 수 없다.
쉽게 바꿀 수 있게, 바꾸면서 문제가 일파만파 커지지 않게, 바꿀 부분을 찾기 쉽게 작성하자.
구체적으로 구현하기 전에 전체적인 그림을 그려 감을 잡아보자.
TIL (Today I Learned) 날짜
2022. 03.21
오늘 읽은 범위
2장. 실용주의 접근법
책에서 기억하고 싶은 내용을 써보세요.
좋은 설계는 나쁜 설계보다 바꾸기 쉽다.
프로그래머로서 우리는 지식을 수집하고, 조직하고, 유지하며, 통제한다. 이 지식은 시간이 지남에 따라서 변화한다. 지식을 여러군데에서 표현하고, 한 부분만 수정했을 때 정보에 모순이 생기게 된다. 모든 지식은 시스템 내에서 단 한 번만, 애매하지 않고, 권위있게 표현되어야 한다.
컴포넌트가 자족적이고 응집되어 있으면, 수정이 필요할 때 해당 부분만 수정하면 된다
컴포넌트의 변화가 다른 컴포넌트에 영향을 끼치지 않는다
혹시 문제가 생기더라도 전체 시스템으로 전파되지 않도록 코드를 격리 시키자
구체적인 구현이 바뀌었을 때 전체 시스템을 수정하지 않도록 격리 시키자
우리를 요구 사항으로부터 최종 시스템의 일부 측면까지 빨리, 눈에 보이게, 반복적으로 도달하게 해 줄 무언가를 찾아야 한다.
모든 기능을 처음부터 자세하고 완벽하게 개발하는 것보다 전체적인 구조를 만들어 놓고 일단 동작하는 것을 확인 한 후에 조금씩 살을 붙여 가는 방식을 선택하자. 가볍게 개발하기 때문에 빠르고, 진행상황을 더 정확히 파악할 수 있다.
실제 구현을 하기 전에 프로토타이핑을 해보자. 위험 요소를 분석하고 노출시킨 후, 매우 저렴한 비용으로 바로잡을 기회를 얻을 수 있다. 화이트보드에 그림을 그려서 만들 수도 있고, 포스트잇을 이용해 구성해볼 수도 있다.
증명되지 않았거나, 실험적이거나, 의심이 가는 것, 마음이 편하지 않은 것을 프로토타이핑 해보자.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
레고블럭을 떠올리면서 내가 작성하는 코드가 레고처럼 쉽게 뺐다 끼웠다 할 수 있는지 생각해봐야겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
도메인 언어