
2026/09/10 22:02
悪いコードはタケノコのようである。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
以下は、主要な点をすべて保持しつつ、「キーポイントリスト」からの具体的な詳細(コミット証拠など)を取り入れて完全性を確保した改善されたバージョンです:
改善されたサマリー:
中央にある主張は、ソフトウェアチームが直ちに未使用のコード機能を実装から削除し、それらが管理不能な「クイズ(藤蔓)」化することを防ぐべきだと説きます。この「クイズ」という比喩は、コミュニティによる積極的な剪定が行われない限り基盤を取り囲んでしまう侵略的plant由来です。機能追加が成長を促すことと一般的に捉えられていますが、著者は、蓄積された AI 生成の機能性がプロジェクトの価値および保守性を低下させる理由として、開発者たちがこれらの機能の上に依存するコードを構築するため、時間の経過とともに削除が指数関数的に難しくなることを指摘します。歴史的証拠は、これが何十万行にも及ぶ不要なコードの実装(「スパークル絵文字マジックワンド」機能)をもたらすことを示しています。これを相殺するために、著者は具体的な事例研究を通じて自らのアプローチを説明しています:5 月に追加されナビゲーション用に意図された未使用の「ハッシュタグバブル」機能が停滞しており、合理的な分析に基づくと過去 3 ヶ月間トップ 30 訪問ページに現れていませんでした。この低価値な資産を維持するのではなく、チームは厳格な剪定戦略を採用しました;コミット履歴には、タグサイドバーとバブルを削除し検索バーをヘッダーに戻すための動きが記録されています(コミット:
77e2c5a、85000e2、91b6fde)。機能を追加した時点で即時削除する計画を残すことで、チームは維持コストよりも削除が容易になることを保証し、実際のユーザー価値のないコードの維持から資源を節約します。したがって、業界標準は単に「輝く」機能を追加することから、技術的停滞と cluttered なインターフェースを防ぐために積極的に古くなった機能を剪定することにシフトする必要があります。本文
「ブドウの栽培」—— コードの枯れ木剪定(PR)
この物語は、ヘンリ・マーティンの作品に着想を得ていますが、現代的な寓話として**「コードの枯れ木剪定」**をテーマとしています。
クズ(葛)とは何か
- 概要: かつて東アジアから東アメリカへ導入され、土壌侵食対策に用いられた植物です。
- 特性:
- 侵入後は異常に成長し、歩道や家屋の基礎、さらには樹々さえ飲み込む恐るべき生命力を有します。
- 単独での努力では駆逐不可能です。蔓延地域に住む人々が結束し、集中的かつ果敢な剪定戦略が必要です。
コードベースにおける「クズ」の正体
コードに導入された機能は、一度追加されると以下の運命にあります。
- 難易度の高い削除:
- 単純な機能であっても、**「粘性」**として強く付着します。
- 単なる消去ではなく、他者がその上にもさらにコードを重ね書きする原因になります。
- 肥大化:
- 気づけば誰も望んでいない実装機能が、数年かけて膨大化します。
- その結果、スパークルエモージや魔法の杖、AI 機能といった輝かしい文面が並ぶようになりますが、削除は極めて困難です。
- 代償:
- 感謝されない、プロモーション資料にも載らない**「無償の労働」**となります。
- これにより私たちは、何十万行もの此类の機能をリリースしてしまっています。
なぜ今、「剪定」が必要なのか
複雑性を絶えず排除しないと、生成される「クズのようなスラップ(不要な機能)」がコードベースを覆い尽くし、開発者を飲み込んでしまいます。
- 追加は容易だが、削除こそが重要: 機能を追加する時代ではありません。それゆえに、取り除くための道筋を自ら残しておくことが重要です。
- 格段に容易になった削除環境: 以前よりも作業自体が容易になっているからこそ、大胆な剪定を行って構いません。
実践例:ハッシュタグバブルの廃止
今年 5 月にブログに導入した機能「ハッシュタグバブル」は、典型的なクズです。
- 背景: ミレニアル世代が愛するソーシャル・ハッシュタグを頻繁に使おうと考えました。
- 目的: ユーザーが洗練された機械学習技術を活用し、淡々とした文章を美しくナビゲートできるようにするためです。
- 結果:
- 数ヶ月の実用環境での監視を経て、利用率は極めて低かったことが判明しました(答えは断定的な**「いいえ」**)。
- Plausible アナリティクスによると、この機能を含むページは過去 3 ヶ月間に訪れられたトップ 30 にすら入りません。
- 維持する価値はありません。
※本データは 2024 年 5 月 1 日以降のものです。
コミット履歴から見る剪定戦略
機能を作成したほどに容易な手法で剪定を行いました。以下のコミットにより不要な機能が除去されました。
— チャangelog のエントリー追加(文脈整理のため)77e2c5a
— 検索バーをヘッダーへ戻す85000e2
— タグサイドバーとタグバブルの削除91b6fde
これにより、コードベースは再び清く保たれました。