これはユアマイスター Advent Calendar 2019の9日目の記事です。
はじめに
みなさんは、コメントコーディングの存在を知ってますか?
コーディングをする上で色々な手助けをしてくれるこの手法を私は利用しています。
なので、今回の記事を通して
・まずはその存在を知って欲しい
・そして良し悪しを理解して欲しい
この2つの観点から、コメントコーディングに関する考えを独自の主観でいくつかお話ししたいと思います。
コメントコーディングとは?
まずコメントコーディングは、コメントとコーディングを掛け合わせた造語であり、コーディングをする上での手助けとなる手法を指します。
ちなみにコメントに関しては、Wikipediaさんで掲載されてましたので、下記にその引用を記載します。
コメント(英: comment)とは、コンピュータ言語(プログラミング言語やデータ記述言語)によって書かれたソースコードのうち、人間のために覚えとして挿入された注釈のことである。この部分はコンピュータが処理を行うときにはないものとして無視されるため、自由に文を挿入することができる。
引用元:Wikipedia
つまりコメントとは、注釈という事ですね。
実際のソースコード上におけるコメントはこちら↓
引用元:https://github.com/cakephp/cakephp/blob/master/src/Http/ServerRequest.php
これは、CakePHP3のServerRequestクラスのソースコードを一部抜粋したものです。
赤い枠で囲われている部分、全てがコメントです。
※コメント、というもののイメージを掴んで頂くための実例なのでコメントの量は気にしないでください。
このように、プログラミングをする時には、コメントを記載するケースがあります。
プログラミング言語を利用してプログラムを記述することをコーディングと呼ぶことがありますが、それと近しい意味合いで、コメントを利用して記述する事をコメントコーディングと呼びます。
以下に例を示します。
class UsersController extends AppController
{
public function input()
{
// POSTリクエストかどうかを判定
// TRUEの場合、POSTデータに対してバリデーションをかける
// バリデーションに引っかかった場合、前の画面にリダイレクトする
// バリデーションを通った場合、確認画面を表示する
}
}
多少粒度は粗めですが、こんな感じでコメントによるコーディングしていきます。
やりたい事を言語化するという言い方もできるかもしれません。
もう少し粒度を細かくする場合、例えば、
・POSTリクエスト以外のリクエストがきた場合どうするのか?
・どんなバリデーションをかけるのか?
などを記述すると良いと思います。
コメントコーディングのメリット
1. コーディング効率が上がる
なんといってもこれが最大のメリットだと私は感じます。
コメントコーディングをする事で
・やりたい事が明確になる
・事前に課題の特定ができる(※潜在的な課題は除く)
そのため、純粋なコーディングの時に無駄な時間がなくなるため、コメントコーディングがコーディングの効率アップに寄与してると私は思います。
効率を考えたコーディングをする場合、まずやる事を明確にすることが重要だと考えます。
そのため、行き当たりばったりのコーディングではとても非効率なコーディングになってしまい、また、トータルで見た時のコーディング時間が多くかかってしまうため、効率的な手法ではないと私は思います。
2. 課題解決の相談がスムーズになる
上記で述べたように、コメントコーディングをする事で、やりたい事を明確にする事ができます。
そのため、課題や疑問を解決するための相談は、やりたい事が明確になっている事でスムーズになります。
コメントコーディングによるメリットなのか?と言われると、やや怪しさが残りますが、
コメントコーディングはやりたい事を明確にする事ができるという要素を持っているため、間接的ではありますが、メリットの1つと言えるでしょう。
コメントコーディングのデメリット
1. コーディング時間が増加する
ここでいうコーディング時間とは、プログラミング言語を利用したコーディングとコメントコーディングを合わせたトータルの時間を指します。
これがデメリットか?というとやや自信はありませんが、時間に厳密な人や実体験としてコメントコーディングの良さを感じていない人は、ただの時間増加と捉えてしまう可能性があるため、デメリットだと感じるかもしれません。
上記で述べたように、純粋なコーディングをする際の無駄な時間は減ります。
しかし、コメントコーディングという1つのフローを追加する事とほぼ同じなので、必然的に時間は増えます。
特にコメントコーディング知りたての当時の私は、コメントコーディングのメリットを体験として感じられていなかったため、早く純粋なコーディングをしたい、という煩わしさに駆られてた事もありました。
まとめ
今回はコメントコーディングについてお話ししてみましたがいかがだったでしょうか?
冒頭でもお話ししたように、この記事を通してコメントコーディングの存在を知り、そして少しでも理解していただけたら嬉しいです。
メリット・デメリットの話は、完全に私の主観でしかないので参考程度に読んでいただければ幸いです。時にメリットはデメリットとなり、デメリットがメリットとなることがあるので、感じ方は人それぞれでしょう。
コメントコーディングに限らず、開発の手助けとなる手法はどんどんチャレンジしてみて、都度紹介できればと思います。