Rails を 5.2 から 6.0 にアップグレードする

API 中心のアプリケーションの Rails バージョンを 5.2 から 6.0 にアップグレードする際に処理する必要がある主な事項には、構成のチューニングと非推奨の警告の修正が含まれます。

Ruby 2.7.6 にアップグレード

Ruby v2.7.6 は、この記事の執筆時点では v3.0 より前の最新バージョンであり、アプリケーションが BigDecimal に依存するライブラリを使用している場合、v2.7.6 にアップグレードすると重大な問題が発生する可能性があります。

JSON stringify で BigInt を処理する方法

ご存知のとおり、BigInt 型は、任意の大きな整数を表すことができるデータ型として JavaScript で使用できます。これは、値が number で表せる範囲を超える場合の補助として役立ちます。ただし、JSON 形式でデータを交換する必要があるアプリケーションで作業する場合、JSON はデフォルトで BigInt 値をシリアル化する方法を認識しないため、BigInt 値が問題になります。このような場合、1 つの解決策は、この投稿で示されているように、BigIntstring に変換することです。

socket.io を v3 から v4 にアップグレードする

socket.io を v2 から v3 にアップグレード に続き、この投稿では、socket.io と関連パッケージをこの投稿の執筆時点での最新バージョンにアップグレードすることについて説明します。設定の変更は、redis-adapater と、今回はクライアント io をインポートする方法のみのようです (特定のユースケースの場合)。

socket.io を v2 から v3 にアップグレードする

socket.iosocket.io-redis-adaptersocket.io-redis-emitter などの関連ライブラリは、v3 以降、機能または動作にいくつかの重大な変更があり、v2 から v3 への移行中に問題が発生する可能性があります。この投稿では、実際の経験に基づいて、特定のユースケースで発生した問題とその解決方法をリストします。

JS リソース

最近はバックエンド開発やフロントエンド開発に関係なく、JavaScript でコードを書く機会が増えているので、少なくとも 10 年以上ぶりに JavaScript を真剣に検討してみるべきだと考えました。ここでは、長い間見過ごされてきたこのプログラミング言語を詳しく調べる際に役立つリソースを紹介します。

Linux で gpg を使用してファイルを保護する方法

共有 Linux マシンまたは環境で作業する場合、機密情報を含むファイルを非表示にしたり保護したりする必要がある場合があります。幸いなことに、ほとんどの Linux ディストリビューションに既にプリインストールされている GnuPG というツールがあり、このツールを便利に利用できます。この投稿では、非常に基本的なシナリオでこのツールをいかに簡単かつ迅速に使用できるかについて説明します。

Ruby の `defined?` はどこで定義されていますか?

Ruby の defined? がどこで定義されているのか疑問に思ったことはありませんか? メソッドのように見えるため、ObjectKernelBasicObject、さらには ClassModule など、さまざまな場所を調べようとするかもしれませんが、どの場所でも見つけることができません。まあ、気付くまではそうですが、答えは非常に簡単です。defined? はメソッドではなく、演算子またはキーワードです。

Rails サーバーを Unicorn から Puma に切り替える

Rails アプリでは、一般的に使用されている 2 つの一般的な Web サーバーのうち、unicorn はワーカー プロセスでリクエストを処理しますが、puma はプロセス ワーカーとスレッドの両方で処理できます。したがって、unicorn から puma に切り替えると、同時実行性が向上するだけでなく、メモリ使用量も削減できます。さらに、rails 5.0 以降、使用されるデフォルトの Web サーバーは puma です。

Rails を 5.1 から 5.2 にアップグレードする

アプリケーション Rails のバージョンを 5.1 から 5.2 にアップグレードするのは、4.2 から 5.05.0 から 5.1 よりもはるかに簡単です。処理する変更は非常に少なく、テストが失敗する可能性も低くなります。