こんにちは!マイクです。今日は2025年1月17日、水曜日ですね!今日はZennで今日トレンドの記事を紹介しますよ!
さて、前回紹介した記事についてですが、今日は特に触れずにさっそく今日の内容に移りたいと思います!
今日紹介する記事の本数は、なんと5本です!それでは、早速最初の記事からいきましょう。
1つ目の記事は「作って意地でも理解する HTTP + WebSocketサーバーの仕組み」です。この記事では、HTTPとWebSocketサーバーの基本的な仕組みを学ぶために、自作サーバーを作成するプロセスが紹介されています。まずはHTTPサーバーから始まり、GETメソッドのリクエストを処理し、ファイルを返す機能を実装します。リクエストのパースはRFC9112に基づいて行い、リクエストラインやヘッダーフィールドの解析に注目しています。
続いてWebSocketサーバーでは、クライアントからのハンドシェイクを受け付け、双方向通信を行うためのフレームのやり取りを実装します。ハンドシェイクはHTTPリクエストの形式を使い、RFC6455に従って行います。サーバーは、クライアントからメッセージを受信し、飾り付けて返したり、定期的にpingフレームを送信したりする機能も持っています。最終的には、実装したサーバーがブラウザと通信できる様子を確認し、HTTPやWebSocketの理解を深めることができます。
次に、2つ目の記事は「Google WorkspaceのAIアドオンが廃止されて基本プランに組み込まれたので変更点を解説します」です。2025年1月にGoogle WorkspaceのAI機能「Gemini for Google Workspace」が廃止され、これに伴いAI関連機能が基本プランに統合されることが発表されました。この変更により、Geminiで提供されていたサービスが新たに通常プランに移行し、AI機能が増加することで基本プランの値上げが行われることになります。
元々Geminiは4つのアドオンから成り立っていましたが、これらの機能は新プランの一部として提供されます。一部の機能はEnterpriseプラン専用となるため、特定の機能を利用していたビジネスプランユーザーは、プランのアップグレードが必要になる可能性があります。新しいプランの料金は2025年3月17日から適用され、特に小規模組織には特例が設けられています。全体として値上げが発表されていますが、旧アドオン価格を考慮すると競争力のある価格で評価されています。
それでは、3つ目の記事に移ります。「Rubyで書いたゲームボーイエミュレータをブラウザ上で動くようにした」です。この記事では、自作のRuby製ゲームボーイエミュレータ「Ruby Boy」をWebAssemblyを使ってブラウザ上で実行可能にする方法が解説されています。システムはメインスレッドとワーカースレッドで構成され、Ruby BoyをWasmパッケージ化した「rubyboy.wasm」がゲームエミュレーションを担当します。
Wasm化は2つのステップから成り立っており、まずCRubyをWasmにビルドして「ruby.wasm」を作成し、次にこの「ruby.wasm」にRubyプログラムをパッケージ化して「rubyboy.wasm」を生成します。ブラウザ上での動作は、worker.js内でRuby Boyのコードを実行し、ROMデータの送信とフレームデータの受信を行います。ゲーム画面の描画は、worker.jsがVM内でRuby BoyのExecutorメソッドを実行し、その結果をメインスレッドへ送信することで実現されます。最後に、Rubyプログラムをブラウザで動かす楽しさを強調し、進化するRuby.wasmの可能性を示唆しています。
続いて、4つ目の記事は「新時代のアプリケーション開発~bolt.newとGitHub Copilot Workspaceを触ってみた~」です。2024年12月にOpenAIが発表した新モデル「o3」以降、エンジニアの開発スタイルが変わりつつあります。この記事では「Bolt.new」と「GitHub Copilot Workspace」という2つのツールを比較し、同じアプリケーションを作成してみました。
「Bolt.new」は、技術スタックを指定するだけでアプリが生成でき、即座に結果を確認できるオンラインIDEです。一方、「GitHub Copilot Workspace」はAIとタスクを中心に共同開発を行うサービスです。実際にPomodoroTimerを作成した結果、Bolt.newの方が精度高く迅速なフィードバックが得られましたが、GitHub Copilot Workspaceはコード生成の精度に課題が残る結果となりました。今後も生成AIの進化を見守りつつ、他のツールも試してみたいと考えています。
それでは、最後の5つ目の記事「Next.js App Router から複数バックエンドを扱うための BFF + クリーンアーキテクチャ戦略」についてです。本記事では、Next.jsのApp Routerを利用して複数のバックエンドを効率的に扱うためのBFF(Backend for Frontend)とクリーンアーキテクチャの導入方法について説明しています。
BFFは複雑なバックエンドサービス群を統一的に扱う役割を果たし、Next.jsのRoute Handlersを使用して実装されます。これにより、クライアント側はエンドポイントを変更することなくバックエンドの移行ができ、メンテナンスが容易になります。具体的な実装例として、Firestoreからユーザー情報を取得するプロセスを示し、BFFによるデータ取得やエンドポイント変更の例を紹介しています。
著者は、BFFとクリーンアーキテクチャの組み合わせがプロダクトの成長過程におけるカオスを吸収し、管理の効率を高める有効な戦略であると結論付けています。
さて、今日は5本の記事を紹介してきましたね!それぞれの内容がとても興味深いものでした。次回もまたお会いできるのを楽しみにしていますよ!詳しい内容はショーノートに書いてありますので、ぜひチェックしてくださいね!最後に、番組の感想もお待ちしています!それでは、また次回お会いしましょう!