僕が出会った現在稼働中のWebアプリケーション

適当に思い出したものだけ羅列しているので順不同。

1.HttpServletを実装してるのにサーブレットとして使われてない。

Strutsで例えるとActionクラスがHttpServletを実装している感じ。

とりあえずWeb関連だから実装しとけ的な。

初めにコード見たとき、インスタンスフィールドあるからマジでびびった。

まぁサーブレットとして使われてないんだから、定義してあっても問題にはならないんだけどもさ・・・

2.アプリケーション内の半分のクラスがデフォルトパッケージ

DBからクラス名を取得して、そのクラス名からインスタンス生成するってのは、

個人的にはあんまり好きでは無いけど、そういうアプローチもあるかもしれない。

でも、デフォルトパッケージの必要性は無いですよね?

ちなみにデフォルトパッケージは非推奨。・・・でしたよね?

ここまで堂々とされると逆に不安・・・

3.MVC、何それおいしいの?

全部一つのクラスにメソッド分けてガリッガリにコーディング。

ちなみにインスタンスフィールドにjava.sql.StatementとかResultSetとか保持してたり、

ビジネスロジックと同じメソッド内にJSP呼んだりしてるから、

リファクタリングが困難、っていうか無理くさい・・・

4.エラーメッセージが次の画面でh1タグに囲まれているだけ

例えば照会系の画面で検索条件を入力して、

検索ボタンをポチッと押して、検索条件にマッチするデータが無かった場合、

なぜか画面遷移してh1タグに囲まれた「該当データ無し」の文字のみがデカデカと表示される。

もちろん「戻る」ボタン等という洒落たモノはない。

5.URLがhttp://○○○/servlet/○○○~

一応、一部の顧客とはいえ外部公開するんだけどなー・・・(遠い目)

6.URLのクエリ文字列でいじる事でユーザに権限が無くても全画面を自由自在に閲覧可能。

なんかメリットっぽい文章で書いたけど、

コレをバグと言うんだと思うんだけど・・・違うかな?かな?

メニュー画面でユーザの権限に適した機能のリンクだけを表示してあるけど、意味無いのでは・・・

ちなみに、URLのクエリ文字列に契約情報識別番号(仮)とかを入れてあるから、

担当者じゃなくても、その契約情報識別番号(仮)のデータを閲覧できる。

便利だね・・・( ´・ω・)y-~~

7.利用ユーザのログイン認証がベーシック認証

実装しなくて済むと考えたのかい・・・?

8.サーブレット・その他設定ファイルの置き場所が"C\~"

いや、確かに稼動サーバーはWindowsだけどさ・・・

9.JSPに出力する度に文字エンコーディングを変換

Tomcat3.XでFilterが無い時代だったから仕方無いっちゃ仕方ないけど、

Tomcatで設定するとかServletでエンコーディング合わすとか、

いろいろ方法はあるでしょうよ・・・

10.変数とかメソッドの命名がJavaじゃない

以下、変数の例。

HttpServletRequest => hprt

HttpServletResponse => hprs

HttpSession => hpss

(HttpServletRequestとServletRequestで使い分けとかは勿論してない)

Statement => stt

ResultSet => rese

(ちなみにPreparedStatementなどという洒落たモノは使っていない)

Vector => vec

(どこでも一緒&使いまわし)

以下、メソッドの例。

void appexe(HttpServletRequest hprt, HttpServletResponse hprs, HttpSession hpss){}
(余談だけど、HttpSessionは引数に要らなくね?)

まだまだあるけど、思い出しただけで鬱になりそうなので、今回はここまで。

このエントリーをはてなブックマークに追加
comments powered by Disqus