본문 바로가기

회고

[TDD, 클린 코드 with Java] 4. 수강신청 - 레거시 코드 리팩터링

728x90
반응형

*개요

수강신청 과제 피드백을 정리합니다.

 

 

1단계 - 레거시 코드 리팩터링

 

1:N 관계 로직 만들기 고민 

 

 

 

 

의존성에 따라 객체 생성 위치를 정하라

 

 

생성, 수정 일시를 외부에서 주입받아라

 

 

코드 라인을 줄일 수 있으면 로직을 합치라 

 

 

 

2단계 - 수강신청(도메인 모델)

 

도메인의 공통 칼럼은 하나의 인스턴스로 리팩토링하라

 

 

 

도메인의 enum을 내부, 외부에 정의하는 고민

 

 

 

 도메인 책임 영역을 고민하라

 

 

 

 유동적인 요구사항을 추가 구현하라

 

 

다른 도메인을 객체로 의존하기 vs 객체 id(pk)에 의존하기 

 

 

연관이 있는 도메인 인스턴스를 묶어 관리하라

 

 

 

양방향 의존관계를 단방향으로 개선하라

 

 

3단계 - 수강신청(DB 적용)

 

인덱스 자료구조 검색을 제거하라

 

 

 

기존 도메인 유지하기 vs 새로운 도메인 추가하기 

 

 

 

비지니스 책임을 Service에 부여하기 vs Repository에 부여하기

 

 

repository에서 null이 예상되는 경우에는 메서드로 감싸라

 

 

4단계 - 수강신청(요구사항 변경)

 

연관관계 Id를 참조하는게 좋은지 고민하라

 

 

중간 테이블 데이터 저장 용도 vs 비지니스 로직 도메인

 

 

setter 사용을 제거하라

728x90
반응형

'회고' 카테고리의 다른 글

[TDD, 클린 코드 with Java] 3.사다리타기 - FP, OOP  (0) 2024.01.02
[TDD, 클린 코드 with Java] 2.로또 - TDD  (0) 2023.12.30
[TDD, 클린 코드 with Java] 1.자동차 경주  (0) 2023.12.30
TIL_20221027  (0) 2022.10.28
TIL_20221025  (0) 2022.10.26