なんか生産リストの画面のソフト仕様書作ってましてん。
ソースコードから起こしてるんだけど、アプリ改修時は必要な一部のソースしか解析してなかったんだけどさ。
それでもひどいコードだと思ってたんだけど、1画面分の解析してみたらまぁとんでもないコードでしたよ。えぇ。
少なくともアプリの開発経験があれば絶対にしないコードの組み方。
素人なのか?これ組んだの。
とにかくひどい。
VB.Net2008製なんだけど、これ.Netのコードじゃないもの。
どうやったらこんなふうに組めるのかがまず理解できない。
あと、意味のないコードとか多い。
例えばあるメソッドをコールする前に、引数の値が空かどうかチェックしてなんか変数に入れて、それを引数にセットしてるんだけど、その呼出先のメソッド内でも空かどうかのチェックしてる・・・・。
なんの意味があるんだ・・・・。
ループ処理の中で最初に条件文があって、その条件に合致しないときは処理しないってコードがあるんだけど、その条件に当てはまらなければスキップすればいいのにブロック化してあったりとかも多い。
単にネストが深くなるだけで無駄ですよ。
あと、画面とサブ画面のやりとりするのに、普通はサブ画面とかにプロパティなりもたせてやり取りするんだけど、共通モジュール内の共通グローバル変数でやりとりしてたり・・・。
このグルーバル変数使ってるコードがもう・・・・。
フォームクラス内のどこを見てもそんな変数無いから、なにこれって感じですよ。
一番ムカッと来たのが、テキストボックスで日付マスクかけてる変数の中身が空かどうかのチェックするのに
if aaa = " / / " or aaa = "" then
みたいな書き方してるのがまぁ、多い多い。
これなんて if (String.isNullorEmpty(aaa.replace("/","").trim)) then でやればいいじゃない・・・。
MaskedText使ってる時点でaaa = ""は絶対に成り立たないだろ。
え、後者のほうがコード長いって?
.Netの作法ってもんがあるんですよ。
自前でどうこうするよりも用意されてるメソッドを使ったほうが安全確実なんですよ。
それに用意されているものであれば途中までコード書くとIDEの方で補完してくれるので打ち間違いもない。
とにかくなんか無駄なことばかり。
あと、クラスでまとまってないのであっちこっち見ないといかんとかね。
なんかソース解析自体が拷問でしたよ・・・。
解析してるだけでなんか頭が悪くなっていく感覚が味わえる稀有なソースですよ。えぇ。
どれだけ改修しなおそうかと思って耐えたことか・・・・。
画面だけ見たら平凡な感じなんだけど、コードはほんとにひどい。
1画面分の詳細作るのに丸々1日かかってしまったわ。
なんか思い出しただけで腹が立ってくるわw
そしてまた来週もこれの続きとか思うともう悪夢ですわ・・・。
けど、あの画面だけは絶対に手はつけない。
普通のコントロール使ったコードがこれなのに、思い切りユーザーコントロールオブジェクトでわけのわからんコードの塊みたいな画面があるんですよ。
これだけは解析しない。
頼まれてもやらない。
ふ
最近のコメント