日本語識別子の命名方法を検討してみました。
こんにちは、高木です。
最近では多くのプログラミング言語で日本語識別子(正確にはUnicodeの識別子)が使えるようになっています。
私は以前から日本語識別子について検討してきましたが、今日はその内容について書いてみることにします。
日本人なら日本語で関数名や変数名を付けるほうがわかりやすいのは当然です。
仕様書等に日本語で書かれた用語をそのまま識別子の中で使えば、プログラマーがそれぞれ勝手な訳語を付けて一貫性のないコードになることも防げます。
日本語で識別子を付けるのはいいとして、ルールもないままに場当たり的な命名をしてしまうとカオスな状態になってしまいます。
なので、ある程度しっかりしたルールを設けて、それにしたがって命名すべきでしょう。
以前考えていたのは、単語の切れ目を下線(’_’)でつなぐ、いわゆるスネークケースを考えていました。
しかし、日本語と下線を混在させるのは思った以上に面倒なので、今では下線は使わないほうがいいだろうと思っています。
現在考えているルールは次のようなものです。
1. 送り仮名の付け方は「送り仮名の付け方(内閣告示第二号)」に準じる。
2. 仕様書等の記述、業界等の慣習が上記と矛盾する場合は1.の規定を逸脱してもよい。
3. 英数字を使用する場合、いわゆる全角文字は使用しない。
4. 敬語(丁寧語を含む)は使用しない。
5. 関数やメソッドは0個以上の連用修飾語と1つの述語の構成とする。ただし、値の設定・取得を行うアクセッサの場合は体言を名前としてもよい。
6. 述語は原則としてサ変動詞の「する」を除いた語幹部分とする。
7. 判定を行う関数やメソッドの述語は、体言または形容詞(い形容詞)に終助詞「か」を付加したものとする。
8. 定数名や変数名は0個以上の連体修飾語と1つ以上の体言とする。
9. 修飾語には適切な助詞を付加し、意味を語順に依存させない。
10. 関数やメソッドの命名に引数に対応した連用修飾語を用いる場合は引数と順序を合わせる。
ちょっと表現が難しくなってしまいましたが、中学生レベルの国語教育を受けていれば理解できると思います。
今後は実際に運用してみて、その結果を見て調整していきたいと思います。
数学の話題とかを持ち出すと、社内でも「私は文系だからわかりません」という人が出てくるので、今回は思いっきり文系の話題にしてみました。