CleanCode

[CleanCode] 클래스

zamezzz 2023. 11. 13. 22:40

CleanCode - 클래스

클래스를 정의하는 표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나옵니다.

변수 목록 다음에는 공개 함수가 나옵니다. 그리고 그 이후에는 비공개 함수가 나옵니다. 

즉, 추상화 단계가 순차적으로 내려갑니다.



클래스를 만들 때 첫 번째 규칙은 크기입니다. 

클래스가 작아야 좋다고 책에서는 강조를 하고 있습니다.

크기를 줄이는 방법 중 중요한 것은 바로 '작명' 입니다. 클래스 이름은 해당 클래스 책임을 기술해야 합니다. 

명확히 해당 클래스의 책임을 기술한다면 클래스의 크기를 줄이는데 많은 도움이 됩니다.
(하지만 작명이 가장 어려운 것 같습니다!)

그 다음은 SRP (Single Responsibility Principle). 단일 책임 원칙에 대해 설명합니다.

SRP는 클래스를 변경할 이유는 단 하나뿐이어야 한다는 원칙입니다.


책에서 나오는 SuperDashboard 클래스는 이름부터 모호하다고 봅니다. 그리고 책임이 너무 많습니다.
여기서 Version과 관련된 메서드만 따로 빼서 Version이라는 클래스를 만드는 것이 더 추천하는 형태입니다.

책에서 강조하는 것 처럼 큰 클래스 몇 개가 아니라 작은 클래스 여러개로 이루어진 시스템이 더 바람직한 시스템입니다.

변경하기 쉬운 클래스
대부분 시스템은 지속적인 변경이 가해집니다. 그리고 변경할 때마다 사이드 이펙의 발생 우려가 있습니다.
깨끗한 시스템은 클래스로 체계적으로 정리하여 변경에 따르는 이슈 발생 우려를 최소화합니다.

그러므로 변경하기 쉬운 클래스란 중요한 개념입니다.


마무리
시스템의 결합도를 낮추면 유연성과 재사용성도 더욱 높아집니다.
결합도가 낮다는 의미는 각 시스템 요소가 다른 요소로부터 그리고 변경으로부터 잘 격리되어 있다는 의미입니다.
그리고 잘 격리되어 있으면 각 요소를 이해하기도 더 쉬워집니다.

반응형

'CleanCode' 카테고리의 다른 글

[CleanCode] 창발성  (1) 2023.12.05
[CleanCode] 시스템  (0) 2023.11.14
[CleanCode] 단위 테스트  (1) 2023.11.11
[CleanCode] 경계  (0) 2023.11.11
[CleanCode] 오류 처리  (0) 2023.11.10