【ほしゅせい】

保守性 とは?

💡 「未来の自分への思いやり」が詰まったコード品質
📌 このページのポイント
保守性の高いコード vs 低いコード 保守性が低い 1つの関数に全部詰め込み(500行) 変数名: a, b, tmp, data2 テストなし・コメントなし 修正に 3日 かかる 😱 触りたくない... 保守性が高い 機能ごとにモジュール分割 変数名: userName, orderTotal テスト・ドキュメント完備 修正に 2時間 で完了 😊 安心して変更できる! VS
保守性の高いコードと低いコードの比較
ひよこ ひよこ

保守性ってどういう意味なの?

ペンギン先生 ペンギン先生

ソフトウェアを「あとから修正したり改良したりしやすいか」を表す品質の指標だよ。例えるなら、整理整頓された部屋は掃除しやすいけど、散らかった部屋は何がどこにあるか分からなくて大変だよね。コードも同じなんだ。

ひよこ ひよこ

なんでそんなに大事なの?

ペンギン先生 ペンギン先生

ソフトウェアの一生のうち、最初に作る時間は全体の2〜3割くらいなんだ。残りの7〜8割はバグ修正や機能追加、つまり保守の時間なんだよ。保守性が低いと、その長い期間ずっと苦しむことになるんだ。

ひよこ ひよこ

保守性を高くするにはどうすればいいの?

ペンギン先生 ペンギン先生

いくつかポイントがあるよ。まず「意味の分かる変数名・関数名をつける」こと。次に「1つの関数には1つの役割だけ」にすること。あとはモジュールを分けて疎結合にすることだね。リファクタリングで定期的にコードを整理するのも効果的だよ。

ひよこ ひよこ

テストも関係あるの?

ペンギン先生 ペンギン先生

すごく関係あるよ!テストがしっかり書いてあると、コードを変更しても「壊れてないかな」をすぐ確認できるんだ。テストがないと変更が怖くなって、誰も触りたがらないコードになってしまう。これが技術的負債の温床になるんだよ。

ひよこ ひよこ

保守性って数値で測れたりするの?

ペンギン先生 ペンギン先生

いくつかの指標はあるよ。コードの複雑さを測るサイクロマティック複雑度や、関数の長さ、依存関係の数なんかが代表的だね。ただし、最終的には「半年後の自分や別のエンジニアがこのコードを読んですぐ理解できるか?」が一番大事な基準だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「保守性」って出てきたら「あとから直したり改良したりしやすいかどうか」と思えればだいたいOK!
📖 おまけ:英語の意味
「Maintainability」 = 保守のしやすさ
💬 maintain(維持する)に -ability(〜できること)をつけた言葉で、「メンテのしやすさ」を表すんだよ
← 用語集にもどる