はじめに
本記事では、プログラミング時に必ず使用する変数・関数・クラス等の命名について考えます。
なお、辞書的な記事ではないので、ご了承ください。
よい実装とは・・・
よい実装の条件には、様々なものがあると思います。
例えば、
- 再利用性が高い
- 保守性が高い
- 冪等性が保持されている
- 構成が単純である
などでしょうか? いろいろあるかと思います。
一般的には、KISS(Keep it simple, stupid)の法則ですとか、DRY原則に即しているものが良いものだと考えています。
よい実装の条件の一つとして 「読みやすい」 という条件もあるかと思います。
では、その 「読みやすい」 について考えます。
「読みやすい」実装とは
プログラミングされた内容を見たときに、そのプログラミングされた変数名やメソッド名・関数名を読むことで、
容易に何をしているか判断できる実装が「読みやすい」実装かと思います。
たとえば、「openFlag」のような変数があり、true/falseを保持するような変数があった場合、
実装者は、trueの場合はこう、falseの場合はこう、っていうのがわかるでしょう。
一方で、その実装を見た第三者は、trueの場合がどういうことなのかをプログラムを読みながら確認していく必要があります。
つまり考えないとわからない、読んだだけでは分からないのであれば、「読みやすい」とはなりません。
この例であれば、「canOpen」とかの変数のほうがよいでしょう。
要件が複雑な場合はどうする?
要件が複雑な場合に、実装されたロジックもそれに合わせて複雑になるのは必然なことでしょう。
結果、その構築されたロジックを読まないと実装内容が分からないです。
であれば、どう「読みやすく」するのか・・・
そのような場合は、複雑な処理はメソッドにまとめ、そのメソッドに何をしているかが判断できるメソッド名を命名し、
メイン処理で、そのメソッドを呼ぶようにするとよいと考えます。
そうすることで、メイン処理をメソッド名を読むことで何をしているかが理解できます。
命名の引き出しを増やす
分かりやすい命名を行うためには、
プログラミングで使う(使える)英単語について、引き出しを増やすことが、エンジニアは必要だと考えます。
一朝一夕では、無理かもしれませんが、日々少しずつインプットしていくことが大事でしょう。
で、宣伝ですが…
プログラミングで使える英単語の単語帳アプリを作りました。
その名も、「プログ単語」!!
日々少しずつインプットできるかと思いますので、ぜひ利用してみたください(なお、Android版だけです)