개인적으로 2주차의 가장 아쉬운 점이라고 하면 커밋메시지라고 할 수 있다. 아래의 2주차 내가 쓴 커밋 메시지를 보면 커밋 단위가 들쭉날쭉하고 직관적이지 못한 걸 알 수 있다...🥲
정리하니 너무 정말 많군..!ㅎㅎ
아래는 2주차 자동차 경주 미션을 기반으로 커밋 메시지를 다시 작성해본 양식이다!
- docs : ~ 변경, ~ 추가, ~ 삭제
- feat : ~ (객체를 생성하는) 기능 구현
- refactor: ~ 을 통해 ~ 생성, 가독성 향상을 위한 ~ 함수 분리
style: 가독성 향상을 위한 네이밍 변경네이밍 변경이 refactor라는 의견!- fix : ~~ 안 맞는 부분 수정
docs (READ.ME) : 기능 요구 사항 작성
기능 요구 사항 서술
예외 상황도 함께 서술
docs (READ.ME) : 시도할 횟수에 대한 예외 상황 추가
시도할 횟수가 0 이하인 경우 예외 상황 추가
feat(InputValidator): 입력된 플레이어 이름의 형식에 대한 검증 구현
자동차 이름이 공백이진 않는지 검증
자동차 이름이 [,] 형식에 맞는지 검증
feat(PlayerName): 입력된 플레이어 이름의 유효성 검증 구현
자동차 이름이 5글자를 넘어가진 않는지 검증
feat(Player): 이름을 통해 플레이어 객체를 생성하는 기능 구현
검증된 이름 목록을 통해서 플레이어 생성 기능 구현
feat(RacingGame) : 플레이어 이동 기능 구현
게임 진행 객체에서 플레이어 이동현황에 이동을 명령하는 기능 구현
플레이어 이동현황에서 이동 거리에 증가 혹은 유지를 명령하는 기능 구현
이동 거리에서 거리를 증가시키는 기능 구현
test(RacingGame) : 플레이어 이동 실패 테스트 케이스 추가
refactor(Constant) : 가독성 향상을 위한 상수 객체화
refactor(ClassFile) : 생성자 투명성 유지를 위한 validate 메소드 이동
refactor(RacingGame) : 의존성 주입 방식을 생성자 주입 방식으로 변경
refactor(PlayerMoveList) : 모든 플레이어 이동현황을 통해 일급 컬렉션 생성
feat(PlayerMoveList) : 우승자 판단 기능 구현
fix(ClassFile) : 부생성자 네이밍 컨벤션이 맞지 않는 부분 수정
style(ClassFile) : 불변성 보장을 위해 매개변수에 final 키워드 추가
refactor(ClassFile) : 불변성 보장을 위해 반환 값을 불변 리스트로 수정
feat(GameController) : 컨트롤러 생성
feat(PlayerNamesDto) : 플레이어 이름 목록을 위한 DTO 생성
feat(GameController) : 시도 횟수 입력 기능 컨트롤러 연결
feat(All) : 패키지 생성 및 파일 분리
refactor(GameController) : 가독성 향상을 위한 함수 분리와 네이밍 변경
style(ClassFile) : 불변성 보장을 위해 반환 값을 불변 리스트로 수정
refactor(OutputView) : 가독성 향상을 위한 함수 분리
test() : 모든 테스트 파일에 given-when-then 구조 적용
style(MoveResultDto): 가독성 향상을 위해 클래스 이름 변경