프로그래머로서 우리의 목표는 주어진 도메인 모델과 비즈니스 로직에 대한 훌륭한 추상화를 제공하는 것입니다. 그러나이 추상화는 어디에서 멈추어야합니까? 추상화 와 모든 이점 (유연성, 변경 용이성 등) 과 코드 및 이해 의 이점 을 이해하는 것 사이 의 균형 을 맞추는 방법 .
나는 지나치게 추상화 된 코드를 작성하는 경향이 있다고 생각하며 그것이 얼마나 좋은지 모르겠다. 나는 종종 두 가지 부분으로 구성된 일종의 마이크로 프레임 워크처럼 작성하는 경향이 있습니다.
- 마이크로 프레임 워크에 연결되는 마이크로 모듈 :이 모듈은 단일 장치로 이해, 개발 및 유지 관리가 쉽습니다. 이 코드는 기본적으로 요구 사항에 설명 된 기능을 실제로 수행하는 코드를 나타냅니다.
- 연결 코드; 이제 여기에 문제가 있다고 생각합니다. 이 코드는 때때로 매우 추상화되어 처음에는 이해하기 어렵 기 때문에 복잡해집니다. 이것은 순수한 추상화, 사실의 기초, 제시된 코드에서 수행되는 비즈니스 로직이라는 사실 때문에 발생합니다. 이러한 이유로이 코드는 일단 테스트되면 변경되지 않을 것입니다.
이것이 프로그래밍에 대한 좋은 접근입니까? 그것은 많은 모듈에서 변경 코드를 매우 조각화하고 이해하기 쉽고 매우 쉽게 변경하지 않는 코드를 추상화 POV와 매우 복잡합니까? 모든 코드가 균일하게 복잡해야합니다 (즉, 코드 1이 더 복잡하고 상호 연결되어 있고 코드 2가 더 간단해야 함). "코드 변경"은 이해, 디버깅, 변경이 매우 쉽고 "링크 코드"는 매우 어렵습니다.
참고 : 이것은 코드 가독성에 관한 것이 아닙니다! 1과 2의 코드는 모두 읽을 수 있지만 2의 코드는 더 복잡한 추상화가 제공되고 코드 1은 간단한 추상화가 제공됩니다.