Communitygithub.com

hesprs/synthkernel

🧩 一个用于 TypeScript 模块化单体开发、类型安全且可组合的架构。

synthkernel 是什么?

SynthKernel 是一个专为 TypeScript 设计的软件架构,旨在帮助开发者编写高效、清晰和模块化的代码。其核心理念由模块加载器类和模块类组成:加载器负责管理模块生命周期、编排类型并作为应用逻辑的门面;所有模块继承自 `BaseModule`,定义 API、执行实际逻辑、增强加载器并通过依赖注入相互连接。类型通过泛型编排解析,模块组合到加载器中形成应用,加载器本身也可以是父加载器的模块。支持后端服务、复杂自动化、CLI 应用和 Canvas 渲染引擎等多种场景,特别适合在开发初期或重构时建立模块化架构。文件系统采用树形结构,约定将加载器及其直接模块平放在同一文件夹中。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add hesprs/synthkernel

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

关于 SynthKernel

SynthKernel 是一个 TypeScript 软件架构,帮助您编写高效、清洁和模块化的代码。

SynthKernel 的典型实践包括一个模块加载器类和多个模块类:

  • 模块加载器类管理模块生命周期,编排类型,并在应用逻辑表面充当门面。
  • 所有模块类继承自 BaseModule 类,它们定义 API、执行实际逻辑、增强加载器类并通过依赖注入相互连接。
  • 类型通过泛型编排解析。
  • 模块组合到加载器中形成一个应用。模块加载器也可以是父加载器的一个模块。
  • 它适用于几乎所有的用例,包括但不限于后端服务、复杂自动化、CLI 应用和 Canvas 渲染引擎。

文件系统约定

SynthKernel 应按照树形结构组织。

一个加载器连同所有直接模块应平放在同一个文件夹中:

  • 容纳加载器的文件应命名为 index.ts
  • 基础模块命名为 BaseModule.ts
  • 类型命名为 types.ts
  • 所有模块命名为 (帕斯卡命名的模块名).ts
  • 其他文件的命名没有限制

标准实践是将一个过于臃肿的模块转换为新的加载器-模块结构,然后只需将该模块转换为一个文件夹,满足上述相同要求。

何时使用

  • 在开发的早期阶段,当你对逻辑有线索但尚未编写任何代码时。
  • 你没有清晰的架构约定。
  • 在重构期间,当你打算拆分一些大型模块或使项目模块化时。
  • 当你正在添加新功能并考虑创建新模块时,想要了解 SynthKernel。

何时不使用

  • 你不应该创建或更改架构。
  • 你正在开发具有自身约定的 Web UI。
  • 你正在为简单项目(代码行数 < 200)服务,此时经典单体结构更加方便。

操作

  • 如果你从零开始实现 SynthKernel 或重构现有代码以采用 SynthKernel,请前往 开始。
  • 如果你正在添加新模块或拆分模块,请前往 维护。
  • 你可以在 ./example 中找到标准实践的示例。

相关技能