言語仕様の大切さ


最近は別チームが作った部分のテストです。

ファイル取り込みの機能を本日はテストしてました。

hoge.csvファイルを取り込むと、まぁ問題なしです。

で、今度は違うファイルを取り込むと・・・・

java.lang.ArrayIndexOutOfBoundsException.....

ってwwwなんとまぁもろいシステムなんでしょう!?*1

これじゃテストにならないと思い、ソースを見てみました。


。。。。。嗚呼、なんとまぁマァ汚いソースなんだろう。

if(!methodA())
err.setMessage("error type a");
if(!methodB())
err.setMessage("error type b");
if(!methodC())
err.setMessage("error type c");
if(!methodD())
err.setMessage("error type d");

って似たような処理がダラダラ〜っと書いてある。

こんなソースは駄目です。経験上if文が多いソースはいけてません。
かつ弱いコードです。変更に柔軟ではありません。



自分も似たような処理をした事があるので解ります。

こんな時はenumにメソッドとエラー文を格納、そしてenumをイテレートして処理を回すべきです。

で、他も見てると、ベタベタ・・・・*2



逆に良くこんなに頑張るな!?っと思いました。

この処理の担当した人が新人だったら理解できます。

けれど多分、自分より経験がありJAVAに何年も触っている感じです。*3


不思議です

こんな処理を頑張ってベタベタに書くならば一日30分でもJAVA言語仕様を覚えた方が絶対効率が上がる、ソースもキレイになる。


if文の処理をひたすら書き続けるコスト>>>>>>言語仕様を勉強するコスト


ですよね。

言語仕様は呪文みたいなもんです。沢山の呪文を覚えとけば色々できる。



けどね、なんでこんなにコードのレベルが低いのかは予想がつきます。

忙しくて勉強できない&技術を付けても給与が上がらない等々・・


結局こんな理由なんでしょう。慢性的にこの業界の病気です。


こんなコードが納品されるシステム屋ってなんなんでしょうか?



けど、JAVAの言語仕様は覚える事が多い、後半年はかかりそうです(><)。

*1:この手順がテスト項目にも入った無いのは問題じゃないですか?

*2:それ以外も酷いもんだった。

*3:担当した人の会話を少し聞いた事がある。