ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

同じコードが2重に書かれていたために時間を無駄にしました

システムを流用して、新しいシステムを作成しました。
ログイン画面からログインすると、入力画面が表示されます。
入力画面の配色を変えようと、該当箇所を修正しましたが、色が変わりません。

f:id:AJYA:20160117234931j:plain
photo credit: Manual XSS via photopin (license)

なぜ色が変わらないかと調べると、ログイン画面からログインしたとき用の入力画面のソースコードと、入力内容の確認画面から戻ったとき用の入力画面のソースコードが一つのファイルに記述され、if文でどちらなのか判定して表示に利用されていました。

元のシステムを作成した人は、ログイン時にデータベースから読み込んだ値を表示する入力画面と、確認画面でセッションに保存した値を表示する画面を分けた方が作りやすく、メンテナンスしやすいと考えたのかもしれません。

僕にとっては、かえってメンテナンスがしにくい仕組みになっています。
同一の画面用のコードを利用できるように、画面に表示する値を変数にセットすればいいだけなので、そこを工夫しないというセンスに驚きました。

今回のシステムではテンプレートエンジンを使っていないのでできる仕組みですが、元のシステムを作った人は、テンプレートエンジンを利用したときにどうやって対処するんでしょうね。
やはり、ログイン画面からログインしたとき用のテンプレートと、入力内容の確認画面から戻ったとき用のテンプレートを作成するのかもしれません。