Youtube登録者5000人突破!!

コードをきれいに書く技術【わかりやすいプログラミング】

プログラミングを行う際に、わかりやすいコードを書くことは重要です。

わかりやすければ、他人も見やすいし、自分も見やすいです。結果的に開発が早くなります。

ここでは、プログラムを見やすくするためのコツについて紹介します。

名前

きれいなコードを書く際に、最も重要視されるのが変数名です。

一般的な例題では適当なイニシャルがつけられていることが多いですが、実際のプログラムでは何を指しているのかわかりやすい名前をつけます。

そのため、初心者にとっては命名がすごく難しい作業になってしまいます。

名前が長くなるとコードも見にくくなるため、ベテランの変数の命名則のバランス感を身につけるのは至難の業です。

そこで、下記のルールを基準に変数を決めることをおすすめします。

  • グローバル変数は長くても良いので、わかりやすい名前を付ける
  • ローカルなど狭いスコープの変数は短い名前をつける

ローカルでは、変数の定義と使用が近いため、変数名がわからなければ定義から見直すことが出来ます。

例えば、ローカルならnとかi,jとかnptrとかで大丈夫です。

一方で、グローバル変数は別ファイルで定義されていたりするので、定義を探すのは至難の業です。そのため、グローバル変数にはコメントを付けても大丈夫です。

そのため、上記ルールを守ってもらうと、最低限のみやすさとわかりやすさを両立したコードが書けるようになるはずです。後はスコープの広さに応じて変数の情報量を調整してください。

クラス名

クラスは名前が混在しやすいので気をつけてください。

特に重要なのは、クラスメイトメンバ名で名前が重複しないことです。(user.usertext[i])

なんのオブジェクトを指したクラスなのかを明確にしておくと、このようなミスを防ぎやすいです。

統一する

細かいルールよりも統一していることが大事です。

例えば、同じ単語には同じ表現を使いましょう。(AtoB、A2B、ATOB)

if文のかっこをどこにつけるか、変数はキャメルとスネーク表記どちらで書くか(camelVar、snake_var)などです。

関数は能動的な名前をつける

関数は「動詞+名詞」の形にしましょう。

能動的な名前に統一することで、何に何をするのかがすぐに理解できるようになります。

例えば、getName()、isBump()などです。bool型はis〇〇()などの名前にすることで、TrueとFalseのどちらの値が返ってくるのかがわかりやすくなります。

例えば、checkBump()などだとTrueとFalseのどちらの値が返ってくるのかわかりにくいので、避けたい命名です。

式と構文

命名規則も重要ですが、ここからは式と構文について見ていきましょう。

構文の統一ルールを作ることで、頭のリソースをすべてコードを書くことに集中させることが出来ます。

インデント

インデントは統一させることが一番大事です。

そのため、みやすさのためにインデントをつけることは全く問題ありません。

インデントを一度付けると統一させるのが面倒に思えるかもしれませんが、実のところさほど作業量は多くなかったりします。完成品として納める前に、一度試してみても良いかもしれません。

条件演算子は肯定で

条件演算子は増えると非常にわかりにくくなります。

例えば下記のようになっていると、どれがどれだかわかりにくいです。

if(A == B || !(C == D))

ここで、可能ならNOT(!)で囲むのを外すようにして、ANDでつなげてみましょう。

if(A != B && C == D)

こちらのほうが断然見やすくなったと思います。

また、条件が多い場合はかっこでくくることでわかりやすくなります。

if((A < B) || (C < D + E))

if((A < B) && (C < D) || (E < F) == 0)

上記のかっこはプログラム上は不要ですが、人が見る際には助けになってくれます。

このように、かっこを入れてあげることも見やすいコードを書く助けになります。

よく使われる表現を使う

for文やif文などはかなり特殊な書き方も出来ます。

ミニマルなプログラムを書きたいと思い始めると、いかに行数を少なくするかに頑張りがちですが、それよりもスペースを使って慣習に習ったプログラムのほうが読みやすいです。

例えば、for文は下記のように書くのが一般的なので、この構成は崩さないほうが良いです。

for(int i = 0; i < n; i++){}

for(;;){}
while(1){}

他にも、listのイテレータを進める場合は下記のように使うなど、慣例があります。

for(item = list; item != NULL; item->next){}

慣習に習うことで書く人も楽ですし、読む人も楽になります。

ミニマルを目指すよりも、一般的な表現を使うことを心がけてください。

おわりに

今回は見やすいプログラミングをするためのテクニックについて紹介しました。

まずは変数名から心がけて、自分のルールを作ってください。それによってプログラミングの速度も向上するし、大規模なプログラムを作る抵抗がなくなります。

地味ですが、定期的に自分のコードが見やすくかけているかをチェックするようにする機会を設けるようにしましょう。

参考:プログラミング作法