한줄코딩 발표 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 작성시 테스트 권장하는 방법

: 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다. 그러면 자연스럽게 try 블록의 트랜잭션 범위부터 구현하게 되므로 범위 내에서 트랜잭션 본질을 유지하기 쉬워진다.

미확인 예외를 사용해라.

ex) 최하위 호출함수에서 확인 예외를 던진다면

미확인 예외는 컴파일단계에서 확인되지 않기 때문에 명시적으로 처리하지 않아도 된다.
따라서 상위 단계에서 수정이 필요 없다.
(반면, 확인 예외는 컴파일 시점에서 확인되어 반드시 처리해야 한다. 따라서 최하위)

null을 반환하거나 전달하지마라.

말 그대로.

Clean Code 8장 경계

외부코드 사용하기.

외부코드를 여기저기 넘기지 말라..!
-> 대안 : 외부코드를 사용하는 클래스를 정의하여 사용하면, 설계 규칙과 비즈니스 규칙을 강제할 수 있다.

학습테스트.

곧바로 우리쪽 코드를 작성해 외부 코드를 호출하는 대신
먼저 간단한 테스트 케이스를 작성해 외부코드를 익히면 어떨까?
짐 뉴커크는 이를 학습 테스트라 부른다.

Clean Code 9장 단위 테스트

TDD 법칙 세 가지

  1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다.
  2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다.
  3. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다.

테스트 당 assert 하나

테스트 당 개념 하나

F.I.R.S.T

Fast
Independent
Repeatable
Selt-validating
Timely

참고자료.

clean code 7~9장

https://velog.io/@lychee/Clean-Code-7%EC%9E%A5-%EC%98%A4%EB%A5%98-%EC%B2%98%EB%A6%AC#%F0%9F%A7%B7-7%EC%9E%A5--%EC%98%A4%EB%A5%98-%EC%B2%98%EB%A6%AC

좋은 웹페이지 즐겨찾기