search
LoginSignup
38

posted at

updated at

Organization

コメント駆動開発(コメントドリブン)という考え方

はじめに

新人プログラマ応援イベントの参加記事です。

この記事は、James Edwards氏のプログラミング方法論を参考にしています。

また、この記事には私の独断と偏見も含まれています。

コメント駆動開発(コメントドリブン)とは

コメント駆動開発とは、コードを書き始める前に、実装するべき処理を先にコメントとして書くことで、
必要なロジックを明確化し整理する手法です。

・説明するのは簡単だが、コードで表現するのが難しい処理。
・コードで表現するのは簡単だが、説明するのが難しい処理。

このような問題を解決するためのアプローチとしても有効です。

例えば、

モグラたたきで、モグラを叩いた時のプログラムを作成する例
先に必要と思われるであろう処理をつらつらとコメントとして書いていきます。

// HTMLからモグラの要素を取得

// モグラがクリックされた時の処理

// モグラが穴に隠れていなければ、

// パスを指定し、モグラが叩かれているときに表示する画像を取得

// モグラの画像を入れ替える

このようにコメントを書いた後、そのコメント通りにコードを書いていきます。

上記の例は非常に簡単なものなので、逆に冗長に見えてしまうかもしれませんが、
事前に要件を細分化して文字として残しておくことで、
コードも書きやすくなるかと思います。

IF仕様書の処理概要を先にコメントで書くようなイメージかもしれません。

個人的には、BDD(ビヘイビア駆動開発)TDD(テスト駆動開発)要素を除いて、
コーディングに焦点を当てた感じのものだと考えています。

注意点

プログラミングにおけるコメント論にも様々な議論がありますが、
コードとコメントの不一致により、プログラムの可読性が低下し混乱が生じる可能性があります。

まとめ

これはあくまでコーディングのみに焦点を当てたプログラミング方法論であるので、
比較的取っ付きやすい反面、
別途テストコードを用いる等、コードの正確性は担保できるようにするのが良いでしょう。

また、ティーチングテクニックとして有名な、
ラバーダッキング法(アヒルに向かって問題を説明することで自身の考えを整理する)にも通ずるので、
プログラミング初心者の方にもオススメできる方法ではないでしょうか。

少しでも参考になれば幸いです。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
38