はじめに
コーディングしているといつの間にかコードが汚くなっているときってありませんか?今回はそんなときに見直してきれいなコードを書けるようにTipsとしてまとめてみました。
コードをnamespaceで囲もう
自分が作成したコードはnamespace 名前空間名で囲みましょう。プログラム同士の名前の競合を避けることができます。
namespace test
{
class Sample
{
public:
Sample() {};
~Sample() {};
private:
int value;
};
}
小さい規模のプログラムでは恩恵を感じにくいですが、徐々に規模が大きくなってくると思わぬところで名前の衝突が起きるかもしれないのでまだ囲んでいない方は今のうちに囲んでおきましょう。
マジックナンバーは使わないようにしよう
マジックナンバーとはソースコード内に書かれた、そのコードを書いたプログラマ本人にしか理解できない数値のことです。
Enemy enemy[10];
for (int i = 0; i < 10; ++i)
{
enemy[i].posx += 1;
enemy[i].posy += 1;
}
この場合、なんの数字10や1がなんの数字か分かりやすいですが保守性を高めるために以下のコードに修正してみましょう。
const int ENEMY_MAX = 10;
int speed = 1;
Enemy enemy[ENEMY_MAX];
for (int enemyNo = 0; enemyNo < ENEMY_MAX; ++enemyNo)
{
enemy[enemyNo].posx += speed;
enemy[enemyNo].posy += speed;
}
10→ENEMY_MAX, 1→speed, i→enemyNoに変更してみました。これで保守性、可読性が上がりました。
- コメントを書かなければ他の人が理解しづらいコードになってしまう。
- 自分が書いたコードをリファクタリングしようとしたときなどでも「なんでこの数値をいれたんだっけ?」と自分でもよく分からなくなってしまう。
- コードを修正する際に修正漏れが発生する。
など、デメリットが多いです。個人なら自業自得で済みそうですがチーム制作となるとすごく困ります。なのでちゃんと変数を使うことを心がけましょう。
コピー&ペーストをできるだけしないようにしよう
コピー&ペーストが悪いわけではありません。大体の場合、何度も同じ処理を書くなら関数などにしてその関数を使うほうが可読性も保守性も上がり後々楽になります。コピペしなくでもいい方法を考えてみましょう。
適切なコメントを書く
適切なコメントを書いておきましょう。あとから見直したときに理解するまでの時間が少なく済ます。日頃から他人が読んでも分かりやすいコメントを残す練習をしておきましょう。
const int ENEMY_MAX = 10;
Enemy enemy[10];
for (int i = 0; i < 10; ++i)
{
enemy[i].posx += 1;
enemy[i].posy += 1;
}
理解しやすい変数名や関数名を書く
これに関しては個人的には理解しやすい名前であれば多少名前が長くてもいいと思っています。理由はその変数が何なのか、この関数は何をしている関数なのかを理解するまでの時間が短ければ名前の長さなど些細な問題だと思っています。
命名規則を統一しよう
命名規則をあらかじめ決めておくとコードの可読性が上がります。
命名規則 | 例 |
---|---|
スネークケース | snake_case |
キャメルケース | camelCase |
パスカルケース | PascalCase |
他にも様々な命名規則の形がありますが、大事なのは統一感です。上記のケースを使わなくても統一感があれば十分コードは見やすくなります。
なので今回の場合、クラス名はパスカルケース、変数名はキャメルケースなど自分なりに使い分けてみるといいかもしれません。
まとめ
いかがでしたでしょうか?今後も理解しやすい、されやすいコードの書き方を学び次第ここに追加していこうと思います。