从Ruby移植到TypeScript后,我们的API问题解决了!

2020 年 4 月 30 日

从Ruby移植到TypeScript后,我们的API问题解决了!

我们之前将React 前端从JavaScript 移植到了TypeScript ,但将后端仍使用Ruby。最近,我们也将后端移植到了TypeScript。

本文最初发布于execute program 官方博客,经原作者授权由InfoQ 中文站翻译并分享。

使用Ruby 后端,我们有时会忘记一个特定的API 属性包含一个字符串数组,而不是一个字符串。有时我们更改了一个在多个地方引用的API,但却忘记了更新其中一个地方。在测试覆盖率不到100% 的系统中,这些都是动态语言常见的问题。(即使覆盖率百分之百,也仍然会发生这种情况;只是可能性小些。)

然而,在前端移植到TypeScript 之后,这类问题就消失了。我后端开发经验更丰富些,但我在后端犯的低级错误比在前端多。这说明移植后端是一个好主意。

在2019 年3 月,大约两个周的时间内,我将后端从Ruby 移植到了TypeScript。很顺利!我们在2019 年4 月14 日将其投入生产,当时处于封闭测试阶段。没出什么问题;用户都没有注意到。这是后端移植准备以及刚刚移植之后的时间线:

在移植期间,我编写了大量的自定义基础设施。我们有一个200 行的自定义测试执行器;120 行的自定义数据库模型库;一个更大的、横跨前后端代码的API 路由库。

原文链接:【 https://www.infoq.cn/article/aaMEQ4qIIbiEGDgNOr98 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2020 年 4 月 30 日 18:00 2305

评论

发布
暂无评论
发现更多内容

我画了35张图就是为了让你深入 AQS

一枝花算不算浪漫

AQS jdk源码

看完这篇,你也是字符编码大神(ASCII、Unicode、UTF-8、UTF-16、UTF-32)

Meandni

Java 面试 Unicode utf-8 utf-16

LeetCode 781. Rabbits in Forest

liu_liu

LeetCode

职涯思考

Kevin Z

职业 思考 工程师思维 硬件 工程师

Redis实现热卖商品排行榜

北漂码农有话说

redis

《零基础学 Java》 FAQ 之 5-如何在IntelliJ IDEA里配置JDK

臧萌

Java jdk intellij

不要做软件开发团队中打破窗户的那个人

程序员小岑

程序员 思考 感悟 软件开发 团队

识别代码中的坏味道(一)

Page

Java 面向对象 重构

“我XXXX,还能学编程吗?”

三号无名指

编程 工具 入门 转行程序员

工作原则:决策要基于数据的支撑

Janenesome

高效工作 思考 原则

Python3.6.1官方文档练习——初入江湖(二)

Sicolas Flamel

Leetcode 556. Next Greater Element III

隔壁小王

算法

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (八)好单元测试的特质

编程道与术

Java 编程 软件测试 TDD 单元测试

测试开发专题:spring-boot自定义返回参数校验错误信息

测试轩

Spring Boot 测试

LeetCode 513. Find Bottom Left Tree Value

liu_liu

LeetCode

Web3极客日报#141

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

玄铁重剑,我用过最贵重的键盘

池建强

ipad 苹果 键盘

修改网桥默认地址

奔跑的菜鸟

Docker

要做医生,不要做卖药的

Janenesome

高效工作 思考 沟通

大一到大三总结

迷羊

学习 经历

MySQL安全-审计

一个有志气的DB

安全 MySQ

Binlog2sql恢复误删除的数据

一个有志气的DB

MySQL 安全 数据

当你不被尊重的时候,才会想起去尊重别人

小天同学

人生 个人成长 感悟

十大经典排序算法总结

淡-蓝色

Java 算法 计算机基础 排序

香港科技大学与OSL海科签订无毒海洋防污技术独家授权协议

极客编

《零基础学 Java》 FAQ 之 6-Java里Bean这个名字怎么来的

臧萌

Java java-ee spring

webpack入门系列之二——插件使用及热更新打包

子铭

Web

程序员小白的个人思考

程序员小岑

程序员 职场 思考 感悟

Web3极客日报#129

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

VSCode 集成 Haskell 环境

liu_liu

vscode haskell hie Haskell Language Server

克服恐惧,勇于分享

孙苏勇

程序员 分享 工作

从Ruby移植到TypeScript后,我们的API问题解决了!-InfoQ