1주차 피드백
1. 클래스나 메서드 변수 이름을 축약하지 마라
2. 공백도 컨벤션이다, 들여쓰기 통일
3. 반복 금지
4. 의미 없는 주석 x
5. 커밋 메시지 의미 있게 작성
6. 기능 목록 업데이트 및 재검토
7. README.md 상세히 작성
8. 매직넘버 x, 구현순서도 컨벤션
1주차 피드백이 나왔다
몇가지는 알고 있었지만 커밋 메시지
와기능목록, README.md
살아 있는 문서 만드는 것을 내가 잘하고 있는가에 대한 의문이 생겼다
마지막으로 이번 미션은 함수 분리에 이어 클래스 분리에 대해 고민하면서 미션을 진행했다
초간단 자동차 경주 게임을 구현한다.
IllegalArgumentException
를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다.pobi,woni,jun
5
pobi : --
woni : ----
jun : ---
최종 우승자 : pobi
최종 우승자 : pobi, jun
[ERROR] 시도 횟수는 숫자여야 한다.
경주할 자동차 이름을 입력하세요.(이름은 쉼표(,) 기준으로 구분)
pobi,woni,jun
시도할 회수는 몇회인가요?
5
실행 결과
pobi : -
woni :
jun : -
pobi : --
woni : -
jun : --
pobi : ---
woni : --
jun : ---
pobi : ----
woni : ---
jun : ----
pobi : -----
woni : ----
jun : -----
최종 우승자 : pobi, jun
객체 책임 : 아는 것 + 하는 것
아는 것 : 멤버 변수
- 사적인 정보에 관해 아는것
- 관련된 객체에 관해 아는것
- 자신이 유도하거나 계산할 수 있는 것에 관해 아는것
하는 것 : 멤버 함수나 매개변수(메세지 전달)
- 객체를 생성하거나 계산 수행하는 등의 스스로 하는것
- 다른 객체의 행동을 시작시키는 것
- 다른 객체의 활동을 제어하고 조절하는 것
race
)getCarByName()
)getMoveCount()
)run()
)createCarList(String[] carNames)
)cars
)moveCount
)maxDistance
)calculateMaxDistance()
)decideWinner()
)showWinner()
)execute()
)setMoveCount(int moveCount)
)name
)position
)move()
)printPosition()
) (position 수만큼 '-'로 표현)getUserInput()
)printInputCarGuideMessage()
)printInputNumberGuideMessage()
)printFinalWinnerBy(String[] winnerCarNames)
)printErrorMessage(Exception exception)
)car
)를 담는 cars
를 일급컬렉션으로 만들어줌우선 살아있는 문서를 만들자는 목표로 이번 미션을 진행했다
기능목록을 계속 수정하고 이 미션이 잘 들어나게끔 노력했다
그리고 함수크기를 최대한 작게하려고 노력했다
마지막으로 클래스를 책임,역할,협력에 따라 잘 분리하려고 애썼다
다음 미션이 마지막인데 더 극단적인 조건을 걸어서 진행해보자!