
워밍업 클럽 3기 BE 클린코드&테스트 - 2주차 발자국
📖 강의 요약
1⃣ 코드 다듬기
주석의 양면성
"좋은 주석"
우리가 가진 모든 표현 방법을 총 동원해 코드에 의도를 녹여 내고, 그럼에도 불구하고 전달해야 할 정보 가 남았을 때 사용
(메서드,변수,클래스) 네이밍에서 의도가 드러나면 주석을 대신 할 수 있을 것 같다.
변수와 메서드의 나열 순서
- 변수는 사용하는 순서대로 나열
- 공개 메서드 끼리 기준을 가지고 배치하는 것이 좋음
- 또한 공개 메서드의 배치에 따라서 비공개 메서드의 순서도 고려 해야 한다.
- 상태 변경 >> 판별 >= 조회
"결론"
나열 순서로도 의도와 정보를 전달 할 수 있다는 것
패키지 나누기
"결론"
패키지는 문맥으로써 정보를 제공할 수 있다.
2⃣ 기억하면 좋은 조언들
복잡하거나 엉망인 코드를 이해하려 할때 리팩토링 하면서 읽기
공백으로 단락 구분하기
필요한 적정 수준보다 더 높은 수준의 엔지니어링이 아닌지 생각해보기
Practical Testing: 실용적인 테스트 가이드
1⃣ 테스트는 왜 필요할까
커버할 수 없는 영역 발생, 경험과 감에 의존, 늦은 피드백, 유지보수 어려움
"올바른 테스트 코드"
자동화 테스트로 비교적 빠른 시간안에 버그를 발견할 수 있고, 수동 테스트에 드는 비용을 크게 절약할 수 있다.
가까이서 보면 느리지만 멀리서 보면 빠르다.
2⃣ 단위 테스트
작은 코드 단위를 독립적으로 검증하는 테스트
프레임 워크 : Junit / 라이브러리 : AsserJ
테스트 코드를 작성 할 때는 해피 케이스만 하는 것이 아니라 예외케이스도 함께 작성 해야한다.
3⃣ TDD : Test Driven Development4⃣
"TDD"
프로덕션 코드 보다 테스트 코드를 먼저 작성해 테스트가 구현 과정을 주독하도록 하는 방법론 = 테스트 주도 개발
선 테스트 - > 기능 구현
💡 미션
[섹션 7. 리팩토링 연습]의 "연습 프로젝트 소개" 강의를 보고, '스터디 카페 이용권 선택 시스템 프로젝트에서 지금까지 배운 내용을 기반으로 리팩토링을 진행해 봅시다'
미션 제출 url : https://github.com/2unmini/readable-code/tree/mission/day7
이번 미션에 대한 목표는 배운 내용+ 내가 알고 있는 내용을 가지고 생각해 봤을 때 이유가 충분 한지 판단하여 리팩토링을 해보았지만 다음 날 결과 비교를 해보았을 때는 많이 달랐지만 리팩토링 과제를 하는 동안 이유에 대해 많이 생각해보는 시간이였다.
💬 회고
👍 잘한 점
인프런 가입 이후로 처음으로 강의 완료율 100% 달성
일급 컬렉션을 적용하여 리팩토링 한점
😮💨 아쉬웠거나 보완하고 싶은 점
System.out.println()을 메소드를 추출할려고 생각했던 점이 아쉬웠다.
배운 내용을 다 적용하지 않고 상황에 맞게 적용해 보고 싶다.
📎출처
Readable Code: 읽기 좋은 코드를 작성하는 사고법
댓글을 작성해보세요.