체스 게임 시작을 위해 입력해야 할 명령어의 문구를 출력한다.
체스 게임 시작을 위해서 명령을 입력받는다.
move {원래 칸} {이동할 칸}
의 형태로 입력받는다. {원래 칸} {이동할 칸}
형태여야 한다..
으로 배치한다.Unresolve
로 처리하자Controller
패키지~~controller
클래스만 있을 필요 없음Command
객체는 Controller
패키지 안인 편이 어울림while (!movedPosition.equals(to)) {
positions.add(movedPosition);
movedPosition = movedPosition.advancePosition(direction);
for문
을 통해 목적지까지 이동한 새로운 포지션을 매번 생성하고, 그 값을 리스트에 담자Fixtures
안에 해당 로직을 넣자!OutputView
사이 의존을 끊자getter
나 DTO
를 사용하자View
에 getter
로 값을 넘기는 것은 괜찮다!getter
를 더 안전하게 만들자!(VO
, copyOf()
...)미친듯이 바빴고 즐거웠다
이번 미션은 전 기수부터 악명이 자자했다.
실제로 구현사항을 하나씩 읽는데 눈앞이 캄캄했다.
체스 룰을 잘 몰랐기 때문에 각 기물(말)들의 이동패턴 부터, 승리 조건까지 공부해야 했다.
이번 페어프로그래밍 때 유독 협업용 인텔리제이 플러그인 Code With Me
가 말썽이었다.
핑도 높고 자꾸 인텔리제이가 꺼졌다. 대안으로 TeamViewer
를 사용했지만 단축키가 씹히는 문제가 있었다.
결국 페어 루키가 내쪽 지역으로 와 같이 코딩했다.
사실 페어 프로그래밍을 이전까진 거의 온라인으로 진행했다.
코로나 이슈도 있었고, 굳이 움직이기 귀찮았기 때문이었다.
막상 만나서 페어프로그래밍을 하니, 온라인으로 진행할 때와 비교해 생각치 못한 장점들이 있었다.
온라인으로 대화할 때는 서로의 말에 반응하는 속도가 느리다.
이게 신경쓰이고 스트레스로 다가온다. 서로 말이 겹쳐 어색해질 때 특히😅
오프라인으로 만나니 목소리도 더 잘 들리고 비언어적인 부분까지 포괄해 의사소통이 가능했다.
물론 온라인에서도 아이패드를 연동하거나 기타 협업툴을 쓰면 되지만
직접 그려가며 설명하기엔 오프라인이 좋았다.
이거 하겠다고 밖에 나왔으니 최대한 빨리 끝내고 싶은 마음이 생긴다.
자연스럽게 집중력이 높아지고 서로의 설명들을 잘 이해하게 된다.
요새 혼밥이 유행이지만 아직 2인분부터 주문 가능한 곳도 많고,
집에 있으면 굳이 나가서 사먹지 않게된다.
바깥바람도 쐬고 맛있는 것도 먹을 수 있다.
그래서 내 생각엔 오프라인 페어프로그래밍이 더 좋다.
앞으로는 오프라인으로 페어 프로그래밍을 해야 하는데 기대된다👍
예전 조별 과제 때 사용했던 디자인씽킹 툴이다.
미리 구조설계를 빠르게 고민할 수 있다.
이때의 설계 다수가 끝까지 갔던 것 같다.
이번 체스미션 구조가 많이 복잡해서 코드 작성 전에 설계고민을 해보는 것이 큰 도움이 되었다.
앞으로도 많이 쓸 생각이다!
좋은 글이네요^^