« 高槻ジャズストリート 2009 (第11回) | Main | mod_proxy_balancerの振り分けをhttpで »

2009.05.27

開発速度

プログラマーの開発速度は「はまる」時間の長さで決まる

1. クラスやメソッドの命名が不適切
 時々、自分自身でもやっちゃってます(苦笑)。メソッド名だけでは内容がよくわからず、結局ソースコードを見て「今使いたいメソッドかどうか」を判断する場合も。

2. 「とりあえず」書いたコードが悪さをしている
 これも、よく経験があります。多くの場合、その箇所を修正する機会もなく平穏に(?)時は流れるのですが、「その場しのぎ」での修正が後々響いてくることも。そういう時に限って、元々「その場しのぎ」での修正だったため、修正すべき箇所の特定に手間取ったり、別の箇所に影響が出たり。

3. 「このままでは何かがおかしい」と感じながら作業を続けている
 2.と同様ですね(^^; ただ、「おかしい」と気付きながら作業するのか、そもそも「おかしい」とすら気付かずに作業を続けるのか、といったところに、それなりに大きな開きがあるような気もします(おそらく、4以降とも関連してくると思いますが)。

4. ツールに振り回されている
 EclipseやC#を使っていると、デバッガの使い方で作業時間に大きな開きが出てくる場合も。不慣れな(?)人の場合、例外トレースの内容を上手く解釈できず、全くといっていいほど見当違いの箇所の修正をしていることもあるようで(当然ながら、ブレークポイントも見当違いな場所に)。
 例外が発生しないけどおかしな動きをしている場合、「どういう動きをすべきか?」「その結果を得るためにはどの部分の処理が関与しているのか?」「その部分の処理が期待した通りに動いていないのは何故か?」と言ったところの推測が不充分なケースも。

5. 「よくあるつくり」に対する理解が乏しい
 おそらく、言語を問わず、「プログラム開発における共通的な考え方」ってのはあると思います(デザインパターンなども「共通的な考え方」に入るものではないかと)。まぁ、最近では目移りしてしまうほどいろいろな(しかも使い勝手の良い)ライブラリやフレームワークがあるため、それを使うことで手一杯になってしまう(あるいは満足してしまう)ってことも多いのではないかと思いますが。
 オープンソースなライブラリ/フレームワークを使っていて、「ここってどういう風に処理を実現しているのだろう?」って時に、ソースを見ようと思うかどうか、ってのも大きな境目になるのではないかと。

6. APIの存在を認知できていない
 これって、なかなか難しいですよね・・・。各言語の標準API、ライブラリ/フレームワークのAPI等々、1つのアプリケーションを構築する際に全部のAPIを一通りチェックするとした場合、かなり膨大な数になってしまうのではないかと。そういう意味では、1とも絡んでくるのですが、「ある機能が必要」⇒「英語だと、xxという単語になるのでは?」⇒「xxという単語を含んでいるクラスはある?」って感じで、徐々に自分の中でのAPIライブラリを増やしていくというのが現実的な選択肢かなぁ、と。
 あとは、言語のバージョンが上がった時の、「目玉API」に関して、概要だけでも目を通しておくとか。Java5やJava6での追加機能に関しては、例えばJava in the boxのようにいい感じでまとめてくださっているところもありますし。スレッドプールが必要になった場合、Java5で追加された同期関連のAPIを知っているかどうかは大きな差として現れるかと。

 ちなみに、僕自身が初めて「プログラム」を入力したのは、25年以上も前の話だったりするのですが、その頃は「本などに載っているプログラムを入力する」⇒「この部分の動きを変えたいんだけど、プログラムのどの部分に手を加えればいいのか?」ってな感じで、(実際に手で入力することで)いろんなことを覚えたような気がします。

 最近では、例えばGoogleで検索して見つけたページに載っていたソースコードをコピペして終了、ってな人も多いと思うのですが、その際に、「単にコピペするだけ」ではなく、「そのソースコードでは、どんな風に処理が組み立てられているか?」っていうのを意識しながらプログラムを作って欲しいなぁ、と思うことも。

|

« 高槻ジャズストリート 2009 (第11回) | Main | mod_proxy_balancerの振り分けをhttpで »

プログラム」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/45150444

Listed below are links to weblogs that reference 開発速度:

« 高槻ジャズストリート 2009 (第11回) | Main | mod_proxy_balancerの振り分けをhttpで »