Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
클린코드 10장 클래스
#clean_code
2년 전
1,073
1

TIL (Today I Learned) 날짜

2022.03.08

오늘 읽은 범위

10장. 클래스

책에서 기억하고 싶은 내용을 써보세요.

  • 클래스 체계

    클래스 정의 표준 자바 관례

    변수 목록

    static, public 상수

    private 변수

    비공개 인스턴스

    공개 함수

    비공개 함수는 자신을 호출하는 공개 함수 직후

  • 클래스는 작아야 한다

*책임의 수가 작아야 한다

클래스 이름은 해당 클래스 책임을 기술해야 한다. 실제로 작명은 클래스 크기를 줄이는 첫 번째 관문이다.

*단일 책임 원칙(Single Responsibility Principle, SRP)

클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙

'책임'이라는 개념을 정의하며 적절한 클래스 크기를 제시

우리들 대다수는 두뇌 용량에 한계가 있어 ‘깨끗하고 체계적인 소프트웨어’보다 ‘돌아가는 소프트웨어’에 초점을 맞춘다. 전적으로 올바른태도다. 관심사를 분리하는 작업은 프로그램만이 아니라 프로그래밍 활동에서도 마찬가지로 중요하다. 문제는 우리들 대다수가 프로그램이 돌아가면 일이 끝났다고 여기는 데 있다. ‘깨끗하고 체계적인 소프트웨어’라는 다음 관심사로 전환하지 않는다. 프로그램으로 되돌아가 만능 클래스를 단일 책임 클래스 여럿으로 분리하는 대신 다음문제로 넘어가버린다.

*응집도

응집도가 높다 = 클래스에 속한 메서드와 변수가 서로 의존하며 논리적인 단위로 묶인다.

응집도가 높아지도록 변수와 메서드를 적절히 분리해 새로운 클래스 두세 개로 쪼개준다.

-변경하기 쉬운 클래스

경험에 의하면 클래스 일부에서만 사용되는 비공개 메서드는 코드를 개선할 잠재적인 여지를 시사한다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 책에 클래스를 잘게 쪼개면 봐야할 클래스가 많고 정신없다고 생각하는 사람이 있다는식으로 쓰여있었는데 내 얘기다. 그렇게 생각했었는데 책을 읽고보니 하나의 책임만 맡고 있는 클래스가 더 낫겠다는 생각이 들었다. 클래스를 작성한 후에 공부했던 법칙들에 맞게 리팩토링 해봐야겠다.

1 comment