반응형
클래스가 응집력을 잃는다면 쪼개라!
✏️ 기억하고 싶은 내용
- 클래스 설명은 만일("if"), 그리고("and"), -(하)며("or"), 하지만("but")을 사용하지 않고서 25단어 내외로 가능해야 한다.
- 단일 책임 원칙(SRP, Single Responsibility Principle)은 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다. SRP는 '책임'이라는 개념을 정의하며 적절한 클래스 크기를 제시한다. 클래스는 책임, 즉 변경할 이유가 하나여야 한다는 의미다.
- 새 기능을 수정하거나 기존 기능을 변경할 때 건드릴 코드가 최소인 시스템 구조가 바람직하다. 이상적인 시스템이라면 새 기능을 추가할 때 시스템을 확장할 뿐 기존 코드를 변경하지는 않는다.
- 결합도가 낮다는 소리는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미다.
💡 떠오르는 생각
한 파일 내에 존재하는 코드를 수정하게 되면 그 파일 내에 있는 모든 메서드에 대해서 변경으로 인한 잠재적인 문제를 확인하기 위해서 테스트를 진행해야 한다. 하지만 만약 해당 파일에 내가 변경해야 할 메서드와 '역할'적으로 전혀 관련이 없는 다른 메서드가 있다면, 코드를 수정하는 사람에게 혼란을 줄 것이다. 결국은 '3장 함수'에 나왔던 내용과 비슷하게 흘러간다. 함수가 하는 일을 함수명으로 명확하게 정의할 수 있도록 만들듯이, 클래스도 클래스의 역할을 클래스 명과 그 속에 있는 메서드만 보고도 명확하게 정의할 수 있어야 한다. 만약 이 방향대로 코드를 써 내려간다면, 결국에 우리는 잘 정의되고, 깔끔하고, 숨어 있을 버그에 떨지 않아도 되는 Clean Code를 마주하게 될 것이다.
'도서' 카테고리의 다른 글
[클린코드] 1장~10장 복기 (0) | 2024.03.21 |
---|---|
[클린코드] 9장 단위 테스트 (0) | 2024.03.14 |
[클린코드] 7장 오류 처리 (0) | 2024.03.12 |
[클린코드] 6장 객체와 자료 구조 (0) | 2024.03.10 |
[클린코드] 5장 형식 맞추기 (0) | 2024.03.09 |