Hatena::ブログ(Diary)

遥か彼方の彼方から このページをアンテナに追加 RSSフィード Twitter

お知らせ
  • デザインや方向性などを修正しているところです。

2011年09月25日

プログラミングが速く組めるようになる初歩的な3つの心掛け

雑用兼プログラマーとしてアルバイトしていた頃のこと。僕の最初の悩みは、どうすればもっと速くプログラミングできるか、でした。

訳あって3時間ほどしかバイト時間を確保できなかったうえ、雑用もしていたので、気付くとほとんどコードを書かずに一日が終わるなんてこともよくりました。

急がなくてもいいとは言われてはいたものの、プログラミング能力が低くて、要領も悪い僕としては、せめて時間内に終わらせられる程度にはプログラミングが速くなる必要があったのです。

とはいえ、すぐにプログラミングが上手くなることなんて出来無い。だからせめて、プログラムで詰っている時間を減らせさえすれば、今よりもよくなるんじゃないか、とそう考えるようにしました。

そう意識してからの作業は徐々に速くなり、最終的になんとか仕事についていけるようになっていたかなと思います。

ということで、前置きが長くなりましたが「プログラミングが速く組めるようになる初歩的な3つの心掛け」です。本当に初歩的なものはありますし、最適な方法とも思っていませんが、あくまで心掛けなので誰でも実践できますし、少くともあの頃の僕には役立ったことなので、紹介するだけしてみようと思います。

目次

  1. 少しずつ確認する
  2. 問題を小さくする
  3. 何をしているか理解する

少しずつ進める

例えば今定義した関数はちゃんと呼び出せているかとか。

例えば渡しているはずのデータはちゃんと渡せているかとか。

例えば呼び出そうとしている関数の結果が意図通りかとか。

馬鹿みたいに当たり前なことを、いちいちチェックするようにしました。

ファイルを作って確認、クラスを作って確認、コンストラクタを定義したら生成時に呼ばれているか確認、なんて風に。

もちろん、こんな事していたらかえって時間はかかります。動いて当然なところを毎回確認しながらプログラムしてるんですから、面倒ですよね。

でも、こういう簡単な確認を怠ったまま進めて、いざ実行したときに動かないと、どこが悪いのか確認するのに時間がかえってかかってしまいます。

ここまでは動いている。そういう確認をすることで、どこが駄目なのかすぐにわかります。

十分に慣れて、仮に問題が起きてもすぐに発見できるようになっているのならともかく、最初のうちは着実に一歩ずつ進めるようなプログラミングをするほうが、立ち止まる時間が減る分だけ速くなると思います。

問題を小さくする

難しいことは、正直わからないです。

なので、問題があったときは、なるべく小さくして考えるようにします。

新しくプログラムを書いているときは「少しずつ進める」べきだし、バグ修正しているときはまさにどこでおかしくなっているのか確認すべきです。

どう組んだらいいかそもそもわからない場合でも、まさにどこがわからないかを明確にすれば自ずと解決することは多いですし、そこまで小くすれば相談するのも、それに答えるのも楽になります。

何をしているか理解する

何度修正してもバグがあると言われて解決するのに時間がかかったプログラムがあったのですが、蓋を開ければそもそもの仕様を誤解していたのが原因でした。

至極当然のことながら、そもそも何をしないといけないのかを理解していなければ、ろくにプログラムは作れないです。運よく動く場合もありますが。

当たり前のようでいて、これって結構難しかったりするんですよね。

仕様が意図する本当のところは何なのか、ちゃんと意思疎通は出来ているか、同じ意味で用語を使っているのか、とかとか。

あるいは、少し大き目のタスクがきたときに、解決のためにあれこれ頭を悩ましていると、そもそも何が目的なのか忘れがちになることもあります。

もし仕様がわかっていないなら早めに明確にすべきですし、何かに行き詰まったら目的から見直すべきです。

仕様をエスパーしないように、それでいて適切に意図を汲み取るようにする。わからないなら正直に質問して、出来そうにないなら目的から別案を考える。今でも少し苦手なことだったりするのですが、何をしているかもわからずに、何かをするのはあまりにも困難です。