일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 2016년회고
- Raw-Request-URI
- 개발자로살아남기
- clean code
- 데이터유통
- 클린코드
- 단위테스트
- 회고
- 개발자
- 데이터야놀자
- 데이터레이크
- 해커컵
- 박종천
- wait region split
- kafka
- 알고스팟
- functional thinking
- coursera
- 함수형 사고
- 데이터플랫폼
- 동시성
- 실전사례
- hackercup2017
- 켄트백
- 2017회고
- 테스트주도개발
- 코딩인터뷰
- spray
- 개발7년차매니저1일차
- datalake
Archives
- Today
- Total
Software Engineering Note
클래스는 언제 나눠야 할까? 본문
클래스를 나누고 싶어질 때는 물론 하나의 클래스가 너무 커질 때입니다.
하지만 크다고 해서 무조건 나누지는 않죠. 그냥 나누는 건 의미가 없기 때문입니다. "잘" 나눠야죠.
커져버린 클래스를 나누는 것 외에 클래스를 나누고 싶어 질 때가 있습니다.
보통은 느낌상 코드가 예쁘지 않을 때인데, 최근에 경험한 것을 정리하자면 바로 "문맥"이 섞이는 때입니다.
예를 들어, 클래스 A에서는 "취소"가 맞아 보이는데 메서드를 정리하다 보니 어떤 부분에서는 "삭제"라는 문맥이 발생하는 것입니다.
이런 때는 문맥을 기준으로 클래스를 분리하면 역할이 명확해집니다.
보통 하나의 클래스를 여러 개의 메서드로 분리하고 중복을 제거하다 보면 발견될 것입니다.
그런데 클래스를 나누고 나서 어떻게 잘 나누어진 것인지 확신할 수 있을까요?
이런 고민이 생길 때는 분리한 클래스를 테스트하는 코드를 만들면 됩니다.
테스트 코드를 작성하다가 "뭐 이렇게 해줘야 할게 많아?"라는 생각이 들면 클래스가 너무 많은 책임을 가지고 있거나
불필요한 정보를 가지고 있을 확률이 높습니다.
연습을 많이 하다 보면 나중에는 느낌적인 느낌으로 잘 나누는 때가 오겠죠?
'일하며 개발하며' 카테고리의 다른 글
시간 복잡도는 왜 따져봐야 할까? (0) | 2020.03.18 |
---|---|
shell script 부분 병렬화 사례 (0) | 2020.03.01 |
FDD(Feeling-Driven Development) (0) | 2018.02.27 |
테스트 코드를 먼저 작성해야 하는 이유 (0) | 2017.06.23 |
좋은 코드를 만드는 2가지 간단한 습관 (0) | 2015.11.24 |