跳转到正文
工程

降低维护成本的 TypeScript 边界

TypeScript 最有价值的地方是描述边界,而不是装饰每一行代码。

在多站点工作区中,边界本身就是产品。应用需要自由表达自己的内容,共享软件包则需要约束,避免一个站点的假设泄漏到另一个站点的运行时中。

类型应明确约定

最有用的类型会回答这些问题:

  • 一篇文章需要哪些信息,才能在所有位置渲染?
  • 哪些字段只是可选的展示细节?
  • 允许哪些分类?
  • 共享组件可以作出哪些假设?

这些看似工程问题,其实是产品问题。

本地内容留在本地

如果组件只属于一个应用,就应留在该应用中。过早放入共享软件包会制造虚假承诺:这个抽象已经适合复用。

共享代码应由反复使用来证明其价值。

避免过度灵活的数据

依赖字符串约定的数据容易起步,却难以维护。固定分类虽然不那么灵活,但让导航、路由、标签和 RSS 输出更容易推理。

目标不是最大程度的可配置性,而是新增文章或页面时减少意外。

朴素也是一种功能

好的边界是朴素的,让下一次改动显得顺理成章。

可维护性通常意味着:系统会告诉你工作应该放在哪里。



相关文章

继续探索我们的思考。