SynthKernel 개요
SynthKernel은 효율적이고 깔끔하며 모듈화된 코드를 작성할 수 있도록 돕는 TypeScript 소프트웨어 아키텍처입니다.
SynthKernel의 일반적인 사용 방식은 모듈 로더 클래스와 모듈 클래스로 구성됩니다:
- 모듈 로더 클래스는 모듈의 생명주기를 관리하고, 타입을 오케스트레이션하며, 애플리케이션 로직의 외부 퍼사드 역할을 합니다.
- 모든 모듈 클래스는
BaseModule클래스를 확장하며, API를 정의하고 실제 로직을 실행하며, 로더 클래스를 확장하고 의존성 주입을 통해 서로 연결됩니다. - 타입은 제네릭 오케스트레이션을 통해 해결됩니다.
- 모듈은 로더에 구성되어 APP을 형성합니다. 모듈 로더는 상위 로더의 모듈이 될 수도 있습니다.
- 백엔드 서비스, 복잡한 자동화, CLI 애플리케이션, 캔버스 렌더링 엔진을 포함하되 이에 국한되지 않는 거의 모든 사용 사례에 적용할 수 있습니다.
파일 시스템 규칙
SynthKernel은 트리 패턴으로 구조화되어야 합니다.
로더는 기본 모듈 및 모든 직속 모듈과 함께 한 폴더에 평평하게 배치되어야 합니다:
- 로더를 담는 파일은
index.ts로 명명합니다. - 기본 모듈은
BaseModule.ts로 명명합니다. - 타입은
types.ts로 명명합니다. - 모든 모듈은
(PascalCase 형식의 모듈 이름).ts로 명명합니다. - 다른 파일의 이름에는 제한이 없습니다.
과도하게 비대해진 모듈을 새로운 로더-모듈 구조로 전환한 후, 해당 모듈을 위와 동일한 요구 사항을 가진 폴더로 만드는 것이 표준 관행입니다.
사용 시기
- 개발 초기 단계에서, 로직에 대한 실마리는 있지만 아직 코드를 작성하지 않은 경우.
- 명확한 아키텍처 규칙이 없는 경우.
- 일부 큰 모듈을 분할하거나 프로젝트를 모듈화하려는 리팩토링 중.
- 새로운 기능을 추가하면서 새 모듈을 만들고 SynthKernel을 이해하려는 경우.
사용하지 말아야 할 시기
- 아키텍처를 생성하거나 변경할 의도가 없는 경우.
- 자체 규칙이 있는 웹 UI를 개발 중인 경우.
- 고전적인 모놀리스가 더 편리한 간단한 프로젝트(200줄 미만)를 작업 중인 경우.