Developer Cafe

클린코드 10장 클래스 본문

책을읽읍시다

클린코드 10장 클래스

개발자 카페 2022. 9. 15. 16:34
728x90

JAVA Convention에 따르면 가장 먼저 변수 목록이 나온다. static public --> static private --> private 인스턴스 --> (public은 필요한 경우가 거의 없다)
변수목록 다음에는 공개 함수가 나온다. 비공개 함수는 자신을 호출 하는 공개 함수 직후에 나온다.
즉, 추상화 단계가 순차적으로 내려간다.

캡슐화

변수와 유틸리티 함수는 가능한 공개하지 않는 편이 낫지만 반드시 숨겨야 하는 것은 아니다.
우리에게 테스트는 중요하므로 테스트를 위해 protected로 선언해서 접근을 허용하기도 한다.
하지만 비공개 상태를 유지할 온갖 방법을 강구하고, 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다.

클래스는 작아야 한다!

클래스는 첫째! 작아야한다. 둘째! 작아야한다. 더 작아야 한다. 단 함수와는 다르게(함수는 물리적인 행 수로 측정)
클래스는 맡은 책임을 측정한다.

 

SRP는 객체지향설계에서 더욱 중요한 개념이고, 지키기 수월한 개념인데, 개발자가 가장 무시하는 규칙 중 하나이다.
대부분의 프로그래머들이 돌아가는 소프트웨어에 초점을 맞춘다. 전적으로 올바른 태도이기는 하지만,
돌아가는 소프트웨어가 작성되면 깨끗하고 체계적인 소프트웨어라는 다음 관심사로 전환을 해야한다.

 

"도구 상자를 어떻게 관리하고 싶은가?
작은 서랍을 많이 두고 기능과 이름이 명확한 컴포넌트를 나눠 넣고 싶은가?
아니면 큰 서랍 몇개를 두고 모두 던져 넣고 싶은가?"

큰 클래스 몇개가 아니라 작은 클래스 여럿으로 이뤄진 시스템이 더 바람직하다.
작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 작은 클래스와 협력해
시스템에 필요한 동작을 수행한다.

728x90

'책을읽읍시다' 카테고리의 다른 글

클린코드 13장 동시성  (0) 2022.09.15
클린코드 12장 창발성  (0) 2022.09.15
클린코드 9장 단위 테스트  (0) 2022.09.15
클린코드 7장 에러 핸들링  (0) 2022.09.05
클린코드 6장 객체와 자료 구조  (0) 2022.09.05
Comments