본문 바로가기

Clean code4

Clean Code 요약해보기 (7) 시스템에 들어가는 모든 소프트웨어를 직접 개발하는 경우는 드물다. 어떤 식으로든 외부 코드를 우리 코드에 깔끔하게 통합해야만 한다. 이 장에서는 소프트웨어 경계를 깔끔하게 처리하는 기법과 기교를 살펴본다. 외부 코드 사용하기 인터페이스 제공자와 인터페이스 사용자 사이에는 특유의 긴장이 존재한다. 제공자는 더 넓은 환경에 적용시키고 싶어하고, 사용자는 자신의 요구에 집중하길 원하니까. 그 예로 java.util.Map을 살펴보자. Map은 굉장히 다양한 인터페이스로 수많은 기능을 제공한다. 이 Map을 코드 여기저기서 쓴다고 생각하자. 별 일 없는 경우가 많겠지만 Map의 첫 번째 메소드로 clear 메소드가 있다. 즉, 누구나 Map 사용자라면 Map 내용을 지울 권한이 있다. // 이런 코드를 많이 쓴.. 2022. 5. 26.
Clean Code 요약해보기 (6) 깨끗한 코드와 오류 처리는 연관성이 있다. 상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다. 여기서 좌우된다는 표현은 코드 기반이 오류만 처리한다는 의미가 아니다. 여기저기 흩어진 오류 처리 코드 때문에 실제 코드가 하는 일을 파악하기가 거의 불가능하다는 의미다. 오류 코드보다 예외를 사용하라 public class DeviceController { ... public void sendShutDown() { DevicedHandle handle = getHandle(DEV1); // 디바이스 상태를 점검한다. if (handle != DeviceHandle.INVALID) { // 레코드 필드에 디바이스 상태를 저장한다. retrieveDeviceRecord(handle); // 디바이스가 일시정.. 2022. 5. 18.
Clean Code 요약해보기 (5) 변수를 private으로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 그럼에도 왜 get/set 함수를 공개하여 외부에 노출할까? 자료 추상화 아래 두 코드를 보자. public class Point { public double x; public double y; } public interface Point { double getX(); double getY(); void setCartesian(double x, double y); double getR(); double getTheta(); void setPolar(double r, double theta); } 밑에 코드는 점이 직교좌표계를 사용하는지 극좌표계를 사용하는지 알 길이 없다. 그럼에도 인터페이스는 자료 구조를 명백.. 2022. 5. 11.
Clean Code 요약해보기 (3) 4. 주석 주석은 코드로 의도로 표현하지 못해 쓰는, 실패를 만회하기 위한 수단이다. 따라서 주석을 쓸 때는 코드로 의도를 표현할 방법이 없는지 곰곰이 생각해보자. 또한 주석이 변화하는 코드와는 달리, 혼자 부정확한 고아로 변하기도 한다. 진실은 한곳에만 존재한다. 바로 코드다! - 주석은 나쁜 코드를 보완하지 못한다 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 그래서 자신에게 이렇게 말한다. "이런! 주석을 달아야겠다!" 아니다! 코드를 정리해야 한다! - 코드로 의도를 표현하라! // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if (employee.flags & HOURLY_FLAG) && (employee.age > 65) if (employee.isEligibleFor.. 2022. 3. 16.
반응형