자료 구조
디미터의 법칙 ( Law Of Demeter )
- 어떤 객체가 다른 객체에 대해 지나치게 많이 알다보니, 결합도가 높아지고 좋지 못한 설계를 야기한다는 것을 발견했다.
- 이를 개선하고자 객체에게 자료를 숨기는 대신 함수를 공개하도록 하였는데, 이것이 바로 디미터의 법칙이다.
- 다른 객체가 어떠한 자료를 갖고 있는지 속사정을 몰라야 한다는 것을 의미한다.
자료 전달 구조체 (Data Transfer Object)
- 자료 전달 구조체는 자료 전달의 목적만을 위해 써라
- 만약 자료 전달 구조체에 비즈니스 규칙 메서드를 추가한다면 잡종 구조체로 전락한다
- 객체는 동작을 공개하고 자료를 숨겨라
- 객체는 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기는 쉬우나 기존 객체에 새 동작을 추가하기에는 어렵다
- 자료 구조는 자료 그대로를 노출한다. 그래서 기존 자료구조에서 새 동작을 추가하기는 쉬우나 기존 함수에 새 자료 구조를 추가하기는 어렵다
새로운 자료 타입을 추가하는 유연성이 필요하면 객체가 더 적합하다.
다른 경우로 새로운 동작을 추가하는 유연성이 필요하면 자료 구조와 절차적인 코드가 더 적합하다.
우수한 프로그래머라면 편견없이 이 사실을 이해하고 직면한 문제에 최적인 해결책을 선택한다.
오류 처리
프로그램은 항상 잘못될 여지를 소지하고 있다. 이를 바로잡을 책임은 프로그래머에게 있다.
try-catch-finally 부터 작성하라
- try catch는 트랜잭션과 비슷하다.
(Unchecked Exception) 미확인 예외를 사용하라
예외에 의미를 제공하라
호출자를 고려해 예외 클래스를 정의하라
정상 흐름을 정의하라
Null을 반환하지 마라
- 한줄 건너 한줄 null을 체크하는 코드는 무수히 많다.
- null을 반환할 상황이라면, 빈객체 또는 빈 구조체, 빈 자료 구조를 만들어 반환하라
null을 전달하지 마라
경계
reference
- 로버트 C. 마틴 지음, 박재호·이해영 옮김 『 Clean Code 』, 프로그램 프로그래밍 프로그래머, 인용.
- https://mangkyu.tistory.com/147