.log(ぽちろぐ)

退屈しているおっさんの日記

テストの重要性

     今回の東京出張、俺の立場は、アドバイザーらしい。やってることは既存コードを読んでダメ出し。しかも好き放題に理想を語りますよ。HelloWorldを書いてから4年未満ですが(5年生)。

     不具合が頻発するメソッドの特徴は、とにかく長い。
    「考えれば分かるだろ!常識だこんなの!」
    とは、当時のボスが言っていた。あなたの常識、世間の非常識、つってな。ま、当時のことはいい。

     俺は常識だと思ってるけど、自動テストやってるプロジェクトは少ない(ようだ)。JUnitとかHttpUnitとかCactusとか。
     今更語らなくても良いかもだけど、いつでも、何度でも、単体テストを行うことで、デグレを防ぐのですよ。バグの発生も抑えるのですよ。変更に対して強くなるのですよ。

     これはプロジェクトとして導入するのは是非がある。じゃあ、ひとりで導入すればいいじゃない。自動テストを習慣化することで、自動テストをやりやすい、短いメソッドを書くように、プログラマ自身が変わるのですよ。そうすると、何が起こるか。
     自分の仕事が速く片付く。早く帰れる。たっぷり寝れる。翌日の作業効率がよいから、また早く帰れる。これを繰り返すと、出会いが増えたり、恋人ができたり、結婚できたりしませんか。←ほざいてろ

     自動テストをやるには、設計書をもらったら、すぐにコードを書いてはならない。機能を切り出して、部品化するのですよ。マインドマップとかユースケース図とかがあるでしょうが。逆に、設計段階で部品化しておく記法がUMLなんだなー。UMLで設計しないのは何故?。へたくそな日本語で書いたドキュメントは死ぬほど読みにくいし、それを読んだプログラマが書いたコードは、if文が死ぬほどネストしている。

     と、2007/11/18の俺は思っている。後から読み返して笑おう。