tsdk 诞生记

2019 年底,在学习了一段时间的 Golang 后端开发后,对于习惯了 JavaScript 语言,切换到 Golang 其实不是那么适应,所以为什么不直接用 node 写后端服务,于是中止了学习 Golang,开始投入精力学习 Node.js。
而且使用 Node.js 写后端还有以下好处:
- 前后端是 JavaScript 或者 TypeScript, 一些相同逻辑的代码可以互相共享
- 找到一种方式,将 Node 端写好的接口,生成前端的接口调用代码
这也是目前 tsdk 提供的核心功能。
但是也总是看到一些关于 Node 写后端的问题,首先是弄清楚 Node.js 写后端服务有哪些不足。当时整理的挑选出来主要有这些:
- 多人开发,代码稳定性(解决方案:TypeScript 强类型;单元测试;接口测试)
- JavaScript 本身又(相对)太过灵活,最后就是复杂性层层放大,代码越写越乱,(上 TypeScript)
- 大部分 Node.js 使用者是前端出身,缺乏服务端方面的经验。比如应用分层、分布式架构、海量并发、扩容缩容、计算与存储分离、
- 真正在服务端领域具备深功底的 Node.js 开发者凤毛麟角,要招一个同等服务端能力的 Node.js 开发比 Java 开发要难很多,把大型/复杂业务交给不专业的人,谁敢这么做?
第 1,2 点上 TypeScript 和 ESlint 遵守规范,不再是问题;
至于第 3,4 点,其实对于学习其他语言的人来说,没有经验一样会遇到,最关键的还是对基础的理解,从本质出发,以及代码测试,压力测试把关好。
🐣
当我翻看代码记录,中间有停顿,有重构,有陆陆续续的更新,仓库也换了 4 个1。始终也没有正式发布,如刺在喉。虽然已经有了优秀的 tRPC,我决定抽点时间,把这根刺拔掉。至于行不行有没有人用,这不是我要担心的。
Footnotes
-
刚开始叫 nsf (Node Server Framework);后来重新整理结构改名为 bsv 当时一些笔记 (opens in a new tab);将 express 重构为使用 fastify,再从 fastify 切换回来 express;最后改名为 tsdk,再到现在的 tsdk-monorepo ↩