정신적 복잡성 최소화 개요
사용자는 라이브러리의 함수와 추상화를 사용하기 전에 해당 라이브러리에 대한 정신적 모델을 빠르고 정확하게 구축해야 합니다. 이를 달성하는 가장 좋은 방법은 사용자가 마주하는 복잡성의 양을 최소화하는 것입니다.
정신적 복잡성을 최소화하기 위한 전략은 다음과 같습니다:
- 간결성: 가장 적은 구성 요소로 가장 많은 기능을 제공하는 API를 목표로 하며, 중복을 피하기 위해 기존 Kotlin 타입과 구조를 재사용하세요. 가능하다면, 소수의 핵심 추상화를 만들고 그 위에 추가 기능을 구축하세요.
- 가독성: 코드의 의도를 명확히 하기 위해 API를 선언적 스타일로 작성하세요. 새로운 이름을 만들어야 할 필요가 없는 한, 추상화의 이름을 문제 도메인에서 직접 선택하세요. 기본 데이터 타입을 의도된 목적으로 사용하세요. 핵심 기능과 선택적 기능을 명확히 구별하세요.
- 일관성: API의 모든 설계 측면에 대해 단일하고 명확한 접근 방식을 유지하세요. 객체 지향적이든 함수형이든, 균일한 명명 규칙, 오류 처리 전략 및 패턴을 사용하세요.
- 예측 가능성: 라이브러리가 ‘최소 놀람 원칙’을 준수하도록 설계하세요. 기본 설정이 가장 일반적인 사용 사례와 일치하도록 하여, 사용자가 가장 간단하고 짧은 코드로 작업을 완료할 수 있도록 보장하세요. 일관성과 예측 가능성을 유지하기 위해 라이브러리 확장을 명확하게 지정된 방식으로만 허용하세요.
- 디버그 용이성: 정보 추출 및 중첩된 함수 호출을 통한 탐색을 용이하게 하여 라이브러리가 사용자의 문제 해결을 돕도록 보장하세요. 예외가 발생할 때, 예외의 타입과 내용은 근본적인 문제와 일치해야 하며, 문제를 효과적으로 진단하고 해결하는 데 필요한 모든 세부 정보를 제공해야 합니다. 도메인 객체의 상태를 캡처하고 출력하는 것이 가능해야 하며, 모든 중간 표현을 볼 수 있어야 합니다.
- 테스트 용이성: 라이브러리뿐만 아니라 이를 사용하는 코드도 쉽게 테스트할 수 있도록 보장하세요.
다음 섹션에서는 Kotlin에서 이러한 전략을 구현하는 방법에 대한 더 자세한 정보를 제공합니다.
다음 단계
이러한 전략을 심층적으로 탐색하려면 다음 섹션에서 간결성에 대해 배우는 것부터 시작할 수 있습니다.