プログラマーの開発速度は「はまる」時間の長さで決まる
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を知っているかどうかは大きな差として現れるかと。
Recent Comments