개발자 99% 커뮤니티에서 수다 떨어요!
2022.05.10
💡 오늘 TIL 3줄 요약
클래스는 작아야 한다.
어떤 변경이든 클래스에 손대면 다른 코드를 망가뜨릴 잠정적인 위험이 존재한다
새 기능을 수정하거나 기존 기능을 변경할 때 건드를 코드가 최소인 시스템 구조가 바람직하다.
💡 책에서 기억하고 싶은 내용을 써보세요.
클래스 체계
정적 공개, 정적 비공개, 비공개 인스턴스
공개 함수, 비공개 함수
캡슐화를 풀어주는 결정은 언제나 최후의 수단이다.
클래스는 작아야 한다.
클래스 설명은 if, and, or, but을 사용하지 않고 25단어 내외로 가능해야 한다.
단일 책임 원칙 : 클래스나 모듈을 변경할 이유가 하나 뿐이어야 한다는 원칙이다.
“도구 상자를 어떻게 관리하고 싶은가? 작은 서랍을 많이 두고 기능과 이름이 명확한 컴포넌트를 나눠 넣고 싶은가? 아니면 큰 서랍 몇 개를 두고 모두를 던져 넣고 싶은가”
큰 클래스 몇개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.
응집도: 인스턴스 변수를 매서드마다 사용하는 클래스는 응집도가 높다.
어떤 변경이든 클래스에 손대면 다른 코드를 망가뜨릴 잠정적인 위험이 존재한다.
우리가 재구성한 Sql클래스는 파생 클래스를 생성하는 방식으로 새 기능에 개방적인 동시에 다른 클래스를 닫아놓는 방식으로 수정에 폐쇄적이다.
새 기능을 수정하거나 기존 기능을 변경할 때 건드를 코드가 최소인 시스템 구조가 바람직하다.
이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장 할 뿐 기존 코드를 변경하지는 않는다.
결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다.
✍️ 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
클래스는 아직 좀 어렵다. 많이 다양하게 써보지 않아서 그렇지만 클래스도 결국 좋은 함수를 만드는 방법의 연장선에 있는거 같다. 간결하고 독립적인 클래스를 만드는 것, 귀찮다고 다 쑤셔넣는 것이 아니라 몇 개월, 몇 년이 지나 업데이트를 해야할 때도 불편하지 않게 만드는 것이 중요하다.
🧐 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
💬 오늘 읽은 다른사람의 TIL