5장. 구부러지거나 부러지거나 되돌릴 수 있는 의사 결정을 내리는 구체적인 방법 28. 결합도 줄이기 TDA: Tell, Don't Ask.다른 객체의 내부 상태에 따라 판단을 내리고 그 객체를 갱신해서는 안된다.객체의 내부 상태를 물으면 encapsulation의 강점이 모두 사라짐 LoD: Law of Demeter- 메서드 호출을 엮지 말라 글로벌화의 문제점: 어디서나 접근할 수 있는 데이터는 컴포넌트 간의 결합을 만든다. 29. 실세계를 갖고 저글링하기 이벤트에 잘 반응하는 어플리케이션 만들기- 유한 상태 기계- 감시자 패턴- 게시-구독- 반응형 프로그래밍과 스트림 그리고 이벤트 31. 상속세 상속을 쓸 필요가 없게 해 주는 세 가지 기법인터페이스와 프로토콜자바의 인터페이스에는 가능함을 뜻하는..
3장 기본 도구 누구도 완벽한 프로그래머를 만들 수 없다는 현실을 어떻게 장점으로 바꿀 수 있을까? 에 대한 장실용주의 프로그래머는 자신도 믿지 않기 때문에 실수에 대비한 방어책을 마련한다. 23. 계약에 의한 설계 소프트웨어 모듈에서도 "계약"이라는 방식을 사용할 수 있다. DBC: Design By Contract정확한 프로그램은 더 많지도, 적지도 않게 딱 그만큼만 하는 프로그램 선행 조건precondition: 루틴의 요구 사항, 위반되었을 경우에는 루틴을 호출하지 않는다.후행 조건postcondition: 루틴이 완료되었을 때 세상의 상태. 루틴이 결국은 할 일을 한 후 종료될 것임을 보장한다.클래스 불변식class invariant: 루틴이 끝난 시점에는 불변식이 참이 되어야 한다. → 호..
벌써 7월이 되었다 미리 계획하는 것도, 매번 기록하는 것도 능숙치 않으니 한 번에 하는 24년 상반기 회고! 개발 혹은 일에 관하여 CS가 생각보다 정말정말 중요하고 기본이 된다는 것을 자주 느껴 느리게나마 공부를 시작했다 (싸피는 교육과정을 개선하라) 사기만 하고 쌓아 둔 책들도 하나하나 읽어 갈 참이다 아직 갈 길이 멀지만 하다 보면 내가 정말 어느 부분에 관심이 있고 하고 싶은지 더 잘 알게 될 수 있을 것 같다 새 언어도 하나 건드려 봐서 재미있었지만, 알고리즘 등과는 담을 쌓고 살았기에 다시 슬슬 손을 대 보아야겠다는 생각도 든다 아쉬운 점은 무엇 하나 진득히 완성한 것이 없다는 것.. 하반기에 계획 중인 것은 완성해 낼 수 있었으면 좋겠다 그래도 얕게나마 이것저것 도전해 보고, 시작해버린 장..
오랜만의 HTML textarea를 쓰고 name을 지정한 뒤 습관적으로 />로 닫으니 제대로 닫히지 않은 채 깨져서 나타났다 아래와 같이 내용이 없더라도 분리해서 잘 닫아주면 정상적으로 표시되는데, 이는 HTML의 모든 태그가 Self-closing을 지원하지 않기 때문이다. Self-closing을 지원하는 태그들은 img나 link와 같이, void한 상태로 내용을 갖고 있는 것이 아니라 무언가를 가리키는 것이기 때문에 가능하다. 자주 쓰는 , , , 등은 해당하므로 써도 좋지만, 그렇지 않다면 구분해서 잘 써주도록 하자 참고: https://www.scaler.com/topics/self-closing-tags-in-html/
3장 기본 도구 도구는 재능을 증폭하고 생산성을 높인다.아무리 흐린 먹물일지라도 가장 훌륭한 기억력보다 낫다. 16. 일반 텍스트의 힘 일반 텍스트는 그 자체만으로 의미를 드러낼 수 있다.HTML, JSON, YAML 등은 모두 일반 텍스트 +) 유닉스 철학: 작고 예리한 각각의 도구가 한 가지 일만 잘하도록 만들자 17. 셸 가지고 놀기 텍스트 파일을 다루는 프로그래머에겐 명령어 셸이 작업대이다.GUI보다 작업 자동화와 가용한 역량을 온전히 사용하는 데에 장점이 있다.GUI는 설계자가 의도한 범위 내에 제한된다. 개발자도 셸을 자기에게 맞추어야 한다.- 색 조합- 프롬프트 설정- alias와 셸 함수- 명령어 자동 완성 18. 파워 에디팅 에디터를 여러 개 쓸 거라면 각각에 유창해지도록 해라..
2장 실용주의 접근법 소프트웨어 개발에 적용 가능한 프로세스나 아이디어, 접근법 등을 정리하기 위한 장 8. 좋은 설계의 핵심 +) 데메테르 법칙(이라고 나와 있는데 디미터의 법칙이라고 많이 하는 듯 하다) Law of Demeter: 각 객체는 현재 객체와 근접한 객체만 실행시킨다.: 한 줄에 점을 하나만 찍는다! ex. getA().more().end()는 보다는 한 번에getA().more()까지만 해라: 최소 지식 원칙이라고도 하며, 객체 간의 결합도를 낮추는 방법이다. ETC: Easy To Change - 결합도를 줄이면 분리되어 각각이 더 바꾸기 쉬워진다. - ETC는 규칙이 아니라 가치이다 (선택할 때 도움을 받자) - 교체 가능하기 위해서는 결합도를 낮추고 응집도를 높여라 9. D..