写代码写到逻辑层乱套,才是最让人头大的
搞工程落地最怕的就是业务逻辑和数据流混成一团浆糊。今天在重构那个 Candidate Tracker 项目的后端逻辑时,差点被自己之前的写法坑死。
下一篇
别再盲目参加那些没营养的技术大会了 →
之前写代码总觉得 TypeScript 只是给 React 组件套个类型,用来约束一下 Props 啥的,结果真到了处理后端 Domain 层的时候,才发现没用好类型系统简直是灾难。要是没有强类型约束,你根本分不清哪些字段是外部传进来的,哪些是 Service 层自己控制的。
我今天花了好长时间在调优这些 Service 和 Repository 的边界。为了不让数据流乱掉,我开始大量使用 Omit 和 Partial 来定义那些创建或更新操作的 Input 类型。这玩意儿逻辑非常清晰:外部请求只能改它该改的部分,剩下的字段权限必须死死锁在 Service 内部。
在处理异步数据加载时,我之前习惯性地把所有逻辑全塞进一个函数,导致依赖关系乱得一塌糊涂。后来改用分阶段加载,或者对于互不干扰的任务直接上 Promise.all,代码的可维护性瞬间提升了一个量级。
现在的架构逻辑是:Repository 只管去哪拿数据,Service 负责表达具体的业务行为。这种解耦虽然前期写起来累点,但起码现在我可以理直气壮地先去写测试用例了,哪怕后面要把 Seed 数据换成真实的数据库,逻辑层也不用推倒重来。
目前我决定按兵不动,先不碰 React 前端。如果底层的 Domain 和 Data Flow 自己都捋不顺,强行套上 UI 也就是在给以后埋雷。
下一步准备直接开搞测试,看看这套逻辑能不能跑通。