幸い私はjavaをメイン言語として扱っている技術者なので、JUnitでテストコードを書く習慣が自然とついた。
だから、他の言語を利用するときもunitテストを利用して、テストコードをなるべく書くようにしている。
今メインでやっているnativeのiphoneアプリやandroidアプリでもテストコードは書いている。WEBでも当然書く。
工数が足りないプロジェクトでも、共通部分や明らかに危険な香りがする部分はなるべく書くようにしている。
この業界に入ってから一度もプロジェクトを破綻させたことがないのは、周囲の人間に恵まれたこと、運が良かったこともあるが、危険を感じたらコードでテストを書く習慣も多いに関係があると思う。
しかし、周りを見ると、未だに多くのプログラマーがテストコードを書く習慣がないのに驚く。
確かにテストコードを書くのは面倒だ。unitテストを書くためには、意外と勉強することが多いのだ。
さらに、プロジェクトの多くはテストコードを書く工数など見積もられていない。与えられた期間では、機能を実装するのと、バグをつぶすので精一杯だ。だから、どうしてもテストコードを書かない。
そして、テストコードを書かないことで、バグが頻繁に出る。そして、修正のたびにバグつぶしとテストに多くの時間を費やす。
色々な会社を見てきたが、長時間勤務が常態化している開発現場はほぼ同じパターンになっている。そういう開発現場で働くプログラマーは上が開発をわかってないとみんな不満を持っている。
日本の会社は経営陣が技術者でないことが多い。わかってないのが当たり前だし、わかるはずがない。
なので、あなたがそういった会社で働くプログラマーなら、経営者にわかってもらおうと思ってはいけない。そんな不満を解決してくれる経営者は、faceBookのザッカーバーグやgoogleのエリック・シュミット等だけだ。
しかし、あなたが良いプログラマーになりたいのなら、工数が足りなくても少しでもテストコードを書く習慣を身につけなければならない。
テストコードを書くことはソフトウェアの完成度を高めるだけではない。あなたのプログラミングの腕も飛躍的に向上させる。
テストコードを書きながらプログラミングを書く習慣を身につけると、可読性の高いコードを書くように気を配るようになる。すると、テストコードを書く時間が全くない場合でも、可読性の高いコードを書けるようになる。
可読性の高いコードは自然とバグが少なくなる。あなたが現場を離れた後も、引き継いだ人のコードの理解を助け、負担を減らす。そして、機能別の細かな分割、設計、テストケースのパターン、デバッグといった思考パターンが身につく。いずれはシンプルで洗練されたコードが書けるようになる。
こうなったらしめたものだ。次は技術だけでなく、インタフェースやデザインにも自然と目がいくようになる。そうすれば、プロジェクトの全体像を把握してシステムを見れるようになる。デタラメなシステムでもなんとか帳尻を合わせられるような技術も身に付いてるはずだ。
良いプログラマーになれれば、あなたが取れる選択肢はグンと広がる。
今後は特にそうだ。安価なクラウド、個人が世界で勝負できるスマートフォン。今後、開発者は会社でも個人でも自由な形態で働けるようになる。英語と中国語を身につければ、鬼にかなぼうだ。
ちょっと話が飛躍しすぎてしまったw
だが、テストコードを書く習慣を身につけることが大切なことはわかったはずだ。
さあ、さっそくテストコードを書こう。
プログラマーは言葉や背中でなく、コードで語るのだ。
0 件のコメント:
コメントを投稿