[강의]의식적 연습 & TDD

金秀·2021년 7월 9일
0

클린코드

목록 보기
1/4

FE기본기로 TDD를 조금씩 연습해보라는 피드백을 읽고
1차 실행으로 강의를 들었다.

https://www.youtube.com/watch?v=cVxqrGHxutU
의식적인 연습으로 TDD, 리팩토링 연습하기

1.의식적 연습

-comfort zone 벗어나기

2.(TDD보다)단위테스트 먼저 연습하기

-바로 TDD 실행하는 건 필패(구현하기 쉽거나 어려운 코드가 함께 있음)
-쉬운 토이프로젝트 or 작은 것부터 연습 or 전개해본다.

-실패하는 테스트 만들고 -> 컴파일러 성공시키기 -> refactoring
(첫 2단계까지만(test fail -> test pass) 연습해도 Okay)
-2단계까지 충분히 연습이 되면(테스트 코드먼저 만들기) refactoring 하기


3.리팩토링 연습

Level 1

1.메서드 분리 잘하기(한가지 일만 하도록!)


2.들여쓰기 원칙 잘 세우기
3.else 쓰지 않도록 노력하기 - 코드가 짧아지고, 가독성이 좋다
4.로컬변수가 필요한지 고민해본다.
5.compose method 패턴적용: 추상화레벨을 같게 만든다...(??!##!)
연습할 때는 극단적으로해야 insight가 생긴다.

###읽기 좋은 메서드란

전체적인 메서드 로직이 한눈에 보이고,
구체적인 내용은 내려가면서 진행됨(오른쪽)

[주의사항]
리팩토링은 1-5까지 한번에 하지 말고,
단계적으로 하나씩만 연습 후 익숙해지면 다른 걸 연습하기
요구사항이 명확한 코드 연습하기
의존관계가 없는 걸로 연습하기(데이타베이스 X 언어로만 하는 것)
-로직이 있는 예제로 (구현 난이도 있고 충분히 insight 줄 수 있음)

Level 2
객체지향 연습

6.객체지향 설계 연습을 한다. 메서드를 클래스로 전환
7.정량적으로 정해놓고 연습하기
e.g) 일급콜렉션을 쓴다, 3개이상의 인스턴트 변수를 가진 클래스 쓰지 않는다.
(**마이 코멘트! 자바 프로그래밍 기준이랑 JS개념과 다른듯)

Level 3
의존관계 추가를 통한 연습

웹, 모바일 UI, 데이터 베이스와 같은 의존관계를 추가하기(현업레벨)

lv1과 lv2의 과정을 잘 소화했으면 테스트하기 쉬운/어려운 코드 분리하는 insight
갖게 될(...까?)

Level 4
갈수록 유지보수 잘하는 개발자가 더 인정받음

추천학습서

1.The ThoughtWorks Anthology
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788992939249&orderClick=LAG&Kc=

2.클린코드
https://search.kyobobook.co.kr/web/search?vPstrKeyWord=%25ED%2581%25B4%25EB%25A6%25B0%2520%25EC%25BD%2594%25EB%2593%259C&orderClick=LAG

  • 메서드를 분리하고 클래스를 분리해서 읽기 좋은 코드를 만들어라

To-do List

1.Jest Crash Course - Unit Testing in JavaScript
https://www.youtube.com/watch?v=7r4xVDI2vho
내 최애 브래드님 crash 코스 있네용

Reference 자료

TDD https://mangkyu.tistory.com/143
TDD https://imasoftwareengineer.tistory.com/88
클린코드 https://mangkyu.tistory.com/149?category=761303

profile
기록하기

0개의 댓글