悪いコードはクズ(Kudzu)のようなもの
Bad Code Is Kudzu (vickiboykis.com)
要約
クズ(Kudzu)は、一度導入されると急速に成長し、すべてを覆い尽くす植物です。ソフトウェア開発においても、一度追加された機能は削除が非常に困難になり、不要なコードが蓄積していく傾向があります。開発者は、コードの追加だけでなく、削除する計画も立てる必要があり、複雑さを継続的に排除しないと、コードベースが「クズ」に覆われてしまう危険性があると論じています。
全文翻訳
Bad code is kudzu
[画像: Cultivation of the Vines, Henri Martin]
Cultivation of the Vines, Henri Martin
クズは、土壌浸食を防ぐ目的で、かつて東アジアからアメリカ合衆国東部に導入された植物です。
しかし、一度導入されると、クズは攻撃的に成長し、歩道、家屋、基礎、さらには木々をも覆い尽くすことがあります。
クズを枯らす唯一の方法は、集中的に剪定することです。これは、クズが生えている近くに住む人々全員が協力して行う戦略です。
この比喩が何を意味するかお分かりでしょう。一度コードベースに追加されたアプリの機能は、削除するのが非常に困難になることがあります。
単純な機能でさえ非常に定着しやすくなります。なぜなら、コードを削除するだけでなく、さらに悪いことに、人々はあなたのコードの上にコードを書き始めるからです。気づけば、誰も望んでいない実装された機能に2年も費やしていることになります。
コードの削除は困難です。特に、通常はプロモーションパッケージに載らず、感謝されない作業であるため、私たちは何十万行ものキラキラした絵文字や魔法の杖AI機能を出荷することになりますが、コードの削除は静かに行われます。
しかし、この新しい時代においては、私たちはさらに積極的にコードを削除しなければなりません。なぜなら、絶えず複雑さを除去しなければ、コードベースを覆い尽くす生成されたクズの残骸の中に溺れてしまうからです。
物を追加するのが容易な時代において、追加した機能の削除計画を立ててください。特に、以前よりもずっと簡単になっているからです。
例えば、5月に私はブログにハッシュタグバブルを追加する機能を追加しました。私はミレニアル世代であり、ソーシャルハッシュタグは私の愛の言語です。私はそれらを常に使うだろうと思っていましたし、私のサイトの訪問者も私の賢明な文章を美しくナビゲートするためにそれらを常に使うだろうと思っていました。私は洗練された機械学習技術の組み合わせを使用しました。
ユーザーが実際に本番環境でそれらを使用するかどうかを確認するために、数ヶ月間そのままにしておきました。そして、その答えは圧倒的なノーでした。
Plausibleのアナリティクスでは、過去3ヶ月間でトップ30の訪問ページに含まれていませんでした。
[画像]
数人がそれらから何かを得た可能性はありますが、特にそれらを元に戻すのが非常に簡単であることを考えると、維持する価値はありません。(このデータは5月1日以降のものです。)
[画像]
だから、クズを剪定する時が来ました。それは作成するのが容易だったのと同じ方法で。
[画像]
この機能のコミット履歴は以下の通りです。
- 77e2c5a — Changelog entry
- 85000e2 — Move search bar back to the header
- 91b6fde — Remove tag sidebar and tag bubbles
💆♀️