プログラミングを始めて間もない頃はどのようにプログラムを書けば良いか、悩んでしまうことも多いと思います。また、趣味のプログラムと仕事のプログラムでは求められるクオリティここでは、仕事として初めてプログラムを書くうえで、押さえておくべきポイント・習慣をご紹介します。
最初のコーディングルールを決めておく
まず最初に、自分がこれから書くコードについて、命名規則などのコーディングルールをしっかり決めておくことをオススメします。もし職場の環境にすでにコーディングルールがあるのであれば、それに従うようにしましょう。もしコーディングルールがなく、一からコーデイングルールを考えなければいけない場合は、しっかりと作ったコーディングルールを明記しておくようにしましょう。
ソースコードのクオリティを考えた時に、一定のコーディングルールにしたがって書かれているものの方が圧倒的に品質が高くなるのです。またミスを減らすこともできます。
コメントをこまめにいれる
仕事でもしプログラミングをするとなると、他の人が自分のソースコードを読むことを想定しておかなければいけません。もし自分のソースコードに、そのコードが何を意味するかがわかりやすいようなコメントを残しておけば、他の人が読んだ時に理解しやすくなります。
また、このように可読性の高いソースコードにしておくと、もし自分が後に修正したりする際に、プログラムの内容を忘れていたとしまっていたとしても、読み直すことで思い出すことができます。
保守効率が上がるのです。
開発している時だけではなく、その後のバグ修正や変更など、長期的な視点での運用・保守を考えた時の効率を考えた時に、いかにそのプログラムが何を示しているか、という説明資料が必要となります。ソースコードのコメントは、その説明資料として最も効果的ともいえます。
プログラムの内容を伝える相手は
- チーム内で連携したり、関係するプログラムを書く予定のある同僚
- 将来、忘れたころにメンテしなければいけない可能性のある自分
- 自分が抜けた後に引き継いで使う、保守してもらう予定の受け取り相手
などです。忘れてしまった自分すらも相手になることを肝に命じておくと良いでしょう。
可読性の高いコードにしておく
読んでいて意味のわかるコードにしましょう。オブジェクト指向をしっかり学んで、シンプルなクラス設計にするべきです。
先にのべたコーディングルールをしっかり規定し、それを遵守してプログラミングすることで、命名ルールが統一され、読み手の混乱を招くことは少なくなります。それぞれの変数が何を意味しているのかが、直感的にわかるような変数名にしましょう。
また、変数の型がわかるように、またはグローバル変数なのかローカル変数なのかがわかるようにプレフィックスやサフィックスをつけておくことも可読性を高めるためのコツです。
<可読性を高めるコツ>
- 型や変数スコープに合わせて、変数にプレフィックスやサフィックスをつける。
- 一つのクラスに多くのメンバ変数や関数を入れすぎない。大きくなりすぎたクラスは複数に分割する(ただし分割しすぎると、返って可読性が低くなります。)
- そのスコープでどういう役割もつ変数あるいは関数なのかが読み取れる変数名にする。
モジュールの独立性・再利用性を考える
実はこの考え方は、仕事で作るだけでなく、個人の作業としても重要な考え方です。自分の書くソースコード・プログラムは常に資産になると考えましょう。常に将来使いまわせるものを作ることを意識するのです。ここで独立性・再利用性を高めるためのコツとして下記のようなステップが挙げられます。
<アプリやサービスに依存するロジックの排除>
そのサービスやアプリでしか使わないようなプログラムは分離するようにしましょう。
<クラス化する>
アプリ依存のロジックを分離したら、そのモジュールのインタフェース(InとOut)をしっかり決め、独立したクラス・モジュールに変えていきましょう。
<ライブラリ化する>
ある程度独立したクラス・モジュール群になったら、それをパッケージ化し(言語によってはバイナリ化)、他のアプリでインポートして利用できることを確認しましょう。
テストコードを書く
これはプロでも忘れがち・見落としがちなのですが、テストコードを書くというのは非常に重要な習慣です。本当にあるべきプログラミングは、テストコードを書くことからとも言われます。まずテストコードを書区ことで、プログラムの入力と出力を決めてそれを確認するテストコードを書いてから、対象となるプログラムの本体を書くことです。
明確な入力や出力の決まっているモジュールプログラムであれば、このように書く習慣を、特に仕事では意識しましょう。ただし、UI系については出力を確認する手段が難しいので、必ずしもテストコードを書くことはできません。
Google Testでは多くのプログラミング言語に対して、GoogleTestという名前のテストフレームワークを用意しています。ぜひ活用してみてください。
いかがでしょう。業務として、プロとしてプログラミングをする時に、プロとして恥ずかしくないソースコードを成果物にする必要があります。今回ご紹介したようなヒントを踏まえてぜひステップアップしてください。