STEP 2 목표
변경 사항
개선할 점
배운 것
📆 기간 : 2023.02.08~ 2022.02.13
STEP 2 목표
2단계 에서는 최대한 객체는 객체답게 능동적으로 자신의 역할만 수행하도록 변경하고자 노력하였다. 또한 MVC 패턴을 조금 더 다듬었다.
Car는 car의 역할만. Name은 name의 역할만. Cars는 cars의 역할만.
MVC 패턴을 조금 더 상세화 했다.
변경 사항
Validation
- validation을 InputView에서 검증하는 것이 좋다고 생각하였으나, Test코드를 작성하는데 있어서 어렵다고 생각하게되었다. 그래서 Validation은 원시값을 포장하면서 그 곳에서 검증하였고, 그 외의 값들은 InputView에서 처리하였다.
원시값 포장
- Car의 Name 포장을 위해 Name 도메인을 만들었다.
- location 또한 원시값 포장을 위해 Name 도메인을 만들었따.
- 이렇게 함으로써 변수의 의미를 명확하게 하며, 책임관계도 명확해지고 코드 유지보수가 좋아진다!
랜덤값 주입
- Car가 랜덤값을 모르게 하였고, 값을 전달함으로써 Car가 직접 움직이도록 하였다.
- Interface를 사용하여 프로덕션 코드의 랜덤값과 Test코드의 랜덤값 생성을 별도로 생성하여 사용하였다.
Getter 대신 객체에 메세지 전송
- Getter를 사용하는 대신 객체에 메세지를 보내 판별 후 반환 해주는 형식으로 구현하였다.
- utputView에서 출력을 위해 객체의 정보를 가져오는 getter는 수정/변경이 없어서 사용해도 될 것 같다..
MessageView 제거 및 OutputView 통합
- MessageView는 단순 출력용 , OutputView는 파라메터를 받아 출력하는 로직을 작성하였었는데 이는 타인이 확실하게 구별이 어려울 것 같아서 수정하였다.
개선할 점
- 처음부터 MVC패턴을 고려하며 작성해보자.
- TDD로 시작해보자
- README 를 처음부터 잘 작성해보자
레이싱 경주에서 배운 것
소통 능력
- 페어 프로그래밍을 통해 진행하는데 페어와의 소통이 쉽지만은 않았다. 내가 당연시 여겼던 것도 쉽게 설명하기 어려웠다. 누군가가 물어봤을때 쉽게 대답하지 못하면 모른다라고 생각하는 나로써는 큰 영향을 받았다. 개발자로써 혼자만 공부하고 생각할 것이 아니라 다른 사람과 소통하면서 코드를 작성할 필요도 있다고 느꼈다.
테스트 코드의 중요성과 작성
- 테스트 코드를 통해 내 코드를 쉽게 테스트할 수 있었다. 코드의 일부가 바뀌었을때 어떤 문제가 생겼는지 쉽게 확인할 수 있었으며 내 코드를 믿을 수 있었다.
객체는 객체답게
- 객체는 객체답게 자신의 역할과 책임에 집중해야 된다고 생각한다. 처음과 달리 그 생각을 하고 객체들을 바라보니 어떻게 구성해야 될지 보이기 시작한 것 같다..
'우아한테크코스' 카테고리의 다른 글
[우아한 테크코스 5기] 사다리 타기 2단계 학습 로그 (8) | 2023.02.26 |
---|---|
[우아한 테크코스 5기] 사다리 타기 1단계 학습 로그 (0) | 2023.02.19 |
[우아한 테크코스 5기] 자동차 경주 1단계 학습 로그 (0) | 2023.02.12 |
[우아한 테크코스 5기] 우아한 테크코스 3일차 (0) | 2023.02.11 |
[우아한 테크코스 5기] 우아한 테크코스 2일차 (0) | 2023.02.09 |