「小さな修正を繰り返すと破綻する」——HTMLを学んだ人なら知っている、技術的負債の怖い話

HTML/CSS入門

はじめに:その一言の意味、わかりますか?

「このまま小さな修正を繰り返していくといずれ破綻するのは、HTMLを学んだ人であれば誰でもわかるはず」

こんな言葉を耳にしたとき、あなたはピンときましたか?

HTMLを触ったことがある人なら、この言葉の意味に思わずうなずいてしまうはずです。今回は、なぜHTMLで「小さな修正の積み重ね」が破綻につながるのかを、コードを交えながらわかりやすく解説します。


そもそもHTMLとは?基本の「キ」

HTML(HyperText Markup Language)は、Webページの骨格を作る言語です。文章に「これは見出しです」「これはリストです」といった意味(構造)を与えるのがHTMLの役割です。

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>サンプルページ</title>
  </head>
  <body>
    <h1>大見出し</h1>
    <p>本文テキストはここに入ります。</p>
    <ul>
      <li>リスト項目1</li>
      <li>リスト項目2</li>
    </ul>
  </body>
</html>

シンプルに見えますよね。でも、ここに「とりあえず直す」を繰り返すと、どうなるかが今日の本題です。


「小さな修正」が積み重なると何が起きるのか

ケース1:見た目だけをインラインで直し続ける

最初はきれいだったHTMLも、「ここの文字を赤くして」「この部分だけ太字に」といった修正を都度HTMLに直接書き込んでいくとこうなります。

最初のコード(きれいな状態)

<p class="notice">重要なお知らせがあります。</p>

修正が積み重なった後

<p class="notice" style="color: red; font-weight: bold; font-size: 18px;
   border: 1px solid red; padding: 5px; background: #fff0f0;">
  重要なお知らせがあります。
</p>

同じ「お知らせ」が他に20箇所あったとき、デザインを統一しようとすると…全部手で直す羽目になります。

ケース2:構造が崩れたHTMLに無理やり追加し続ける

見た目を整えるために <div><span> を乱用した結果、こんなコードになることがあります。

<!-- 「ボタンっぽく見せたい」を繰り返した結果 -->
<div>
  <span>
    <div style="cursor:pointer; color:blue;">
      <span style="text-decoration:underline;">
        クリックしてください
      </span>
    </div>
  </span>
</div>

これは本来、たった1行で書けるはずのものです。

<a href="/next-page">クリックしてください</a>

無意味なネストが増えるほど、どこを直せばどこに影響するかが誰にも予測できなくなっていきます

ケース3:クラス名が衝突してスタイルが壊れる

<!-- 最初 -->
<p class="text">通常の本文</p>
<!-- 後から追加 -->
<p class="text" style="color: green;">お知らせ文(緑)</p>
<!-- さらに追加 -->
<p class="text important special">緊急のお知らせ(どっちが優先?)</p>

クラスが増えるにつれ、どのスタイルが当たっているのかが把握できなくなり、1か所直すと別の場所が壊れるという状況に陥ります。これが「破綻」の正体です。


なぜこうなるのか:技術的負債とは

エンジニアの世界では、この「後で問題になるとわかっていながら、今は楽なやり方を選ぶこと」を技術的負債(Technical Debt)と呼びます。

借金と同じで、放置するほど利子が増えていきます。

段階 状況
最初 シンプルなHTMLで管理しやすい
修正×10回 やや複雑だが何とかなる
修正×50回 「なぜこうなってるか」誰もわからない
修正×100回 1か所直すと5か所壊れる。破綻。

破綻させないためにどうすればよいか

① 意味のあるHTML(セマンティックHTML)を使う

<!-- ❌ 意味のない構造 -->
<div class="box1">
  <div class="title-text">お知らせ</div>
  <div class="body-text">内容です</div>
</div>

<!-- ✅ 意味のある構造(セマンティックHTML) -->
<article>
  <h2>お知らせ</h2>
  <p>内容です</p>
</article>

② スタイルはCSSファイルにまとめる

インラインで style="..." を書くのをやめ、CSSファイルに集約することで、デザイン変更が1か所で完結します。

/* style.css */
.notice {
  color: red;
  font-weight: bold;
  border: 1px solid red;
  padding: 8px;
}

③ 修正するたびに「なぜこう書くのか」を意識する

場当たり的に直すのではなく、「このタグの役割は何か?」「このクラス名は意味が伝わるか?」を常に自問する習慣が大切です。


まとめ

「小さな修正の積み重ねが破綻を招く」というのは、HTMLに限らず、あらゆるコードやシステムに共通する話です。しかしHTMLはとくに、直感的に書けてしまうがゆえに、気づかないうちに技術的負債を積み上げやすい言語でもあります。

HTMLの基本を正しく理解し、「構造」と「見た目」を分離する意識を持つだけで、将来の自分(やチームメンバー)を助けることができます。

最初のひと手間が、未来の10時間を救います。

コメント

タイトルとURLをコピーしました