
Technology Radarの2024年4月版を読んでみた
Thoughtworks社が独自に調査・公開しているTechnology Radarが4月に更新されたので、その中で気になったのをまとめておく。
Techniques > Adopt
Retrieval-Augmented Generation (RAG)
これは、大規模言語モデル (LLM) によって生成される応答の品質を向上させるために、チームが推奨するパターンです。
この分野はさっぱりだが、LLMが生成する結果の精度が向上するらしい。
Techniques > Trial
Continuous compliance
継続的コンプライアンスとは、ソフトウェア開発プロセスや技術が業界の規制やセキュリティ標準に継続的に準拠していることを、自動化を多用して確認することである。
コンプライアンス要件の検証もパイプラインに統合ことが効果的らしい。
Security champions
セキュリティチャンピオンは、技術的および非技術的な提供に関する決定がセキュリティに与える影響について批判的に考えるチームメンバーです。彼らはこれらの質問や懸念をチームのリーダーに提起し、基本的なセキュリティのガイドラインと要件をしっかりと理解しています。
この”チャンピオン”という役割はいままで聞いたことがなかったが、最近”プロダクト品質チャンピオン”というのも聞いたので注目されているのだろうか?
Text to SQL
Text to SQLは、自然言語クエリをデータベースで実行可能なSQLクエリに変換する技術です。大規模言語モデル(LLM)は自然言語を理解し変換することができますが、独自のスキーマに対して正確なSQLを作成することは困難です。Vannaは、SQL生成のためのオープンソースのPython検索支援生成(RAG)フレームワークです。
例えばユーザーからの質問テキストから適切なSQLを生成するようなことができる、ということ?
Tracking health over debt
急速に変化するデジタルの状況において、システムの負債を超えた健全性を追跡することに焦点を当てることは、システムを維持・強化するための構造化されたエビデンスに基づく戦略を提供します。
たんに負債に注目するよりも、健全性がどの程度損なわれているかに注目したほうがよい、ということだろうか?これについて詳しく知りたい。
Techniques > Hold
Broad integration tests
このようなテストは、必要なインフラ、データ、サービスをすべて備えたフル機能のテスト環境を必要とするため、明らかにコストがかかる。これらすべての依存関係の適切なバージョンを管理するには、多大な調整オーバーヘッドが必要となり、リリースサイクルが遅くなりがちです。最後に、テスト自体が脆弱で役に立たないことが多い。
なるべく速くて安定したユニットテストの比率を高めていくのが良い、ということか。
Web components for SSR web apps
たとえフレームワークでサポートされていたとしても、SSRウェブアプリにウェブコンポーネントを使うことは避けるべきです。
このウェブコンポーネントについてよく分かっていないので調べてみよう。
Platforms > Adopt
CloudEvents
CloudEventsは、サービス、プラットフォーム、システム間の相互運用性を提供するために、イベントデータを共通のフォーマットで記述するための仕様である。
特定のプラットフォームに依存せずにイベントの通知などを行えるらしい。
Platforms > Trial
Pulumi
Infrastructure-as-Code分野のツールは進化し続けており、Pulumiもその例外ではないことを嬉しく思う。
Terraformの代替として、使い慣れたコードで書けるのが良さそう。
Rancher Desktop
Docker Desktopのライセンス変更により、開発者のローカル・ラップトップでコンテナ群を実行するための代替手段を求めて私たちは奔走しています。最近、我々はRancher Desktopで良い成功を収めている。
個人でDocker Desktopを使っていて問題は感じていないけれど、もし代替手段が必要になったときのために覚えておこう。
Platforms > Assess
Bun
Bunは新しいJavaScriptランタイムで、Node.jsやDenoに似ている。しかしNode.jsやDenoとは異なり、BunはChromeのV8エンジンの代わりにWebKitのJavaScriptCoreを使って構築されている。
Node.jsの代替としてDenoというのがあるのは聞いたことはあったが、Bunというのも出てきたらしい。
Tools > Trial
Renovate
ソフトウェアのビルドプロセスの一環として、依存関係を自動的に監視し、更新することは、業界全体の標準的な慣行となっています。これは、オープンソースパッケージのセキュリティアップデートがリリースされたときに、最新の状態を維持するための当て推量を排除するものです。何年もの間、Dependabotはこのプラクティスの標準ツールでしたが、Renovateは私たちの多くのチームにとって好ましいツールになりました。
Dependabotの代替として検討できるツールらしい。
Languages & Frameworks > Trial
Astro
Astroは、サーバー上でHTMLをレンダリングし、ワイヤ経由で送信されるJavaScriptの量を最小限に抑えるマルチページ・アプリケーション・フレームワークである。
SSG+ビルド後にJSを含まない仕組みで高速化しているらしい。