クライアントから、別のコンサルタントが開発したASP.NET WebformsアプリケーションであるWebサイトの再設計を依頼されました。比較的簡単な仕事のように見えましたが、コードを見てみると、そうではないことは明らかです。
このアプリケーションはうまく書かれていません。まったく。SQLインジェクション攻撃に対して非常に脆弱であり、ビジネスロジックがアプリケーション全体に広がっており、多くの重複があり、デッドコードは何もしません。その上、それは窒息させられている例外をスローし続けるので、サイトはスムーズに実行されるように見えます。
私の仕事は単純にHTMLとCSSを更新することですが、HTMLの多くはビジネスロジックで生成されており、整理するのは悪夢です。再設計に関する私の見積もりは、クライアントが目指していたよりも長くなっています。彼らはなぜそんなに長いのか尋ねています。
このコードがどれほど悪いかをクライアントに説明するにはどうすればよいですか?彼らの頭の中では、アプリケーションは素晴らしい動きを見せており、再設計は一回限りのものにすべきです。前のコンサルタントに対する私の言葉です。非技術系クライアントが理解できる簡単で具体的な例を挙げるにはどうすればよいですか?
更新
すべての回答をありがとう。SQLインジェクション攻撃のデモは理にかなっており、これをテスト環境でデモします。これは、このアプリケーションの多くの問題のほんの一部です。私は、htmlとcssの更新を行うために、他の部分(データレイヤーで生成されるhtmlなど)をより良いプラクティスに置き換える必要がある理由を説明する方法を探していました。ここには多くの良い提案がありますが、クライアントと話をするときに一緒にまとめます。
This application was not written well. At all.
彼らはほとんどありません。:)
To make a change in the look of the living room, I had to go into the air-conditioning system.
優れたモジュール設計では、このようなことは起こりません。