반응형
오늘 TIL 3줄 요약
- 클래스의 크기는 작을수록 좋다.
- 클래스나 모듈을 변경할 이유는 하나, 단 하나뿐이어야 한다.
- 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다.
TIL (Today I Learned)
2022.03.08
오늘 읽은 범위
10장. 클래스
책에서 기억하고 싶은 내용을 써보세요.
- 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. (p.172)
- 클래스를 만들 때 첫 번째 규칙은 크기다. 클래스는 작아야 한다. 두 번째 규칙도 크기다. 더 작아야 한다. (p.172)
- 클래스 설명은 만일("if"), 그리고("and"), -(하)며("or"), 하지만("but")을 사용하지 않고서 25단어 내외로 가능해야 한다. (p.175)
- 단일 책임 원칙(Single Responsibility Principle, SRP)은 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다. (p.175)
- "도구 상자를 어떻게 관리하고 싶은가? 작은 서랍을 많이 두고 기능과 이름이 명확한 컴포넌트를 나눠 넣고 싶은가? 아니면 큰 서랍 몇 개를 두고 모두를 던져 넣고 싶은가?" (p.177)
- 큰 클래스 몇 개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다. 작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 시스템에 필요한 동작을 수행한다. (p.177)
- OCP(Open-Closed Principle)란 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다는 원칙이다. (p.188)
- 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다. (p.188)
- 시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아진다. 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다. 시스템 요소가 서로 잘 겨길되어 있으면 각 요소를 이해하기도 더 쉬워진다. (p.190)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 큰 서랍과 작은 서랍에 대한 비유가 정말 인상깊었다. 정리할 때 큰 서랍에 모든 것을 때려 박았던 경험이 있다. 그리고 후에 큰 서랍에 있는 모든 물건을 쏟아서 원하는 물건을 꺼낸다. 다시 물건을 큰 서랍에 때려 박는다. 이것을 반복한다. 오우야...
- 정리의 신이 되는 방법은 사실 간단할지도 모른다. 물건이 없으면 정리할 것도 없다. 미니멀리스트를 지향하자.
- 다음에 다시 오겠습니다! 이해는 나중에~ 빠잉
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
- 일반적으로 메서드가 변수를 더 많이 사용할수록 메서드와 클래스는 응집도가 더 높다. (중략) 일반적으로 이처럼 응집도가 가장 높은 클래스는 가능하지도 바람직하지도 않다. (p.177)
- 응집도가 높아지도록 변수와 메서드를 적절히 분리해 새로운 클래스 두세 개로 쪼개준다. (p.178)
- 불행히도 이렇게 하면 클래스가 응집력을 잃는다. (p.178)
- 응집도가 높을수록 좋지 않다고 했는데 응집도가 높아지도록 클래스를 쪼갠다(?) 응집도가 높을수록 좋다는건가? 안좋다는 건가? /// 결론: 응집도가 높을수록 좋음
- 응집도 (Cohesion)
- 클래스
- 모듈
- 객체지향원칙 (https://blog.itcode.dev/posts/2021/08/13/single-responsibility-principle)
오늘 읽은 다른사람의 TIL
- roghabo님의 TIL(https://nomadcoders.co/community/thread/3418)
반응형
'노마드북클럽 > 클린코드' 카테고리의 다른 글
(외전) 📚 11장. 시스템 (0) | 2022.03.14 |
---|---|
✨ 타임스크립트를 위한 클린코드 - 한글 번역판 ✨ (0) | 2022.03.14 |
📚 9장. 단위 테스트 (1) | 2022.03.05 |
📚 8장. 경계 (0) | 2022.03.04 |
✨✨ (외전) 끝까지 간다 스케쥴 ✨✨ (0) | 2022.03.04 |