2017.8.21 - 포비

2017.8.21 - pobi 강의

수업 중 질문 정리

UI가 바뀌더라도 핵심로직은 바뀌면 안된다.

테스트 -> 프로덕션 코드 -> 리펙토링 (리펙토링 -> 설계개선)

테스트에 빨간불이 들어왔을 때만 프로덕션 코드를 고친다. (원칙!!)

프로덕션 코드만 계속 작성하게 되면 기술부채가 쌓이게 된다.

리펙토링을 할때 테스트가 빨간불이 되면 그것은 잘못된 것인가??

  • 리펙토링의 과정에 문제가 발생 한 것. 처음 프로덕션 코드가 테스트가 통과되면 리펙토링 과정중 테스트에 빨간불이 들어오면안된다.

자기를 바꿀때 핑계를 대면 안된다. 테스트를 먼저 하지 않는 것에 대한 핑계는 언제나 생길 수 있다.

포비가 짠 로또 생성기

Model, View, Controller 를 기준으로 나눌 수 있다. 사용자에게 입력을 받는 부분. LottoFormView - 돈, 당첨번호, 등등 모두 같이 입력 받음 사용자에게 출력을 해 주는 부분. Result 입력은 연산하는부분 - Model 영역

Main 메서드 - Controller

테스트도 무조건 다 하는게 아니라 핵심 로직부분에 테스트를 한다.(Model 부분에)

테스트코드를 만든다고해서 예상못한 상황에서 예외가 나오는것을 막을 수 는없다. 예외상황이 발생한 상황에 맞는 테스트를 추가해 준다.

학생 정보 시스템 - 클래스 메소드와 필드

필드란 무엇인가? - 인스턴스 변수

import static - 클래스 메서드를 클래스명을 선언하지 않고 메소드명으로만 실행 가능. ex) assertEquals - JUnit4

팩토리 메소드(factory method)

  • 클래스의 인스턴스를 만들어줌.
  • 생성자의 인자수와 똑같은 인자수가 필요로 한다.
  • 클래스의 생성자를 private로 막아버리고 자기 자신의 생성자를 만들어주는 메서드를 만드는 것.

Chess Game 구현

Comments