干净的纯 Typescript 应用程序架构的资源

Resources for clean pure Typescript app architecture

我需要创建一个使用 API 连接到数据库的纯 Typescript 应用程序。我正在寻找一个尽可能干净的架构示例。我希望我的应用程序:

这是我想象中的草图

主要问题是,到目前为止,我主要是在 React 中创建这些东西,现在我不得不使用普通的 Typescript。我已经陷入糟糕的架构陷阱太多次了,希望这个能成为最干净的一个。

有什么好的资源吗?可能简单干净的应用程序代码示例(没有图形库,只有简单的数据表示)就是我要找的。

我倾向于使用这种方法:https://morphological.wordpress.com/2011/08/29/5-layer-architecture/

它不是特定于 Typescript 的,但应该很适合它。我假设“纯”和“干净”是指关注点分离 - 包括使用依赖注入以确保您在未来具有灵活性。

下面层的使用是指代码库中的逻辑分离。

将其应用于您的情况:

  • UI 和不同层中的应用程序逻辑。
  • 公共层中的 Dumb DTO/POCO 提供了整个系统的公共词汇表。这将 包括特定于任何数据库或 API 提供程序的数据映射相关对象 - 这些对象将存在于有问题的 data/API 提供程序中。
  • 逻辑层通过抽象层表示的代码接口与数据库、APIs、外部组件等接口。
  • 每个“提供者”(数据库,API,随便什么)在抽象层内由一个或多个接口定义(注意 Interface Segregation Principle)。
  • 然后每个提供者可以有一个或多个具体实现,这些实现在运行时使用某种依赖注入机制加载。

图形组件与其他提供程序一样被抽象出来。原因是:

  • 他们(提供者)都提供逻辑层想要 consume/interact 的“东西”(数据/功能)——但我们希望保持这些松散耦合。
  • 它们都是(或可能是)专门的 - 具有各种依赖性,我们希望尽可能远离代码库的其余部分。

如果您公开(而不是消耗)一个面向外部的 API,则有可能将其放在表示层中(逻辑上位于 UI 旁边),但事实并非如此看起来你需要那个。

依赖注入/反转可以像您希望的那样简单或复杂。