BLOG
こんにちは、TAのモレイラです。
今回コーディングで使う英語について書いてみようと思います。
皆さんのプログラムやツール開発を行う際、どのような書き方を使われるのでしょうか。
関数や変数の名前を短く設定したり、または内容の説明をできるだけ名前にまとめたり。
コメントを日本語にしたり、または英語にしたり。
様々な書き方があると思います。
正解が決まっている訳ではありませんが、いくつかのルールを参考にすると、きっとみんなが幸せになるコーディングになると思います。
「リーダブルコード」という書籍はとてもオススメなので、ぜひ一度読んで、いつでも確認できるように手元に置いていただきたいです!
コーディングの書き方は、書き始める頃は「作業者本人が内容を分かれば良い」という考え方は間違いではありませんが、人間の記憶は不思議なもので、コードをたくさん書いていると、一か月後、一週間後、翌日の自分は今日の自分が書いたこと、意図、経緯などがはっきりと思い出せないことが普通です。言い方を変えると、その未来の自分は、自分ではなく他人だと思った方が良いです。
未来の自分が幸せになるために、今日の自分が頑張って読みやすいコードを書くしかありません。
そのために、今日は「英語の使い方」という件に触れて皆さんの参考になれたらうれしいです。
最近のIDEはとても優秀です。
近年のAI機能搭載の加速はもちろんですが、今回のテーマに合わせて使える辞書機能も実はあります。
関数、変数、コメント、何であっても、英語だけでなく任意の言語の語彙として存在しない単語が検出されたら警告を出してくれます。
1public class HelloWorld
2{
3 private static int CaclulateSquare(int value)
4 {
5 int result = value * value;
6 return result;
7 }
8
9 static void Main()
10 {
11 int testValue = CaclulateSquare(5);
12 Console.WriteLine(testValue);
13 }
14}
Typo: In word 'Caclulate' :3
また、「正しい英語ではないけど、この単語は使いたい!」というケースも時々あります。
このようなケースはできるだけ避けるべきですが、パッと見た時分かりやすければ許容範囲内だと思います。
そのために、上記に書いた辞書の使い分け機能も役に立ちます。
プロジェクト全体用の辞書、チーム用の辞書、自分用の辞書など、使う人によって分けることも可能です。
1private static int FuntasticSquare(int value)
間違った単語もそうですが、単語の間違った順番や文法も極力正しく使うと良いです。
例えば、PictureExistCheck のような関数名。
名前を読めば、処理内容が分からなくはないですが、細かい話をすると、「Picture」が単数で「Exist」は複数に使う動詞形式なので、チェックしている画像の数が単数なのか複数なのかが少し曖昧になってしまいます。
また、良く使われる Get~ や Set~ などという関数名は割と分かりやすいと思いますが、同じ構造に沿って動詞で始めるとより自然になります。
PictureExistCheck を CheckIfPictureExists や CheckIfPicturesExist などに書き換えた方が、パッと見て分かりやすいと思います。
うっかり間違った単語を登録してしまうと、逆に正しい単語として認識されてしまうので、主に専門用語や固有名詞の登録として活用すると良いです。
省略した単語も場合によってコードを扱いづらくしてしまいます。
GetDupImg のような関数名を読むと、その意味を考える必要がありますが、省略せずにGetDuplicateImages に書き換えれば、パッと見て通じます。
Ctrl や Dict など一般的に使われる省略した単語もありますので、ケースバイケースで名付けを見極めて分かりやすい命名を選びましょう。
「とりあえずこの名前でいいか」と、ついつい思ってしまうかもしれませんが、名前の修正対応を後回しにすればするほど、直さないといけない箇所が増えます。
もちろん、作業のキリの良いところで対応した方が良いですし、名前修正専用のコミットで対応した方が良いとも言えます。
また、影響範囲を図りながら細かく動作確認を行うと、後々不具合に遭遇しづらくなります。
自分だけで作業していたらまだしも、他の人も自分の書いたコードを触ることになったら、間違った名前があると相手の混乱を招くことになり、コード内の検索機能の有効性が低下してしまい、コードが間違いだらけで丁寧に作られていないという印象を与えてしまいます。
そして最初に書いたように、この「他の人」は「翌日の自分」かもしれないので、油断は禁物です。
コード内の処理の質は別として、ものの名前について意見を聞いてみましょう!
覚えていなかっただけで、意外ともっと良い名前があったりするので、ぜひ他の人の意見を活用しましょう。
今回のブログの内容はいかがでしたでしょうか。
コードを書いていれば、自分のコードであっても他人のコードであっても、一度はこのようなことについて考えたことはないでしょうか。
是非読みやすいコードを書くようになって、幸せなコーディングライフを送りましょう!