clean code (15) 썸네일형 리스트형 [클린코드] CHAP 09 단위테스트 CHAPTER 09 단위 테스트 테스트코드의 중요성 테스트 코드는 실수를 바로 잡아 준다. 테스트 코드는 반드시 존재해야 하며, 실제 코드 못지않게 중요하다 테스트 케이스는 변경이 쉽도록, 코드에 유연성, 유지 보수성, 재 사용성을 제공하는 버팀목이 바로 단위 테스트 테스트 케이스가 없다면 모든 변경이 잠정적인 버그. 테스트 커버리지가 높을수록 버그에 대한 공포가 줄어든다. 지저분한 테스트 코드는 테스트를 안하니만 못하다. 테스트는 자동화 되어야 한다 테스트의 종류 테스트 피라미드 Unit Test 작성 테스트 라이브러리를 작성하자 JUnit5 + mockito 를 많이 사용한다. Test Double given-when-then 패턴을 사용하자 public void testGetPageHierarchy.. [클린코드] CHAP 08 경계 CHAPTER 08 경계 💡 시스템에 들어가는 모든 소프트웨어를 직접 개발하는 경우는 드물며, 따라서 어떤 식으로든 이 외부코드를 우리 코드에 깔끔하게 통합하는 것이 중요하다 외부코드 사용하기 인터페이스 제공자와 사용자 사이에 존재하는 특유의 긴장으로 인하여 시스템 경계에서 문제가 생길 소지가 많다. java.util.map 클래스를 이용하여 메소드의 파라미터를 생성하여 넘기면, 해당 메서드에서 필요하지 않은 기능까지 제공한다는 문제점 발생. 제네릭을 이용하여 map 객체에 저장해야 할 유형을 지정하여 클라이언트에게 책임을 일부 넘길 수 있지만, 코드의 의도가 분명히 드러나지 않아 꺠끗한 코드라 보기는 어렵다. public class Sensors { private Map sensors = new Has.. [클린코드] CHAP 07 오류처리 CHAPTER 07 오류 처리 여기저기에 흩어진 오류 처리 코드로 인해 프로그램의 논리를 이해하기 어려워진다면 클린 코드라 부를 수 없다. [ 오류 코드보다 예외를 사용하라 ] 매번 함수 호출 즉시 logger.log()로 오류 확인하기 보다, 오류가 발생하면 예외를 던지는게 논리와 오류 처리 코드가 섞이지 않으므로 깔끔하다. // 전 public class DeviceController{ ... public void sendShutDown(){ DeviceHandle handle = getHandle(DEV1); if(handle != DeviceHandle.INVALID){ retrieveDeviceRecord(handle); if(record.getStatus() != DEVICE_SUSPENDED.. 이전 1 2 3 4 5 다음