「コピペしたら2箇所直す羽目になった」——非エンジニアがAIと仕事して学んだDRY原則
この記事は「非エンジニアがAIと仕事して初めて知ったエンジニア概念」シリーズの第3回です。
ある日、Claude Codeとの会話
ぼくはClaudeと一緒にクライアント案件(業務システム)を作っていた。
途中でAIがこんなことを言ってきた。
「このロジック、3箇所にコピペされていますね。DRYにしましょうか?」
DRY?
聞いたことはあった。でも「乾燥している」以外の意味を知らなかった。
「どういう意味?」と聞いたら、Claudeは即座に説明してくれた。
「Don't Repeat Yourselfの略です。同じコードや情報を複数の場所に書かない、という原則です」
「繰り返すな」というルール
DRY(Don't Repeat Yourself)は、ソフトウェア開発における原則のひとつだ。
日本語に直訳すると「繰り返すな」。
なにが具体的にまずいのか?
実例で見てみよう。
DRYじゃない状態(WET)
# ファイルA
消費税率 = 0.10
税込価格 = 本体価格 × 1.10
# ファイルB
消費税率 = 0.10
税込価格 = 本体価格 × 1.10
# ファイルC
消費税率 = 0.10
税込価格 = 本体価格 × 1.10
3箇所に同じ数字(0.10)が書いてある。
消費税が10%から8%に変わったとき、3箇所全部直さないといけない。
1箇所直し忘れたら? バグになる。
DRYな状態
# 定数ファイル
消費税率 = 0.10
# ファイルA
税込価格 = 本体価格 × (1 + 消費税率)
# ファイルB
税込価格 = 本体価格 × (1 + 消費税率)
# ファイルC
税込価格 = 本体価格 × (1 + 消費税率)
「消費税率」の定義は1箇所だけ。変更するときは1箇所だけ直せばいい。
非エンジニアの世界にもある「DRY違反」
これを理解した瞬間、ぼくは気づいた。
自分の仕事にも、同じ問題が山ほどある。
Excelの罪
- 同じ数字が複数シートにコピペされている
- 更新するとき「あれはどのシートだっけ」と探し回る
- 古いバージョンと最新バージョンが混在して、どちらが正しいかわからない
メールの罪
- 「今月の売上レポート」と「今月の社内共有資料」に同じ数字が書いてある
- 数字が変わったとき、2通のメールを探して修正する
議事録の罪
- 会議で決まったことが「議事録」「報告書」「プロジェクト管理表」の3箇所に書いてある
- どれかが古くなって、どれが最新かわからなくなる
これ全部、DRY違反だ。
「ぼく、DRY違反してたんだ」
あるクライアント案件のプロジェクトで、Claudeがこんな指摘をしてきた。
「シフトのルールが
rules.txtとCLAUDE.mdの両方に書いてあります。どちらかを正本にして、もう一方は参照するだけにしましょう」
はっとした。
同じルールを2箇所に書いていた。更新するとき1箇所直しても、もう1箇所は古いまま。気づかないとAIが間違った情報で動く。
「1箇所だけ書く。他は参照する」——これがDRYだ。
DRYの逆は「WET」
DRYの反対概念はWETと呼ばれる。
- Write Everything Twice(全部2回書く)
- We Enjoy Typing(タイピングが大好き)
- Waste Everyone's Time(みんなの時間を無駄にする)
どれも皮肉な言葉だ。
WETなシステムは、最初は楽に見えて、あとで必ず痛みを伴う。
「DRYにすべきか」の判断基準
ただし、何でもかんでもDRYにすればいいわけじゃない。
Claudeが教えてくれた判断基準:
「この情報が変わったとき、何箇所直す必要がありますか?」
- 1箇所だけ → DRYになっている
- 2箇所以上 → DRY違反の可能性
もうひとつの基準:
「これは同じ理由で変わりますか?」
同じ理由で変わるものは、同じ場所に置く。
違う理由で変わるものは、たまたま似ているだけで、別物として扱う。
非エンジニアへの示唆
DRY原則は、コードの外の世界でも使える考え方だ。
- 会社の規則書は1箇所に集める(複数部署にバラバラに存在させない)
- 顧客情報は1つのシステムに入れる(ExcelとNotionと紙に分散させない)
- 仕様は1か所に書く(チャットとメールとドキュメントにコピーしない)
「情報の正本はどこか」を意識するだけで、ミスが減る。
まとめ
DRYを一言で言うと:
同じことを2回書いたら、それは直し忘れる未来への伏線だ
AIと仕事をしていると、こういう原則を自然と学ぶことになる。
Claudeはコードを書くとき、常に「これ、同じもの2箇所にありますね」と指摘してくる。それがなぜかを理解したとき、ぼくは少しだけエンジニア的な考え方を手に入れた気がした。
このシリーズについて
Claude Code(AIコーディングアシスタント)と仕事をしていると、エンジニアが当然のように使う概念に突然出会う。
非エンジニアの視点で、それを紹介していく。
- 第1回:冪等性(idempotency)—— 何回やっても同じ結果、という概念
- 第3回:DRY(Don't Repeat Yourself)—— コピペしたら2箇所直す羽目になる(この記事)
非エンジニアがAIと800時間仕事した全記録
DRYのような概念との出会いも含め、Claude Codeに$600を投じて自律稼働を続けた体験を全て書いています。
AIに仕事を任せてみた——非エンジニアが800時間で学んだ全記録(¥800・第2章まで無料)