슬기로운개발생활

TDD, 클린 코드 with Java 15기 - 시작 본문

CS/Java

TDD, 클린 코드 with Java 15기 - 시작

슬기로운개발자 2022. 9. 20. 00:55

https://edu.nextstep.camp/

박재성(자바지기)님이 대표로 계신 NEXT STEP의 'TDD, 클린 코드 with Java' 수강 과정에 참여하게 됐다.

벌써 2년차 개발자지만 이때까지 테스트 코드를 잘 짜본적이 거의 없었던 것 같다. 테스트를 잘 못 짠다는 것은...개발자로서 자존심이 상할 일이 생길 수 있기에ㅋㅋ 이 기회에 그걸 잘 배우고 습득했으면 좋겠다는 생각으로 지원했다.

 

과정


8.5주 동안 4개의 미션을 진행하며 코드 리뷰를 받는 과정이다.

  1. 초간단 자동차 경주 게임
  2. 로또
  3. 사다리 타기
  4. 볼링 게임 점수판

이 강의에서는 교육 철학은 수강자를 '고생시키는 것'이라고 한다. 그래서 수강자의 행동의 변화를 만드는 것이 목적이라고 한다. 그리고 예상외로 끝까지 강의를 완주하는 수강생의 비율이 적다고 한다. 꼭 완주 하겠다...

 

시작하며...


이름 짓기 정말 어렵다...

여기서는 클래스 이름을 짓는 방식을 2가지 말해주고 있다.

  1. 객체가 무엇을 하는지(what he does)를 살펴본 후 기능에 기반해서 이름을 짓는 방법 -> 본인이 사용하던 방법
  2. 클래스의 객체들이 무엇인지(what he is)에 기반해 이름을 짓는 방법

이 강의에서는 1번이 많이 사용하지만 안좋은 방식, 2번이 좋은 방식이라고 설명한다. 왜냐하면 2번은 객체를 능동적인 유기체라고 생각하면서 설계를 하는 방법이기 때문이다.

TDD

프로그래밍 의사결정과 피드백 사이의 간극을 의식하고 이를 제어하는 기술.
TDD의 아이러니 중 하나는 테스트 기술이 아니라는 점.
-> 이는 분석 기술이며, 설계 기술이기도 하다.


TDD = Test First Development + Refactoring
단순히 서비스 코드 개발전에 테스트 코드를 먼저 작성하는 것이 아닌 리팩토링 내용까지 같이 있는 것이다.

 

PR 피드백


1단계: https://github.com/next-step/java-racingcar/pulls?q=is%3Apr+author%3Amyabcc17 

 

GitHub - next-step/java-racingcar: 자동차 경주용 게임을 관리하는 저장소

자동차 경주용 게임을 관리하는 저장소. Contribute to next-step/java-racingcar development by creating an account on GitHub.

github.com

2단계: https://github.com/next-step/java-lotto/pulls?q=is%3Apr+author%3Amyabcc17 

 

GitHub - next-step/java-lotto: 로또 게임 구현을 관리하는 저장소

로또 게임 구현을 관리하는 저장소. Contribute to next-step/java-lotto development by creating an account on GitHub.

github.com

(11/1 +) 구현은 쉬운데 잘 짜기란 너무 생각할게 많다....새로운 관점에서 많이 배우고 있는것 같다.

Comments