将以 API 为中心的应用程序的 rails 版本从 5.2
升级到 6.0
时要处理的主要事情包括配置调整和修复弃用警告。
在撰写本文时,Ruby v2.7.6
是 v3.0
之前的最新版本,如果应用程序使用依赖于 BigDecimal
的库,升级到 v2.7.6
可能会遇到重大问题。
我们知道,JavaScript 中 BigInt 类型是一种能够表示任意大整数的数据类型,当值超出 number
所能表示的范围时,这是一个很好的补充。然而,当你使用需要以 JSON
格式交换数据的应用程序时,BigInt
值就会成为一个问题,因为 JSON
默认情况下不知道如何序列化 BigInt
值,在这种情况下,一种解决方案是将 BigInt
转换为 string
,正如这篇文章所示。
继 将 socket.io 从 v2 升级到 v3 之后,本文是关于将 socket.io
及其相关软件包升级到撰写本文时的最新版本,唯一的设置更改似乎是来自 redis-adapater
和这次导入客户端 io
的方式(针对我们的特定用例)。
socket.io 及其相关库(例如 socket.io-redis-adapter 和 socket.io-redis-emitter)自 v3 以来在功能或行为方面发生了一些重大变化,这可能会在从 v2 迁移到 v3 时引发问题。本文列出了遇到的问题以及如何根据实际经验针对特定用例解决问题。
由于我发现自己现在越来越多地用 JavaScript 编写代码,无论是后端还是前端开发,所以我认为我应该至少认真考虑一下它,这是十多年来的第一次,以下是我在深入研究这种长期被忽视的编程语言时发现的有用的资源。
在共享的 Linux 机器或环境下工作时,有时需要隐藏或保护一些包含敏感信息的文件,幸运的是,有一个名为 GnuPG 的工具,大多数 Linux 发行版都已预装,我们可以方便地使用这个工具,这篇文章介绍了我们如何在一个非常基本的场景中轻松快速地使用它。
有没有想过 Ruby 的 defined?
是在哪里定义的?因为它看起来很像一个方法,所以你可能会尝试检查很多地方,例如:Object
、Kernel
、BasicObject
,甚至 Class
或 Module
,但最终却找不到它。好吧,直到你意识到这一点,答案才变得非常简单:defined?
不是一个方法,而是一个运算符或关键字。
将应用程序 rails 版本从 5.1
升级到 5.2
比从 4.2 升级到 5.0 或 从 5.0 升级到 5.1 要容易得多,需要处理的变化很少,并且很可能不会出现测试失败。