한줄코딩 발표 210605
Clean Code 7장 오류 처리
오류 코드보다 예외를 사용
public class DeviceController {
...
DeviceHandle handle = getHandle(DEV1);
if (handle != DeviceHandle.INVALID) {
retrieveDeviceRecord(handle);
if (record.getStatus() != DEVICE_SUSPENDED) {
closeDevice(handle);
} else {
logger.log("Device suspended. Unable to shut down");
}
} else {
logger.log("Invalid handle");
}
...
}
try catch 작성시 테스트 권장하는 방법
public class DeviceController {
...
DeviceHandle handle = getHandle(DEV1);
if (handle != DeviceHandle.INVALID) {
retrieveDeviceRecord(handle);
if (record.getStatus() != DEVICE_SUSPENDED) {
closeDevice(handle);
} else {
logger.log("Device suspended. Unable to shut down");
}
} else {
logger.log("Invalid handle");
}
...
}
: 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다. 그러면 자연스럽게 try 블록의 트랜잭션 범위부터 구현하게 되므로 범위 내에서 트랜잭션 본질을 유지하기 쉬워진다.
미확인 예외를 사용해라.
ex) 최하위 호출함수에서 확인 예외를 던진다면
미확인 예외는 컴파일단계에서 확인되지 않기 때문에 명시적으로 처리하지 않아도 된다.
따라서 상위 단계에서 수정이 필요 없다.
(반면, 확인 예외는 컴파일 시점에서 확인되어 반드시 처리해야 한다. 따라서 최하위)
null을 반환하거나 전달하지마라.
말 그대로.
Clean Code 8장 경계
외부코드 사용하기.
외부코드를 여기저기 넘기지 말라..!
-> 대안 : 외부코드를 사용하는 클래스를 정의하여 사용하면, 설계 규칙과 비즈니스 규칙을 강제할 수 있다.
학습테스트.
곧바로 우리쪽 코드를 작성해 외부 코드를 호출하는 대신
먼저 간단한 테스트 케이스를 작성해 외부코드를 익히면 어떨까?
짐 뉴커크는 이를 학습 테스트라 부른다.
Clean Code 9장 단위 테스트
TDD 법칙 세 가지
- 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
- 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
- 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.
테스트 당 assert 하나
테스트 당 개념 하나
F.I.R.S.T
Fast
Independent
Repeatable
Selt-validating
Timely
참고자료.
clean code 7~9장
Author And Source
이 문제에 관하여(한줄코딩 발표 210605), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@blueskyi/한줄코딩-발표-210605저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)