인프런 워밍업 클럽 2기 백엔드 클린 코드와 테스트 코드 1주 차 발자국
이번주 회고
첫 번째 주 인프런 워밍업 클럽2기 클린코드와 테스트를 진행하였습니다.
이어진 연휴로 인한 게으름과 사옥 이전으로 인한 스트레스 등으로 일부 완강하지 못한 섹션이 있어서 다소 아쉬움이 남습니다. 하지만 그래도 꾸준히 들으려고 했다는 점과 뭐라도 시도했다는 점은 칭찬할 점인 것 같습니다.
다음 주부터는 이제 안정되어가는 시기이니, 휴일에 밀린 섹션을 듣고 다시 열심히 해보겠습니다.
강의를 수강하면서 꼭 기록하고 싶은 내용
부정어를 대하는 자세
if(!isRightDirection()) 을 사용하는 것보다는 if(isNotRightDirection())을 사용하는 것이 더 읽기 쉽다.
관심사의 분리 (Seperation Of Concern)
추상화 작업 중 하나로, 일련의 작업들을 묶어서 이름을 짓고, 역할을 분리하여 높은 응집도와 낮은 결합도를 지니게 하는 것이다. 이를 통해 우리는 유지 보수를 좀 더 수월하게 할 수 있게 된다.
객체로 추상화하기
공개 메서드 선언 부를 통해 비공개 필드(데이터)와 비공개 로직(코드)를 외부 세계와 소통할 수 있게 구현한다.
새로운 객체를 만들 때 고려해야할 점
1개의 관심사로 명확하게 책임을 정의해야 한다.
데이터는 변하지 않는 것이 제일 좋다.
setter 지양 : 객체 내부에서 외부 세계의 개입 없이 자체적으로 변경을 처리할 수 있어야 한다.
getter 지양 : 객체에 메세지를 보내는 것이 좋다. 외부에서 getter를 남발하는 것은 캡슐화를 한 의미를 져버리는 것이다.
미션
이번 미션의 경우, 간단한 리팩토링 미션이었습니다. 강의에서 들은 것을 바탕으로 도메인 안에서 객체에 대한 로직을 처리하도록 구현하여 응집도를 높였고 캡슐화를 진행하였습니다. 객체 내에서도 List를 사용하는 객체는 일급 객체로 구현하여 유지 보수에 용이하게끔 구현하였습니다.
또한 부정어도 최대한 가독성이 높아지도록 Not을 붙여서 구현하였습니다.
댓글을 작성해보세요.