#
726
2026/5/17
今日のトレンド

GrokツールとDDD設計論

どうも、zenncastパーソナリティのマイクです。
2026年5月18日、月曜日の朝7時を回りました。みなさん、おはようございます。
この番組では、Zennで話題になっているトレンド記事をピックアップして、朝の支度のおともにゆるっとご紹介していきます。

今日はリスナーのみなさんからのお便りはお休みということで、その分じっくりと記事を掘っていきたいと思います。

さて、今日ご紹介する記事は全部で5本です。
AI、設計論、Rust、TypeScriptと、技術好きにはたまらないラインナップになってますよ。

まず1本目。タイトルは「XプレミアムプランでGrokとx_searchツールを使う」。
これね、「Grok触ってみたいけどSuperGrok契約まではなぁ…」って人にどんぴしゃの内容です。hermes-agentというCLIエージェントを経由して、Xプレミアムさえ入っていれば、GrokやX検索用ツールの`x_search`を使えるようにする備忘録になっています。導入はcurl一発でhermes-agentを入れて、`hermes tools`から「X Search」をオンにして、表示されるxAIのOAuth URLをブラウザで踏んでXアカウント連携する、という流れ。リモート環境ではSSHトンネルを張って同じように認証する方法も書かれていて、実務っぽいノウハウです。`x_search`は、どのプロバイダのモデルと組み合わせるかを選べて、Grokを使いたいときは`hermes model`で`xAI Grok OAuth`を選択して、既に認証済みのアカウントでgrok-4.3などを指定します。あとはエージェントを起動して「x_searchツールで検索して」と話しかければ、Xの投稿やプロフィールを横断的に検索して、要約付きで返してくれる。キーワードだけじゃなく、日付や対象ユーザー・除外ユーザー、画像や動画の理解まで指定できるんですが、一方で非公開情報や「いいね」履歴までは見えない、という線引きもちゃんと押さえられています。Discord連携やcronと組み合わせて、X検索を自動化したり監視みたいに使えそう、という提案もあって、「Xを情報ソースにしている人が、AIと仲良くやるためのHowTo」としてかなり実用度の高い内容になっていました。

。。。。

続いて2本目。タイトルは「DDDの理想と決済システムの現実」。
これはドメイン駆動設計、DDDをがっつりやっている人ほど心に刺さる記事です。テーマは、決済基盤の「注文初期化処理」で、DDDの教科書的な原則である「1トランザクション1集約」をあえて破っている、という告白から始まります。注文、積立設定、決済準備、監査ログといった複数の集約を、あえて1つのトランザクションでまとめて更新している。その理由が、決済というドメイン特有の「幽霊データ」問題なんですね。途中までだけ作られてしまった注文や設定が残ると、運用コストも判断コストもとんでもなく高くつく。そこで「All or Nothing」にして、一括で成功かロールバックかをはっきりさせることで、リトライや障害対応をとにかくシンプルにしている、という判断です。一方で、外部の決済APIを叩いたり通知を送ったりする「初期化後」のフェーズは、逆にDDDの原則に寄せて、集約単位や非同期処理、結果的一貫性、冪等性を重視して設計している。つまり「原則を守るか・破るか」ではなく、「どのリスクを選ぶか」という話として捉え直しているんですね。決済初期化のように不整合のコストがとんでもなく高い場面では、集約をまたいででも強い一貫性を優先するほうが合理的になりうる、と。原則を理解したうえで、意図を持って例外を作るのがシニアエンジニアの仕事だ、というメッセージで締めくくられていて、「きれいごとだけでは回らない現場」で悩んでいる人に、かなり勇気をくれる内容でした。

。。。。

3本目はRustの記事。「【Rust】怖くないunsafe入門」。
Rustと聞くと「安全、安全」とよく言われますが、そのなかにあえて「unsafe」というキーワードが出てくるの、ちょっと怖いですよね。この記事は、その「怖さ」をいい意味でほぐしてくれる入門編です。unsafeは、Rustのメモリ安全や所有権チェックといった厳しめのルールを、一時的にゆるめてあげるための仕組みなんですが、「書いてあるだけで即危険!」というものではない。ポインタの参照外しやFFI、mutableなstatic、unsafeな関数やtraitの実装など、「Rustで低レイヤーを触るなら避けて通れない場所」を担当しているんだよ、という整理から入ってくれます。そのうえで、範囲外アクセス、ダングリングポインタ、複数の可変参照、`transmute`の誤用など、「やらかすと未定義動作まっしぐら」な例もちゃんと示してくれるので、どこが危ないのかが感覚的にわかる。見どころは、CのAPIをRustから安全に使うためのラッパー例ですね。危険な部分はunsafeブロックの中に閉じ込めて、nullチェックやDrop実装でリソース解放を自動化し、外からは“safeな関数”として見えるようにする。この「unsafeを局所化して、外側は安全な世界にする」っていうパターンがベストプラクティスだよ、と丁寧に説明されています。最終的なメッセージは、「unsafeは避けるものじゃなくて、FFIや低レベル処理で必要になる“道具”だから、怖がらずに正しく狭い範囲で付き合おう」というもの。Rustを次のステップに進めたい人には、かなりいいガイドになりそうです。

。。。。

4本目。「AIに同じ質問を3経路で投げたら、入力トークンが約1,200倍違った — Claudeの『プログラム利用専用クレジット』と構造化APIの関係」。
タイトルからして攻めてますが、中身もかなり攻めてます。テーマは、Anthropicの料金体系の変更と、「AIに何を、どう読ませるか」という話。2026年6月15日から、有料プランに「プログラム利用専用クレジット」が導入されて、Agent SDKや`claude -p`みたいなプログラム経由の利用が別枠で課金されるようになります。これまでサブスクの中で、ちょっとしたAPI利用を“ほぼタダ乗り”できていた部分が、だんだん現実的な「使った分だけ」課金に寄っていくイメージですね。そこで効いてくるのが、入力トークンのコスト。PDFを丸ごと読ませると、それだけで数十万トークン飛んでいく一方、EDINET DBみたいな「構造化されたAPI」をMCP経由で読みに行けば、同じ質問でもPDFは30万トークン、構造化データは250トークン、つまり約1,200分の1まで圧縮できた、という実験結果が紹介されています。構造化データは、ハルシネーションの抑制にも効いてきて、コストと精度が同時に良くなる。EDINET DB自体は、有報のXBRLみたいな、本来は機械可読な一次情報を名寄せ・正規化して、AIが扱いやすい形で提供するサービスで、「公開されているけど実質使いづらい情報」をちゃんと使えるようにするインフラを目指している、と。AIの料金がより“現実的な”方向に整っていくなかで、「どのモデルを選ぶか」より、むしろ「何を、どういうフォーマットで読ませるか」という情報設計のほうが長期的には効いてくるよ、というメッセージです。たくさんAPIを叩きそうなプロダクトを作っている人は、今のうちから読み方を設計しておくと、あとでかなり差がつきそうだな、と思わされる内容でした。

。。。。

そして最後、5本目。「【TypeScript】値・型・名前空間の『三重定義』でReactコンポーネントをより柔軟に設計する」。
TypeScriptならではのちょっとマニアック、でも使いこなせると気持ちいいデザインパターンの紹介です。キーワードは「Declaration Merging」と「三重定義」。同じ名前で「型(interface や type)」「値(実際のコンポーネント)」「namespace」を重ねて宣言することで、Reactコンポーネントを気持ちよく扱おう、というアイデアです。たとえば `List.Item` みたいなコンポーネントを考えると、「データとして扱うときの型」「JSXでタグとして使うときの値」「補助的なProps定義やユーティリティをぶら下げる名前空間」という、3つの顔を同じ `Item` という名前に集約してあげる。こうすると、`ItemType` とか `ItemComponent` とか名前がバラけずに、APIがすごく覚えやすくなるんですね。おもしろいのは、`ButtonGroup.Item` は値だけ、`Tabs.Item` は型だけ、`List.Item` は型+値、みたいにコンポーネントごとにどの顔を持たせるかを変えつつも、「Itemはそういう“セット”なんだ」というルールが統一できるところ。技術的なポイントとしては、マージ対象のnamespaceは「型専用」にして値を入れないようにすることで、余計なJavaScriptが出力されず、衝突も避けられるし、Tree Shaking的にも有利になるよ、という話も押さえられています。namespaceって「古い」「非推奨じゃないの?」と思いがちですが、「いやいや、大規模なOSSとか、ライブラリのAPI設計にはまだまだ有効な手段だよ」と再評価しているのも印象的でした。同名宣言はできるだけ近くにまとめて書こうね、みたいな細かい実践Tipsもあって、ライブラリ設計が好きな人にはたまらない内容です。

。。。。

そろそろお別れの時間になってきました。
今日は5本ご紹介しました。

1本目は、XプレミアムだけでGrokと`x_search`をhermes-agent経由で使いこなす手順のお話。
2本目は、決済システムでDDDの原則をあえて破りつつ、リスクをどう選ぶかという設計論。
3本目は、Rustのunsafeを怖がらずに正しく付き合うための入門ガイド。
4本目は、Claudeの新しい課金体系をきっかけに、「AIに何をどう読ませるか」がコストと精度を左右するという話。
5本目は、TypeScriptの三重定義で、ReactコンポーネントのAPIをきれいに整える設計パターンでした。

気になった記事があれば、詳しい内容や元記事へのリンクはショーノートにまとめてありますので、ぜひそちらからチェックしてみてください。
そして、このzenncastでは、番組の感想や「こんなテーマを取り上げてほしい」といったリクエストも大募集しています。聞いていて思ったこと、日々の開発の悩みなど、気軽に送ってもらえるとマイク、とっても嬉しいです。

それでは、そろそろお時間です。
今週も無理せず、でもちょっとだけワクワクする技術に触れながら、いい一日をお過ごしください。
お相手はマイクでした。また次回のzenncastでお会いしましょう。ではでは。

Related episodes

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