Notice
Recent Posts
Recent Comments
Link
오르막길
[CleanCode] 17~18일차 - 10장 TIL 본문
10장
클래스
책에서 기억하고 싶은 내용
- 클래스의 체계
- 변수 순서: 정적 공개 상수 - 정적 비공개 변수 - 비공개 인스턴스 변수
- 공개 변수가 필요한 경우는 거의 없다
- 변수 이후 공개 함수 - 비공개 함수(자신 호출하는 공개함수 직후)의 추상화 단계가 순차적으로 내려간다
- 테스트 코드가 함수 호출이나 변수 사용이 필요한 경우 protected로 선언하거나 패키지 전체로 공개한다.
- 하지만 비공개 상태를 유지하는 것이 최우선
- 클래스는 작아야 한다.
- 클래스 설명은 if, and, or, but을 사용하지 않고 25단어 내외여야 한다
- SRP(단일 책임 원칙): 클래스나 모듈을 변경할 이유가 하나여야 한다.
- 돌아가는 소프트웨어에 초점을 맞추다 보니 수많은 책임을 떠안은 클래스가 생긴다.
- 작은 클래스는 각자 맡은 책임이 하나, 변경할 이유가 하나며, 다른 작은 클래스와 협력해 동작을 수행한다.
- 응집도: 모든 인스턴스 변수를 메서드마다 사용하는 클래스는 응집도가 가장 높다.
- 응집도를 유지하면 작은 클래스 여럿이 나온다
- 큰 함수 일부를 작은 함수 하난로 빼고 싶은데, 정의된 변수 넷을 사용한다면? 인수로 넘길까?
NO! 네 변수를 클래스 인스턴스 변수로 승격한다
- 변경하기 쉬운 클래스
- SRP를 지원한다.
- OCP를 지원한다. (확장에 개방적이고 수정에 폐쇄적)
- 새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조
- 시스템 결합도를 낮추면 유연성과 재사용성도 높아진다.
- 결합도가 낮다는 것은 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어있다는 것이다.
오늘 읽은 소감
여러 내용이 복합적으로 정리하는 기분도 들고 사실 항상 비슷한 얘기를 한 것 같기도 하고.
이번 내용엔 여러 예시 코드들이 있었는데 확실히 처음 읽을 때 보다 무슨 이야기를 하고 싶은지 잘 이해되는 느낌이었다.
궁금하거나 더 공부해야할 내용
없음
'학습 기록하기 > 클린코드 챌린지' 카테고리의 다른 글
[CleanCode] 챌린지 소감 (0) | 2024.09.12 |
---|---|
[CleanCode] 14~15일차 - 9장 TIL (1) | 2024.09.06 |
[CleanCode] 12~13일차 - 7장 TIL (1) | 2024.09.03 |
[CleanCode] 9일차 - 6장 TIL (1) | 2024.09.01 |
[CleanCode] 6~7일차 - 4장 TIL (4) | 2024.08.29 |