オブジェクト指向とかデザインパターンとか開発プロセスとかツールとか

satoshi's ソフトウェア開発

js






当サイトはアフィリエイト広告を利用してます。

オブジェクト指向

的確な命名はコストダウンにつながる

投稿日:


プログラミングをしている人のほとんどは、命名が重要だということを理解していると思いますが、いろいろなコードを読んでいるとたまに不適切な命名に出会うことがあります。

命名が不適切だと明らかに可読性が下がり、プログラムを理解するために余計な時間がかかってしまいます。

的確な命名をすることにより、さまざまなメリットがあることを主張しておこうと思います。

設計の質が向上する

設計時点でクラスの責務とかメソッドの処理内容などを検討したり、レビューなんかでも議論されと思います。そのときに同時に、クラスやメソッドの命名が的確になされているかをチェックすべきです。

クラス名が的確ならばクラス名を見ただけで、そのクラスの責務が推測できます。これはとても重要なことで、例えば何かの機能追加をしようとしたときに、そのクラスに実装を追加すべきなのか、それとも別のクラスに追加すべきなのか、または新たなクラスを作成すべきなのか、判断の拠り所にもなります。

メソッド名が的確ならば、メソッド名が意味している以上の処理を書こうとすることは不自然になるので、自然とatomicなメソッドになりやすいという効果もあります。もちろん、そこに気付かなかったらatomicにならないのですが、ぼんやりしたメソッド名だった場合に比べると、明らかに気付きやすいし、結果的にatomicになりやすいはずです。

つまり、クラスやメソッドを的確に命名することは、クラスやメソッドの仕様を明確にするという役割を持っているとも言えます。

逆に、クラス名やメソッド名を見ても、それがなんなのかピンとこないような場合はどうするかというと、クラスやメソッドを理解するためにドキュメントやコードを読む必要が出てきます。

的確に命名されていても英語の意味が分からん!とかいう場合もあるかもしれませんが、そういうときは辞書引いて意味を調べ、コードを読んで確認すればいいのです。辞書を何度か引けば、頻出単語ならばそのうち単語の意味を覚えます。しかし、命名が不適切な場合は、名が体を表してないので、毎回コードを読むハメになってしまいます。

命名はイニシャルコスト

命名のためには適切な単語を選ばないといけないので、辞書を引くことも必要になりますが、それをやるだけの価値は十分にあります。これは新しいことを始めるときのイニシャルコストです。新しいクラスを作るとか、新しいメソッドを作ろうとしたときに、的確な命名をするというイニシャルコストをかけておけば、確実に可読性が向上します。結果、その後の設計フェーズでもコストダウンにつながるし、メンテナンスフェーズでもコストダウンにつながります。

自己投資でもある

実のところ、設計品質の向上やコストダウン以上に効果があるのは、自己投資につながる点だと言えます。こういう命名のような作業はある意味のトレーニングでもあるので、真剣に取り組んだ経験を重ねることはスキルアップにつながります。設計の質が向上することや英語を覚えることは、スキルアップそのものなのです。

反面教師

命名が不適切なために、グダグダになっているものの代表が Util クラスです。

単純に Util とか Utilities ではなくて、少なくとも NetUtilities や FileUtilities のようなクラス名にすべきです。そのように命名することで、そのユーティリティクラスの責務をある程度は絞れるので、安易に無関係な機能を追加されることを避けられます。

まとめ

なぜ、的確な命名がコストダウンにつながる理由をまとめておきます。

  • 適切な命名を選択する作業は重要なイニシャルコストです。
  • 自己投資となりスキルアップにつながります。
  • 適切な命名は責務が明確になり設計の質が向上する。
  • 可読性が高くなるためコードを理解するコストが低減する。
  • 結果的に保守性も向上する。

イニシャルコストをケチると、後で何倍にもなってツケが回ってきます。







-オブジェクト指向
-, , , , ,

Copyright© satoshi's ソフトウェア開発 , 2025 All Rights Reserved Powered by STINGER.