こんにちは、マイクです!今日の日付は7月30日、火曜日です。さて、今日も「zenncast」をお届けしますよ!今日はZennでトレンドの記事をいくつかご紹介しますので、お楽しみに!
それでは、早速今日の内容に移りましょう。まずは、前回紹介した記事についてですが、今回は特にお便りはいただいていないようですので、次に進みますね。
今日紹介する記事は全部で5本です!それでは、順番にご紹介していきますね。
まず1つ目の記事は、「Mastraを参考にドキュメントMCPサーバーを作ってみた」です。著者の方が、公式ドキュメントを大規模言語モデルに参照させるためのMCPサーバー「microCMS Document MCPサーバー」を開発したという内容です。このサーバーは、従来のmicroCMS MCPサーバーとは違って、特にMastraというTypeScriptフレームワークの機能を模倣しているんです。これにより、開発者が公式情報に効率的にアクセスできるようになります。このMCPサーバーが重要なのは、AIエージェントが最新で正確な情報を提供するためで、特に複雑な機能や最新アップデートに関する情報の精度を向上させる効果があります。実際にこのサーバーを使うと、ドキュメントに基づいた正確な回答が得られることが証明されています。設定は簡単で、CursorなどのMCPクライアントを使って行え、Webhookを利用して自動でドキュメントを更新する仕組みも導入されています。今後もこのDocument MCPサーバーの需要が増えると考えられており、エンジニアにとって非常に有用な情報源となることが期待されています。
。...。
次に2つ目の記事は、「git worktreeをもっと便利に使うCLIツール `wtp` を作った」です。こちらは、エンジニアの作業効率を向上させるために開発されたCLIツール「wtp」についてです。このツールは、git worktreeを簡便に扱えるようにするもので、従来のコマンドではブランチ名を2度入力する必要があったり、手動の設定が多くて効率的ではありませんでした。しかし、wtpを使えば、ブランチ名だけを指定することで自動で作業ツリーが生成され、作成後の処理も自動化されます!主な機能には、ブランチ名のみでworktreeを追加できる`wtp add`、作成後の自動実行を可能にする`post create hook`、worktreeとブランチを一度のコマンドで削除できる`remove --with-branch`があります。このようにwtpを使えば、開発中の緊急修正やPRレビューの際に、効率的に作業を進めることが可能です。インストールはHomebrewまたはGoからでき、シェル統合もサポートされています。Goを選んだ理由は、シングルバイナリ配布が可能でクロスプラットフォーム対応が容易だからなんです。wtpは、他のエンジニアにもぜひおすすめしたい便利なツールです。
。...。
続いて3つ目の記事は、「Zennのダークモードを実装しました」です。ユーザーからの要望に応じて、Zennがダークモードを実装したという内容です。2023年に一度クローズしたダークモード対応が、デザイナーの参加によって再び進められることになりました。ダークモードでは、ライトテーマ・ダークテーマ・システムテーマの3つを選択でき、OSの設定に応じたテーマ切り替えも対応しています。実装のポイントは、初期レンダリングのちらつきを抑えるためにJavaScriptで初期状態を決定し、`prefers-color-scheme`を利用してOSテーマに連動させていることです。また、テーマの状態管理にはカスタムフックを使用し、コンポーネントごとのテーマ更新を行います。埋め込みコンテンツについても、テーマの自動切り替えが必要で、特にモバイル環境での対応にも苦労したようです。このダークモードの実装は予想以上に手間がかかりましたが、多くのユーザーからの好評を受けて実装して良かったと感じています。今後の展開にも期待ですね!
。...。
次に4つ目の記事は、「モジュールを外から見た振る舞いだけAIレビューさせる smoke-review」です。こちらでは、AIを用いてモジュールの外部振る舞いをレビューする「smoke-review」手法を提案しています。公開APIとテストケースを基にAIにレビューを行わせる仕組みを構築し、実装者バイアスを排除することを目指しています。この手法では、リポジトリをクローンして簡単なコマンドでレビューを行う手順が示されています。実装者バイアスの問題を指摘し、テスト駆動開発の手法を取り入れることで、より良い品質のコード作成を促進します。smoke-reviewを行った結果、公開APIの改善点やテストケースの充実度が示され、改善提案が確認されました。この手法は、特にトークン制限のある環境での使用が期待されています。
。...。
最後に5つ目の記事は、「Vanilla JavaScriptでHeadless UI的なことを実現するTailwind Elementsがかなり面白い」です。Tailwind Labsが発表した「Tailwind Elements」は、Headless UIのコンポーネントをReactやVueに依存せず、Vanilla JavaScriptで実現したものです。これにより、Reactを必要としないUIコンポーネントの選択肢が広がります。Tailwind Elementsはシンプルなカスタム要素を使っており、CDNからの読み込みが簡単で、a11yにも配慮されています。Tailwind Elementsの登場により、UIライブラリのトレンドに一石を投じることが期待されています。特にHotwireとの親和性が高いため、今後の展開が楽しみです。
さて、今日はここまでで、紹介した記事を駆け足でおさらいしますね。1つ目は「Mastraを参考にドキュメントMCPサーバーを作ってみた」、2つ目は「git worktreeをもっと便利に使うCLIツール `wtp` を作った」、3つ目は「Zennのダークモードを実装しました」、4つ目は「モジュールを外から見た振る舞いだけAIレビューさせる smoke-review」、そして5つ目は「Vanilla JavaScriptでHeadless UI的なことを実現するTailwind Elementsがかなり面白い」でした。
次回もまたお会いできるのを楽しみにしています!詳しい内容はショーノートに書いてありますので、ぜひチェックしてくださいね。また、番組の感想もお待ちしています!それでは、またお会いしましょう!