保守しやすいコードについて最近考えていること

最近、修正案件を担当する機会が増えました。

自分で制作したサイトを修正する場合は、どのような意図で実装したのかを把握しているため、あまり迷うことはありません。

一方で、修正案件では他の方が制作したコードを読む機会が多くあります。

その中で、「こういう考え方で管理しているんだな」と感じることもあれば、「なぜこの構成になっているんだろう」と考えることもありました。

同じWebサイトでも、書き方や管理方法にはさまざまな考え方があります。

そうしたコードに触れる中で、保守しやすいコードについて考える機会が増え、自分自身のコードの書き方についても意識が変わってきました。

今回は、修正案件を通して最近考えていることを書いてみたいと思います。

コードを書く時間より、探す時間が長いことがある

修正案件では、まずコードを書く前に調査から始まります。

どのファイルを修正すれば良いのか。

どこまで影響するのか。

CSSはどこで管理されているのか。

実装そのものよりも、修正箇所を探す時間の方が長く感じることもあります。

特に、ファイルが複数の場所に分散していたり、影響範囲が分かりにくかったりすると、修正すること自体に不安を感じることがあります。

初めて触る人が迷わないかを意識するようになった

コードを読む機会が増えたことで、最近意識するようになったことがあります。

それは、
「初めて触る人が迷わないか」
という視点です。

修正案件では、サイトの背景や実装意図を完全に理解した状態でコードを読むことの方が少ないように感じています。

そのため、

  • クラス名から役割が想像できるか
  • どこを修正すれば良いのか分かるか
  • 影響範囲が見えやすいか

といったことを以前より意識するようになりました。

以前は「どう書くか」を考えることが多かったのですが、最近は「初めて触る人が迷わないか」を考えることが増えています。

未来の自分かもしれませんし、今後修正を担当する人かもしれません。

では、私にとって探しやすいコードとはどのようなコードなのでしょうか。

探しやすいコードとは何だろう

私は「探しやすさ」を意識するようになりました。

例えば、同じセクションを修正したい場合でも、関連するCSSがファイル内の様々な場所に書かれていることがあります。

もちろん整理方法には様々な考え方がありますし、その構成になっている理由もあると思います。

ただ、修正する立場としては、関連するコードが近い場所にまとまっている方が全体像を把握しやすく感じます。

私が探しやすいと感じるコードには、いくつか共通点があります。

その一つが、クラス名から構造や役割が想像しやすいことです。

私はBEMを使うことが多いのですが、それは、どの要素がどこに属しているのかを把握しやすいと感じているためです。

CSSについても同様で、私はセクションごとにまとまっている方が探しやすいと感じています。

一方で、役割ごとに整理する考え方もあります。

どちらが正しいという話ではなく、修正案件を経験する中で、私はセクション単位でコードを追える方が探しやすいと感じることが増えました。

コードを短くすることだけが正解ではない

以前は、同じ見た目のものはできるだけ共通化した方が良いと思っていました。

実際、コードを短く書けたり、管理しやすくなったりする場面も多いと思います。

しかし、様々なコードに触れる中で、共通化することだけが正解ではないと感じるようになりました。

今は同じ見た目でも、役割や今後の運用を考えると、あえて分けておいた方が修正しやすい場合があります。

そのため最近は、コードを短くすることだけでなく、将来の修正や拡張のしやすさも意識するようになりました。

後から機能を追加するとき、不要になった機能を削除するとき、影響範囲を把握しやすいか。

そういった視点でもコードを見るようになった気がします。

実務では、既存の実装と似た構成のページを作成する場面もあります。

もちろん参考にすることはありますが、私はそのままコピーして使うことはあまりありません。

見た目は同じでも、当時どのような意図で実装されたのか、なぜその構成になっているのかまでは分からないことがあるためです。

また、現在作成しているページのクラス設計や管理方法と合わない場合、後から修正や保守を行う際にかえって複雑になってしまうこともあります。

そのため、既存コードを参考にしながらも、自分なりに内容を理解した上で組み直すことを意識しています。

一時的な実装の速さだけではなく、その後の保守のしやすさも考えるようになりました。

おわりに

修正案件を担当するようになってから、コードに対する考え方が少し変わりました。

以前は「どう実装するか」を考えることが多かったのですが、最近は「どう探すか」「どう修正するか」という視点でもコードを見るようになりました。

今回書いた内容も、現時点の私が感じていることです。

まだ経験も浅く、これから様々な案件やコードに触れる中で考え方が変わることもあると思います。

それでも、人のコードを読む機会が増えたことで、自分なりに大切にしたいことが少しずつ見えてきました。

これからも保守しやすいコードについて考えながら、学び続けていきたいと思います。

気軽に参加できる無料オンライン相談会やってます。

「こんな事って出来るんですか…?」 「こんな課題があるんだけど、なにか手軽に出来ることないですか…?」
お問い合わせや資料請求するほどじゃないけど、クリエイティブ関連でちょっとSokoageに聞いてみたい。というラフな相談から始められる、無料オンラインミーディングです。

PROFILEわたしが書きました

Sokoageでフロントエンドエンジニアをしています。趣味は登山とゲーム。いつか犬と暮らすのが夢です。