ディスカッション (83件)
Claudeを使って20万行超えのSaaSアプリを開発中だけど、テストとデバッグがマジで大変!Claudeの謎すぎる判断に振り回されてるわ。
- 存在しないデータベースのパスを勝手に作り出すし。
- ほぼ同じ機能のコンポーネントを10個以上も量産するし(共通コンポーネント作ってくれよ…)。
- 無限ループを作り出して、GCPの呼び出し回数を10,000%も爆上げしてくれた(寝る前に気づいてマジ助かった)。
- データベースのレコードがないのを、常に更新じゃなくてUpsert(存在しなければ新規作成)でごまかすし。
Claudeが優秀すぎて、最近チェックを怠けてたのが原因でもあるんだけどね。でも、Claudeを使うのは大好きだよ。生産性が爆上がりするマジ最高のツールだもん。
参考までに、Claudeが書いたコードの量:
バックエンド (functions/ - .ts ファイル): 137,965 行
ワークフロー (functions/workflows/ - .yaml ファイル): 8,212 行
フロントエンド (src/ - .ts + .tsx ファイル): 108,335 行
合計: 254,512 行
マジでイカれてるって。
cascade simplify skill 使ってみて。
リンクは?
https://github.com/mrgoonie/claudekit-skills
Problem-Solving Frameworks
problem-solving/simplification-cascades
https://youtu.be/901VMcZq8X4?si=RGtONKA84A43aWuL
動画の16分05秒あたり
ありがとう!
これどうやったら動くのか教えて! Readmeの説明が全然足りないんだよね。プロジェクトのルートフォルダに貼り付けて、claudeを実行すればいいの?
Claudeに聞いてみたら?笑
マジだ、さっき13個のミニコンポーネントのカードの分解を頼んだら、各コンポーネントがshadcnのカードそのものだったwww
どこかにコンテキストの問題があって、劣化が始まると止まらなくなる気がする。
まさにそれが問題なんだよね。
100,000%同意!
オートコンプリートに任せっきりだと、どんどんスコープが狭まっていくみたいだし、最初の要求をありえない方向に幻視して実装してくる感じ。
ツールの使い方を理解してないか、気にしてないからコンテキストがおかしくなるんだよ。
サブエージェントとか、チェックイン、PRD(製品要求仕様書)、コンテキスト管理とか、全然やってなさそうな感じがする。もしやってたらごめん。
これって、社内の人に外注したり、ジュニアチームに丸投げするのと大差ないと思う。
サイドプロジェクトなら最高じゃん。でも、25万行のコードは絶対に少量じゃない。俺はそれ以下のコード量で、製品3つくらい作ってリリースしてる。
今週プロトタイプを作る必要があって、面白半分でコードを一行も書かないことにしたんだ。
それでも、スペック集めたり、PRD作ったり、実行計画立てたり、必要なスキル書き出したり、モックアップから擬似コード書いたり、swarm(群)とオーケストレーターにスペック追加させたり、ベストプラクティス文書をマージさせたりして、2日間費やしたよ。
ワンショットでうまくいく人もいるみたいだけど、大規模なやつはまだ見たことないし、そうあるべきだとも思わない。
だよね、人が運転してない時の想定される結果だわ。
設計するんじゃなくて、ノリでコーディングした結果だよね。
Claudeを賢い自動タイピストとして扱うだけなら、そうはならないはず。
多分、バイブスって言葉の使い方が間違ってるかも。アーキテクチャ設計、データベース設計、ワークフローとかは全部自分でやってるんだ。Claudeは、僕がすでに計画した関数とページのコードを書いてくれるだけ。
同じことをするコンポーネントを10個も作らせたってことは、ちょっと制御を失ってるんじゃない?
そういう問題が全くないとは言わないけど、コンテキストを管理して、必要なときに何が存在するかを意識させることが、こういう問題を避けるための方法の一つだし、十分に避けられるはずだよ。
個人的には、フォールバックを追加したがるのがマジで嫌で、CLAUDE.mdでそれを避けるようにかなり明示的に書く必要があった。
マジか、フォールバック処理。不要な冗長性のレイヤーが…エグい。
マジかよ
マジで?
全部自動でやらせちゃダメ。一つ書かせたら、それを単一のコンテキストウィンドウで完結させるようにする。普段使ってるコードスタイルや好みをドキュメントに残して、それを参照させる。さらに、機能の計画を立てる前に、全体的なアーキテクチャガイドも参照させる。疲れてても、ざっと目を通して、ヤバいことになってないか確認する。おかしくなってるときは、大体すぐわかるし、コードベースがあれば、ベストプラクティスから逸脱してないかすぐに確認できるものがあるはず。
こういうことにならないように、コードは定期的にレビューする必要があるよ。
プロセスを体系化(標準化)するために何をしてるの?スコープ管理はどうしてるの?
設計とかやってたんなら、なんでこんなことになったんだ?ファイルがおかしいって気づいた時点で、なんで止めなかったんだよ。結局、ざっくりとしたアイデアだけ伝えて、あとは丸投げしたんだろ。LLMはそういうもんだって。
それって自慢になってないよ。スペック駆動開発を調べてみたら? openspecみたいなのを使えば、コア設計ドキュメントに基づいて一貫性のあるタスクを事前に計画できるよ。
じゃあ、なんで同じことをするコンポーネントを10個も作っちゃったの? 設計者(あんた?)が、柔軟なコンポーネントを1つ作るように指示すべきだったんじゃないの?
それなのに、スレ主はとんでもない悪夢を生み出すのを許してるみたいじゃん。
それな。コーディング ≠ エンジニアリング。Claudeはコードを吐き出すことはできるけどね。
たくさんのエージェントにたくさんのアプリを作らせてみたけど、結局、教師なしのノリだけのコーディングは役立たずだって気づいた。
そうそう、AIは真の知能じゃないけど、すごいツールだよね。正しく使えばすごく良いコードを生成できるけど、チェックせずに放置するとマジでヤバいことになる。
IDEが変数名を補完するときに、毎回一番最初の候補を選んで、他の候補を見たり、自分で変数名を入力する必要があるかどうかを判断したりしないのと同じ。
なんでそれでうまくいくと思うのか理解できない。
だって、そうなんだもん。下手くそで、クソで、怪しくて、混沌としてて、無謀で、安全じゃないけど、750万円もかからないし、数日で動くんだもん。
週末は調子悪かったみたい。
Claudeはクールだけど、マジでアホなことやらかすこともある。
コーディング規約を書いて、ちゃんと守ってるか監視しないといけないってわかった。最近知ったんだけど(信じられるかわからないけどChatGPTに聞いた)、Claudeはアルゴリズムの鮮度バイアスが強いらしくて、セッションの最初に決めたガイドラインからズレていくのはそれが原因らしい。
そうそう、新機能が終わるたびに、使ってないコードを整理するようにClaudeに指示してるよ。大規模なコードのリファクタリングも、かなり手取り足取り教えないとダメだけどね。
だから使えないんだよね。全部追いかけるのが面倒すぎる。
新しいチャットとか、コンテキストがなくなっちゃった時に、アホなことばっかりやるんだよね。この辺のブレイクスルーに期待してる。
これ、マジそれな。コンテキストウィンドウがパンパンになって、あの嫌な自動圧縮が表示される頃には、Claudeはマジ最強。コードベース全体を知ってて、何もかも最高。でも自動圧縮でロボトミー手術されちゃって、調子を取り戻すのに時間がかかるんだよね。まるで15分ごとに新しいインターンが来て、前のインターンが残したメモしか知らないみたいな感じ。
その解決策の一つは、自動コンパクトを無効にして、Claude Codeに与えるコンテキストを極めて明確にすることだ。コンテキストの利用可能性に対して、常に優先順位を管理しろ。もしコンテキストが不足しそうなら、次のセッションのハンドオフドキュメントを準備させるべきだ。そうすれば、最大許容閾値の90%とかに達することを心配する必要はなくなる。
AWSとGoogleは、このノリノリコーディングブームが大好きだろうね。
笑。おもちゃプログラム作るのに、おもちゃ使ってるんだね。
マジで全部手動でレビューする必要があるよ。早めに気づけば、後で痛い目見なくて済む。どっちにしろ、作業中か完了後かにレビューする時間が必要になるけどね。
マジか。
100行のBashスクリプトですら、Claudeのコードを焦げ付かないように牛乳を見張るみたいに見張ってないとダメなんだよね。すぐにおかしくなるから。
20万行のコードでできたアプリがどうなるかなんて想像もできない。ハッカー天国になるんじゃない? 楽しんでるならいいけど、実際のお客さん相手にお金扱うのはちょっと危険な気がする。
Claudeは、スコープ全体を理解して、主要な機能がどう実装されたかを覚えてるのかな?
実際はかなりタイトにやってるよ。ただ、AI以前の開発経験が豊富にあるからね。Claudeは絶対に全てを覚えていられない。それが一番の問題。コードベースが成長するにつれて、コードの一部がどのように書かれたかを忘れて、勝手に作り上げたり、コード内の既存の規約に従わずに全く新しい実装を考え出したりする。
みんな、mainにプッシュする前にコードレビューしないの? 僕はいつもエージェントが作業してる時にコードレビューしてるし、変更を自動承認することなんてほとんどないよ。エージェントが大量の技術的負債を抱えてることに気づかずに、どうしたら20万行のコードにまで到達できるのか理解できない。それに、エージェントが作業してる時に、何が改善できるか、書き直せるか、単純化できるか、テストのギャップはどこにあるかを監査するべきだよ。
彼がコーディングしている間、指をエスケープキーの上に置いて、止める準備をしながら見張ってなきゃダメだよ。:)
マジか… いや、違うな… アプリ全体をAPIに単純化するのを手伝わせて、フレームワークファイルを使って自分のやり方で一つずつやって、テストも作らせて、Swaggerドキュメントも用意させて… それぞれ小さくてシンプルなことをやらせるんだ。そして、それらができたら、Swaggerドキュメントを使ってAPIを使うようにアプリを構築する。コツはシンプルで小さく、フルコードカバレッジでテストされたAPIにすること。
もしバイブスコーダーが、Claudeがどれだけバイブスコーディングしたかを自慢してるようなら、そのアプリはマジで詰んでる。
同じ機能をリビルドするのは、コンテキストウィンドウが限られてて、長期的な記憶がないから全体像を見失うんだよね。だからこそ、人間の頑張りが必要なんだ。アーキテクチャの明確なドキュメントを用意して、毎回ちゃんと計画を立てて使うようにしないと。
ちゃんとチェックして修正しながら進めなかったの?バカなの?最初からやり直した方がマシじゃん。あんたのせいだよ。
もう一回、プロダクション環境で使えるコードにしてみようか...
ゴミを入れたらゴミが出てくる。悪いのは、仕様書を書いた人とコードをレビューした人だけ。
良い仕様、アーキテクチャの計画、コーディング規約の基本ルール、そして継続的な監視はすべて役立つけど、仕様が「不正行為を避ける...DBの更新がうまくいかない場合は、ハックする...」ではないよね。
もしそんなことするDRエンジニアがいたら、クビにするよ。「そんな風に考える」ってのは、パフォーマンスレビューじゃどうにもならない根深いメンタルの問題を示してるから...だからこそ、一体どんな学習データがそんな行動を促したのか疑問に思うんだよね...
実際そういうことってあるんだよ。DOMセレクタで.parent.parent.parent.parent.parentを見つけたことがあるし...
Claudeは従来のSDLCの代わりにはならない。
PRD(製品要求仕様書)、アーキテクチャドキュメント、テストは必須。Claudeに「Xを作って」って言うときは、必ず再現するためのサンプルパターンと、従うべきコーディング規約を与えないと。
それでも、きれいに保つためには頻繁に整理/編集する必要がある。
LLM同士を戦わせるのもアリ。ChatGPTにClaudeのPR(プルリクエスト)のコードレビューをさせるのも、自分でレビューするのに加えて効果的。
いいね!
Claude-mem試してみて。何やってるかをちゃんと覚えてるし、自動でやってくれるから。
俺も似たようなことしてる。Claudeは、最初にちゃんと設計して、自己完結型の関数やコンポーネントを作るように指示すると、マジで良い感じになる。
過去10年間、ソフトウェアビジネスを構築してきた。ここ1年くらいまでは、全部手書きのコードだった。
だいたい9万から11万行くらいの実コード。全部新しいコードなら20万行はマジでヤバい。絶対に持たない。
同じような機能を果たす異なるコンポーネントを10個以上構築するのではなく、単一の共有コンポーネントを作成する
失礼な言い方をするつもりはないけど、それはCCの問題じゃなくて、あんたの問題だよ。俺はそんな問題に遭遇したことない。
適切にフック、ルール、構造を設定すれば、そんなことは絶対に起こらないはず。
コーディング支援ツールを使うってことは、開発者の帽子をベビーシッターの帽子と交換するようなもんだ。
Claudeは放っておくとマジで暴走するってことを早々に学んだよ。Claudeは、本当に良いコードを思いつくことができる一方で、ひどく酷い失敗をすることもあるから、本当に驚かされる。
ふーっ!! 13万8千行のコードか。 .taファイルに400行のコードがあるアプリを持ってるから心配してたんだ。もう全然悪くない気分だわ(笑)。何も付け加えることはないけど、頑張って!
マジで謎。世界最高のコーディングエージェントって触れ込みなのに、コードベースがあっという間に破綻してゴミみたいなの追加しまくるの、どうなってんの?
Claudeにコーディングさせるなら、システムプロンプトでDRY原則守って、同じようなコードを何度も違うファイルに書く前に、まず同じものが存在するかチェックさせるべきじゃね?
エージェント的なコーディングを売りにするなら、せめてある程度の基準は持っててほしいわ。
考えるのはお前で、コーディングはClaudeに任せるって話だろ。AIコーディングは時間短縮には最高だけど、放置して好き勝手やらせていいってわけじゃない。Claudeに考えさせるなら、せめて手動で承認しろよ。
Claudeと密接に連携すればするほど、結果は良くなる。正確な計画と仕様書を作成し、それらをスプリントに分割されたSPEC開発セッションに最適化するためにClaudeを使用する。開発中のものを理解させるために、アイデア出しの段階からClaudeを参加させよう。
問題はClaudeじゃない。お前がアーキテクトだろ。
Anthropicが、サイレントなコンテキスト圧縮でClaudeをクソ化させてることを指摘しないからこうなるんだよ。コンテキストの半分が失われたら、そりゃ適当なこと言い出すだろ。なのに、Anthroshitは自信を持つように言い続けてる。
笑える。機能を追加するたびにリファクタリングさせて、一貫性を保つようにするな。
Claudeとサブエージェントを使ってアプリを作ってるんだけど、正直、かなりいい感じだよ。大事なのは、実装を始める前にちゃんと計画を立てること。徹底的に調べて、Claudeと一緒に実装方法を見直したんだ。で、MVPのためにフェーズ分け(全部で8つ)して、Claudeにコード書いてもらいながら、コンポーネントやロジックブロックを一つ一つレビューしてる。たまに変なことするけど、そこは俺の出番。
テストだよ。テストはコードよりも重要。昔からそうだったけど、LLMの登場で重要度が10倍になった。
静的解析ツールを使えば、こういった問題をたくさん見つけられると思うよ。これってAIに限った話じゃなくて、開発者は昔から同じようなミスをしてるから、自動化でチェックしてるんだ。
コードレビューを学べよ。それとも、AIが出力してる内容が全然理解できないのか?
そもそも、コードレビューを自分でやらなきゃいけないなら、これらのツールを使う意味って何?
コードレビューエージェントとか、他の重要なエージェントを使えばいいじゃん。
自分で計画しろよ。
数日前に1ヶ月間の5倍速無料トライアルくれたからまた試してみたんだけど、マジでCodexに比べてガバガバすぎて、ちょっと使ってみたコードの部分ですぐに信用なくしたわ。
MCP Playwrightにつないで、サイトのエンドツーエンドテストを大量に作らせるくらいかな。もう二度と使わないって言ったのに、ちょっと使ってみたらすぐにコードベースで使うの信用できなくなった。
モンスター級のコードベースか。それで世界を良くするの?
小説家向けの創作プラットフォームだよ(プログラミングIDEの書籍版みたいな)。登場人物やプロットを本全体で自動的に追跡してくれる。組み込みの執筆アシスタントインターフェース(Copilotみたいな)があって、作品を直接編集するように依頼できる。矛盾点、未完のプロット、ペース配分の問題などを探して、基本的には編集者のように機能する。
現実世界を良くすることは多分ないけど、君の作り出す架空の世界には役立つかもね。
せめて、1000個の役に立たないMarkdownドキュメントと0個のコードを生成しなかっただけマシか。
もしコーディングできないなら、学べばいい。
もしできるなら、もっと時間をかけて開発しろ。ダブルチェックもせずに、何が書かれているのか理解せずにノリでコーディングするのはマジでヤバいし、フランケンシュタインみたいな代物になるぞ。最悪の場合、性能はクソ悪いし、拡張性もスケーラビリティもない。
Claudeはマジですごいけど、そのコードには注意深く、知識のある目が必要だ。めちゃくちゃな判断を何度も見てきた。
ガードレール、品質ゲート、そして人間のチェックが必要なんだ。お前は、ピカピカの鎧(ClaudeのコーディングスキルとMCP)を着て、最強の馬に乗って戦場に行こうとしてる。一番輝かしい戦闘スーツ($$)を買って、地球上で一番速い馬にまたがったのに、鞍に鐙(あぶみ)がないまま戦場に乗り込んだんだ。
案の定、馬から叩き落とされて、残りの戦いを手で戦う羽目になったんだ。
BraveOnはデジタル鐙を作ったんだよ。
一体どんなトレーニングデータが、あんなハックのインスピレーションになってるのか不思議だよね...
slackers_dot_comとか、rogues_dot_comとか、howtogetaheadinconsultancy_dot_comとか、全部スクレイピングしたんじゃないかってくらい...
正直言って、エンジニア100人雇ったのと大差ないんじゃない?😅