世界を動かす技術を、日本語で。

LLMの利用を控えます

2025年7月2日原文(zed.dev)

概要

  • Alberto Fortin によるAI活用経験の実例紹介
  • LLM導入の期待と現実のギャップ に関する率直な意見
  • Claude Opus 4など新モデル の実地検証結果
  • 生産性の錯覚 と現場での実際の課題
  • エンジニア視点での実用的アドバイス を提示

AIハイプと現実のギャップ:プロダクションコードの現場から

  • Alberto Fortin は15年の経験を持つソフトウェアエンジニア
  • GoとClickHouse によるインフラ再構築時、LLM活用に挑戦
  • 初期は AI革命への期待 と熱意で導入を決断
  • 実際には バグや機能不全だけでなく、保守性やコードの整然さ にも課題
  • エラー出力をLLMに渡すと新たな修正案が返るが、別の部分が壊れる」という問題の連鎖
  • 修正が一週間で終わると思っても、次々と新しい小さなエラーが発生し、結果的に二週間以上かかる 現象

生産性の錯覚

  • LLMの自動補完や初期機能の驚き で期待が膨らむ現象
  • 最初の一歩は魔法のようだが、現実は違う」という冷静な分析
  • コード量の増加 により「10倍の生産性」を期待しがち
  • しかし、 本質的な課題や設計の意思決定 は依然として人間の役割

マインドセットの転換とコントロール

  • エンジニア自身が主導権 を持つことの重要性
  • 私はアーキテクトであり、LLMはアシスタント」という立ち位置の明確化
  • 大規模な機能開発はLLMに任せず、小さなリファクタや限定的な機能追加 に限定
  • コードベースを完全に理解した上で、自分でバグ修正する方が速く確実 という実感

実践的な知見とバランスの提案

  • シニアエンジニアであってもLLMがうまく機能しなくても自己否定不要
  • 従来のスキルを活かしつつ、AIは知識補助ツールとして活用
  • アーキテクチャの抽象化やプロダクトの意思決定は人間が主導すべき
  • AI技術の進化を歓迎しつつも、過度な期待は控え、現実的なバランス感覚を持つことの重要性

新モデルの実地検証:Claude Opus 4など

  • Claude Opus 4など最新LLMの検証 も実施
  • 一部の課題は改善 されたが、根本的な問題は依然として残存
  • 複雑な設計や長期的な保守性 には人間の判断力が不可欠
  • LLMは限定的な範囲での生産性向上や補助に有効 という結論

まとめ:現場でのAI活用の心得

  • AIの革命性を認めつつも、冷静な評価と現実的な使い分け が重要
  • 過度なハイプを抑え、実践的なバランスを意識した活用方針
  • YouTubeセッションやブログ も参考に、他エンジニアへの実践的示唆

Hackerたちの意見

俺もほぼ同じ結論に至ったよ。コードベースの大きな部分をオートコンプリートするのはあんまり得意じゃない。何がどうなってるか、どこで何をしてるかのメンタルモデルを失っちゃうんだよね。だから、個人的には、もっと早く反応するスタックオーバーフローみたいに使ってる。よく分からない概念の概要を教えてもらったり、良い解決策が分からないときに方向性を示してもらったりする。そしたら、自分で判断して実装するって流れが、今のところすごくうまくいってる。

私も同じように使ってるけど、カーソルが常にコードの変更を求めてくるんだ。コードベースを修正せずに内省させるトリックってあるのかな?

LLMには限界があるよね。めちゃくちゃ強力だけど、人間ができるような飛躍はできない。例えば、下の問題をClaudeとGeminiに聞いてみた。「Androidでウェブサーバーを動かしたいんだけど、1000未満のポートにバインドできない。どうすればいい?」二人とも以下の解決策を提案した。1. リバースプロキシを使う 2. 電話をルート化する 3. 高いポートで動かす。再考をお願いしても、期待してた解決策は出てこなかった。この問題の解決策はHTTPS RRレコードなんだけど、二つのモデルはHTTPS RRについては知ってたけど、解決策として提案できなかった。俺がそれを文脈に入れたら、ようやく可能な解決策として同意したんだ。

今日は学んだ。SRVレコードについては知ってたけど、ほとんど使われてないと思う?これは初耳だった。実際にサポートされてるみたいだし、SRVは一部のアプリケーションでしかサポートされてないのとは違うみたい。Matrixはデータを提供するためにSRVから.well-knownファイルに移行したんだ。(もしかしたら、両方をサポートしてるかも。)

「聞いたら解決策を教えてくれる」っていう古典的な問題だよね。

話は逸れるけど、スマホでウェブサイトをホスティングする記事を読んで、すごくインスパイアされたよ。脱獄してないスマホでもできるの?どんなウェブサーバーをおすすめする?

LLMに対して、例えばChromeですら完全にはサポートされてないような、かなりマイナーで新しい仕様を推奨させるのはどうかと思う。それは、人間の俺でもできない飛躍だし。

これも自分の知識に追加しておくね… :-P 最近になってLLMともっとやり取りするようになったんだ(以前の「ブッククラブパートナーとして使う」提案を試してみたら、結構良かった!)。カーソルを使ってコーディングしてるときに、「あれ、最初にそのコード書いたときにxyzを忘れてたよ」ってちょっと促したことがあって(関連データ構造やキャッシュの更新とか)、機械に対して「うん、自分もそのコード書いてたら同じミスしたかも」って意図的に思うようになったり、「最初に基本ケースを書いてからキャッシュを更新したり、見つかったアイテムの数を減らしたりしたかも」って考えたりするようになった。ブッククラブやムービークラブのケースでは、2つの映画について話すように頼んだんだけど、いくつかのミスがあった。「主人公は正当に投獄されたのか、それとも不当に投獄されたのか」みたいな…人間でも同じタイプミスをするかもしれないよね?直して、気にせず流れに乗る…本や映画についての100%人間の議論でも、みんな(そして幻覚を持つAI/LLMも)細かいディテールを100%正確に覚えてるわけじゃないし、会話相手に少しの信頼を持つことでストレスがかなり減るんだ。AIでも、ポジティブなやり取りを心がけるのが大事だね。

へぇ、それは面白いトリックだね。HTTPS RRレコードについて初めて知ったよ…だから、AIがそれを提案するべきだったかどうかは判断しないよ。

公平に言うと、質問はローカルサービスのポート番号が問題だって暗示してるけど、実際はURLにポート番号を指定せずにアクセスできるようにすることが重要なんだよね。経験豊富な人なら本当の問題を見抜けるかもしれないけど、特定の質問に答えたことについてはLLMのせいじゃないよ。もしかしたら、テスト用のサーバーを立てたかっただけで、URLに非標準ポートを追加できることに気づかなかったのかも。

HNに時間をかけすぎてるのかな、それともどの投稿やコメントセクションも同じ話ばかりなの?基本的に、LLMはワクワクするけど、開発者が所有感を持てないようなゴチャゴチャしたコードを生み出すんだよね。LLMが書いたコードベースを管理するのは難しい。自分で書いたコードのように、全体を頭に入れてないから。ワンオフのスクリプトや、維持するつもりのないプロジェクトにはまあまあ使えるけど。これは、毎日何度も目にするブログの投稿やコメントセクションの要約だね。逆に、すでに「理解した」ような人たちがいて、プロジェクト全体で変更を計画・実行・統合するために複数のエージェントを使って、そのワークフローがどれだけ素晴らしいかを教えたがるけど、実際にはコードを見せない人もいる。

どれだけ素晴らしいかを教えたがる それか、よくあるのは何かを売りつけようとすること。

Hacker Newsで議論の続きを見る