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

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

見た目が少し違うだけのシステムなのに、ソースコードが結構違う

既存のシステムに、クレジットカード決済機能の追加の依頼がありました。

単純に考えれば、既存のシステムにクレジットカードの決済機能を追加することになります。
当初はそうすればいいかと思っていましたが、決済処理に関連した処理が複雑なため、追加作業で漏れが発生する可能性があります。
管理機能も追加しなければなりません。

利用者違いでほぼ同じ機能があり、クレジットカードの決済機能付きのシステムが稼働しています。
そちらを元にして、機能違いの部分を修正する方が、確実だと判断して作成を始めました。

利用者違いでほぼ同じ機能なのに実際は違う

方針を決めて作成を始め、機能違いの部分を修正するために、WinMergeを使ってソースコードを比較しました。
WinMerge 日本語版

比較してソースコードレベルで違いにいろいろ気がつきました。
見た目でわかるWebブラウザ上のレイアウトの違いや、把握していた機能違いの部分は当然わかっています。
それ以外にも、JavaScriptでの入力チェックの方法や、細かい部分のHTMLの構造が違っています。

f:id:AJYA:20170205060036j:plain
photo credit: mkorsakov They write code like it's 1998 *) via photopin (license)

なぜそれほど違うのか

PHPのプログラムで、フレームワークを使わず、テンプレートエンジンのSmartyも使っていないので、自由に記述できます。
歴代の担当者が、必要に応じて自由に修正していたのでしょう。
JavaScriptの部分は作り直したと判断できるほど、異なっていました。

テスト用の環境で動作を比較してみると、JavaScriptでのチェックの結果の表示が一緒でした。
そのため、元のソースコードをのJavaScriptをそのまま利用することにしました。


品質が保証されているのであれば、わざわざ変える必要がないという認識なので、今回なぜ違っているのか不思議に思っています。
前任者の作成したソースコードを否定したかったのか、分かりにくいソースコードなので修正したのか今となってはわかりません。
どちらにしても、時間というリソースを無駄に使っているようにしか思えません。