#
368
2025/5/15
今日のトレンド

Roo CodeとMaterial 3

こんにちは、マイクです!今日は2025年5月16日、金曜日です。皆さん、元気に過ごしていますか?今日はZennでトレンドの記事をいくつかご紹介しますよ!

さて、前回紹介した記事ですが、軽量な視覚言語モデル「Heron」のiOSアプリや、既存のRAGの検索精度を引き上げる「RRA」、バックエンドのコードだけで管理画面を作れるようにした話など、興味深い内容が盛りだくさんでしたね。

それでは、今日紹介する記事の本数は5本です!早速、1つ目の記事から紹介していきましょう。

まずは、タイトル「DevinをRoo Codeで置き換え、レビュー精度やコスト、速度を大幅に改善した話 〜その定量 & 定性成果から、設計思想まで〜」です。

本記事では、Devinを用いたコードレビューの課題を解決するために、Roo Codeを活用した新たなアプローチについて述べています。Devinは完全自律型のエージェントで、その高い自律性が逆にテストやメンテナンスの困難さを生んでいました。具体的には、Workflowとエージェントの複雑さが原因で、レビュー精度やメンテナンス性に限界が見られました。

これに対して、Roo Codeでは、独立したWorkflow群に分割し、それをオーケストレーションすることで、レビュー精度を大幅に向上させました。評価結果では、Roo Codeのレビュー精度は73.48%で、Devinの48.48%を上回り、コストも半減、レビュー速度は30%向上しました。これにより、レビュープロセス全体の健全性が保たれるようになりました。

Roo Codeの設計思想としては、メンテナンス性を重視し、各Workflowをテスト可能なサイズに分けることで、チューニングの効率を高めています。また、開発者は特定のモードを指定せずとも、自動的に適切なモードに振り分けられる体験を提供しています。今後も各モードのチューニングを進め、AIレビューのさらなる効果を追求し、開発チームに貢献できるシステムを目指します。本記事がAIレビューの導入に役立つ参考となれば幸いです。

。.

次は、タイトル「Material Design3の進化形、Material 3 Expressiveを追いかける」です。

Googleが2025年5月に発表したMaterial 3 Expressiveは、Material Design3の進化形で、感情に訴えかけるユーザーエクスペリエンスを提供することを目的としています。従来のMaterial Design3と異なり、Expressiveは新たなバージョンではなく、既存のコンポーネントの更新や新規追加を行い、モーションやタイポグラフィ、シェイプ、カラーの概念も進化させています。

ユーザーリサーチを通じて、アプリのデザインが似通っていることへの不満を受け、感情や気分を引き出すためのデザイン改善が求められました。実験により、Material 3 ExpressiveはUI要素を最大4倍速く認識できることが示され、より直感的で魅力的なデザインとなっています。

具体的なコンポーネントの変更には、AppBarの名称変更、Buttonsの形状変更、FABのサイズ追加、Navigation barのフレキシブル化、Progress indicatorsの形状設定などが含まれます。また、新たなコンポーネントとして、ToolbarやSplit buttons、Loading indicators、Button groupsが追加され、ユーザーの操作性が向上しています。

モーションについては、物理ベースのアニメーションが導入され、より自然な動きが実現されています。タイポグラフィや形状においても強調されたスタイルや角丸トークンが追加され、デザインの表現力が一層高まりました。

Flutterにおいては、Material 3 Expressiveへの対応が進行中ですが、積極的な開発は行われていないようです。全体として、Material 3 Expressiveはユーザー体験を向上させるための重要なアップデートと位置づけられており、今後のプロダクトに活かすための理解が求められます。

。.

続いて、3つ目の記事「実用的なMCP Clientを実装してMCPを理解する」です。

この記事では、MCP(Model Context Protocol)の理解を深めるために、実用的なMCP ClientをTypeScriptで実装する方法が紹介されています。MCP ClientはMCP Serverと1:1で通信する必要があり、そのためのクラス設計や実装方法が詳述されています。

実装では、公式SDKのClientクラスをベースにしつつ、独自のMCP Clientクラスとその管理クラス(MCPClientManager)を作成します。MCP Clientは、サーバーとの接続やツールのリスト取得を担当し、MCPClientManagerは複数のMCP Clientを管理します。具体的なコードが示され、構成や機能が詳しく解説されています。

MCPの設定ファイルに関する解釈は、標準が定められていないため実装者に委ねられています。この記事では、設定ファイルの解釈方法や、サーバー名とツール名の衝突を避けるための命名規則についても考察されています。特に、サーバー名を名前空間として利用する方法や、Clineのようにサーバーをツールとして扱う方法について触れ、実装上の注意点を示しています。

最後に、MCP Clientの実装を通じてMCPの内部を理解し、今後の発展に期待を寄せる内容で締めくくられています。MCPに興味があるエンジニアにとって、有益な情報が含まれています。最新の情報は公式サイトを参照することが推奨されています。

。.

お次は、4つ目の記事「TypeScript の型のみで世界一型の厳しいプログラミング」です。

TypeScriptは、型を関数型のように記述できる自由度の高い言語で、その代表例として`Trim<S>`型が紹介されています。この型は、文字列の両端から空白を取り除く処理を型レベルで実現しており、型の推論を利用して動作します。具体的には、再帰、条件分岐、文字列テンプレートのパターンマッチ、推論(`infer`)の4つの要素が組み合わさっています。

再帰を利用して空白がなくなるまで自己呼び出しを行い、条件分岐によって空白の有無を判断します。文字列テンプレートのパターンマッチにより、前後の空白を判定し、`infer`を用いてその構造を抽出することで、型の柔軟性を引き出しています。このようにして、TypeScriptは実行時ではなく型レベルでの処理を可能にし、開発者はより厳格な型定義を行うことができます。

記事では、Split型の定義やその他の応用例についても説明されており、条件付き型を用いた文字列分割や、さらに高度な型推論の実現方法も示されています。TypeScriptの型システムの力を活用することで、実用的なツールやフレームワークを構築することも可能です。最後に、TypeScriptでの興味深いプロジェクトの例も紹介されており、型を駆使したプログラミングの楽しさが伝わります。

。.

そして最後に、5つ目の記事「Tombi | New TOML Language Server」です。

Tombiは、Rustで開発された新しいTOML用のLanguage Serverです。既存のTOML Language Serverであるtaploはメンテナンスが困難になり、構文の不備によるデータ欠損が問題となっていますが、Tombiは実用レベルに成長しました。

プロジェクト名の「Tombi」は、TOMLから連想しやすく、検索性の高い名前として選ばれました。Tombiの最大の特徴は自動ソート機能であり、これは設定ファイルなしで自動的に行われます。自動ソートのルールはJSON Schema Storeから取得され、特定の指示を与えることでソート方法が決まります。

Tombiは設定ファイルを最小限に抑える設計思想を持ち、JSON Schemaを提供するサービスがルールを決定することで、ユーザーは初めから設計者の意図したフォーマットで開発できます。また、Tombiは設定項目が一切ないフォーマッタとしての特性も持ち、ユーザーに余計な設定を強いることなく、TOMLファイルのフォーマットを自動的に行います。

さらに、blackからインスパイアを受けた「magic trailing comma」や「magic trigger」と呼ばれる補完機能を搭載し、ユーザーが書いた内容に基づいてフォーマットを決定します。Tombiはユーザーからのフィードバックを大切にしており、スポンサーや寄付を募集しています。今後も新機能の紹介などを行っていく予定です。

さて、今日は5本の記事を駆け足でおさらいしました!Devinのレビュー精度向上からMaterial Designの新たな進化、MCPの実装、TypeScriptの型の厳しさ、そしてTOML用の新しいLanguage Serverまで、盛りだくさんでしたね。

次回も楽しみにしていますので、ぜひお越しください!詳しい内容はショーノートに書いてありますので、そちらもチェックしてくださいね。また、番組の感想もお待ちしています。それでは、また次回お会いしましょう!

Related episodes

内容の近いエピソードを推薦しています