こんにちは、マイクです!今日は2025年1月16日、火曜日です。今日も「zenncast」をお聴きいただき、ありがとうございます!今日はZennでトレンドの記事をいくつかご紹介しますよ。
さて、前回紹介した記事についておさらいしますと、「Clineっておいしいの?おいしいです!」や「大規模言語モデルの次が来る?Meta発『LCM』とは【概念ベースのAI:Large Concept Model】」、「モジュールのimportが原因でCloud Run上のNode.jsアプリケーションの起動が遅いの時の対処方法」などがありました。これらの記事が気になった方は、ぜひチェックしてみてくださいね。
それでは、今日紹介する記事の本数は3本です!どれも興味深い内容ですので、ぜひ最後までお付き合いください。
まず1つ目の記事は、「月500ドルから始まる“AIチームメイト”との開発生活 〜Devinとの理想の開発プロセスを求めて〜」です。
近年、ソフトウェア開発現場でAI支援ツールへの関心が高まっていますが、2024年12月にリリースされた「Devin」は、自律的にタスクを遂行するAIエージェントとして注目されています。月500ドルで導入可能なDevinを有効活用するためには、特にタスクの分割と適切なコンテキストの提供が重要です。タスクは明確な要件やテスト方法を提示し、ジュニアレベルの内容に分割することで、精度を高めることが可能です。
また、プロジェクト全体の情報や設計意図の共有も欠かせません。形式手法Alloyを用いて仕様をドキュメント化し、Devinに参照させることで、コード生成の精度向上に期待が持てます。さらに、プロジェクトのアーキテクチャやモデリング方針を文書化し、設計ドキュメントを整備することで、Devinの適切な実装を支える基盤が整います。
タスクの進捗確認や成果物のレビューを効率化するために、PRの変更行数を制限したり、ADRを通じて設計判断を言語化することも有効です。Devinをフル稼働させることで、複数のタスクを同時に進められるメリットもあり、開発プロセス全体を見直す良い機会となるでしょう。ただし、AIエージェントに必要な情報を適切に提供し、ルールや制約を整備することが求められます。最終的には、Devinとの協働がエンジニアの生産性向上に寄与することが期待されています。
。.
続いて2つ目の記事は、「BetaになったTanStack Startを触るぞ!!!」です。
TanStack Startは、Vinxiを基盤にした新しいフルスタックReactフレームワークで、現在ベータ版が公開されています。この記事では、TanStack Startのセットアップ手順と主要機能について説明します。まず、新規フォルダを作成後、tsconfig.jsonを設定し、TanStack StartやReact、Viteなどの必要なパッケージをインストールします。
次に、package.jsonやapp.config.tsを作成し、基本的なフォルダ構成を整えます。必要なファイルとして、router.tsx、ssr.tsx、client.tsx、__root.tsxを用意します。TanStack Startの特徴の一つは、File-based Route Generationです。これにより、ルーティングがファイルの構成に基づいて自動的に生成されます。
加えて、Server Functionsという機能もあり、サーバー上で実行される関数を簡単に定義できます。これにより、HTTP経由のアクセスはできませんが、ローダーやコンポーネントから呼び出せるのが魅力的です。また、Server Functionsにはバリデーション機能もあり、zodライブラリを利用して型を保証できます。Middleware機能を使ってリクエストとレスポンスの処理も行えます。
API Routesもサポートされており、アプリ内にサーバーサイドエンドポイントを作成できるため、別のサーバーを必要とせず簡単にAPIを構築することが可能です。今後のアップデートでは、React Server Components(RSC)への対応も予定されており、TanStack Startがどのように進化していくか注目ですね。
。.
最後に3つ目の記事は、「Ubieのマルチクラスタ移行とプラットフォームエンジニアリング」です。
Ubieでは、2024年にインフラのマイグレーションを実施し、単一のGKEクラスタからマルチクラスタ構成への移行、Argo Workflowからフルマネージドワークフローへの移行、CloudSQLからスケーラブルなDB(AlloyDB)への移行を行いました。これらの移行は、サービスの信頼性、スケーラビリティ、開発効率の向上を目指しています。
特にマルチクラスタ移行では、70以上のマイクロサービスを管理しており、認知負荷の軽減とマニフェストの一貫性が課題でした。この課題に対処するために、サービス設定を自動生成する「ubieform」を開発しました。ubieformは、最小限のパラメータからKubernetesマニフェストやCI/CD設定を生成し、開発者の負担を軽減します。
移行の過程では、GKEクラスタ間でのClusterIPの重複と、ubieformの自由度に関する課題が浮上しましたが、これらは解決されました。移行後はUbieHubを活用し、サービスカタログを整備することで開発者の負担が大幅に軽減され、自立分散的な運用体制が実現されました。
最終的に、マルチクラスタ化によるセキュリティとスケーラビリティの向上、ubieformによる標準化、UbieHubを通じた開発者のオーナーシップの向上に成功しました。次回はフルマネージドなワークフローへの移行とAlloyDBの導入について詳述される予定です。
。.
さて、今日はここまで!今日ご紹介した記事をおさらいしますと、Devinとの開発生活、TanStack Startのベータ版、そしてUbieのマルチクラスタ移行についてお話ししました。次回またお会いできるのを楽しみにしています!詳しい内容はショーノートに書いてありますので、ぜひチェックしてくださいね!また、番組の感想もお待ちしています。それでは、素敵な一日をお過ごしください!