2주차 피드백
1. 기능목록을 너무 상세히 적지 않는다
- 예외상황 기록
- 수정해나가면서 추가
2. 매직넘버 등 상수 처리
3. 축약 x
4. 함수 라인에 대한 기준
- 주석 및 공백도 라인이다..
5. 객체에 메시지를 보내라
6. 필드(인스턴스)의 수를 줄이기 위해 노력한다
7. 비즈니스 로직과 UI를 분리해라
2주차 피드백에서 궁금했던 내용들이 나와 속이 좀 시원했다...
기능목록을 어떻게 쓰는지 궁금했었는데 나름 괜찮게? 한 것 같다
근데 예시를 보아도 도메인안의 패키지별로 나눠서 기능목록 작성한 것들이 이뻐보인다.. 뭐가 더 좋은지 궁금하다
또 비즈니스와 UI 로직 분리도 알게되었다!
이번 미션은 좀 더 큼직한 미션으로 클래스간의 연결이 목표다
그리고 미션 요구사항보다 좀 더 극단적인 연습을 해보려고 노력했다
(객체지향생활체조원칙, 들여쓰기 1이하로 해보자, 함수길이 8이하로 해보자, 필드 수 1개 이하 등등)
반환되는 동전이 최소한이 되는 자판기를 구현한다.
IllegalArgumentException
를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 해당 부분부터 다시 입력을 받는다.[콜라,1500,20];[사이다,1000,10]
500원 - 0개
100원 - 4개
50원 - 1개
10원 - 0개
100원 - 4개
50원 - 1개
[ERROR] 금액은 숫자여야 합니다.
자판기가 보유하고 있는 금액을 입력해 주세요.
450
자판기가 보유한 동전
500원 - 0개
100원 - 4개
50원 - 1개
10원 - 0개
상품명과 가격, 수량을 입력해 주세요.
[콜라,1500,20];[사이다,1000,10]
투입 금액을 입력해 주세요.
3000
투입 금액: 3000원
구매할 상품명을 입력해 주세요.
콜라
투입 금액: 1500원
구매할 상품명을 입력해 주세요.
사이다
투입 금액: 500원
잔돈
100원 - 4개
50원 - 1개
한 메서드에 오직 한 단계의 들여 쓰기만 한다.
else 예약어를 쓰지 않는다.
모든 원시 값과 문자열을 포장한다.
한 줄에 점을 하나만 찍는다.
줄여 쓰지 않는다(축약 금지).
모든 엔티티를 작게 유지한다.
3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
일급 컬렉션을 쓴다.
getter/setter/프로퍼티를 쓰지 않는다.
함수길이를 10줄이하로
클래스 전체크기 50줄이하로
줄쳐지지 않은 부분은 지켜지지 않은 것 같다...!
쉽게 할 수 있을 줄 알았는데 어떻게 해야할지 막막한 것들이 많았다
앞으로 하나씩 해나가면서 어떻게 하는지 학습해야겠다
하면서 좀 어려웠다...그래서 더 열심히 해야겠다는 생각이 들었고
위 연습들을 바탕으로 하나씩 진행하다보니 내가 이런 코드를 만들 수 있다는 것을 느낄 수 있어서 되게 재밌게 할 수 있었다
이제 최종 미션 테스트가 남아있는데 잘 준비해서 합격하고 싶다