0

私はいくつかの PHP/MySQL Web アプリ (私は「アプリ」という用語を曖昧に使用しています) のサポートと保守を担当してきました。

PHP コードには、ルーチン、プロシージャ、ビジネス ロジック、さらにはクエリが含まれています。これらはすべてコード内にあります。オブジェクト指向プログラミングはなく、MVC でさえもありません。また、アプリケーション層からプレゼンテーション層が分離されていないことも確かです。これらのアプリの構築にもフレームワークは使用されませんでした。私は新しいプロジェクトに Yii フレームワークを使用しています。

時間はかかりますが、これらのアプリケーションを書き直す必要がありますか? 私の週の少なくとも半分はそれらを修正することであり、更新を行うことは私の新しい仕事でこれらの既存のアプリと連携する必要があります.

これについて何かアドバイスはありますか?

4

6 に答える 6

4

よく聞かれる古くからの質問。

コードをいつリファクタリングしますか?

どのようにリファクタリングしますか?

機能しているがひどいコードをリファクタリングするのをどのように止めますか?

基本的に、機能している場合は壊さないでください。その中で作業していて、コードを壊さずにコードをクリーンアップするために変更を加えることができる場合は、それを実行してください。コードを書き換えますか?私は、投資の見返りはどれくらいか、どれくらいの時間がかかるか、新しいバージョンを導入せずに古いバージョンのバグをかわすことができるか、という考えに同意します。そういうもの。

あなたのプロジェクトで頑張ってください。これがお役に立てば幸いです。

于 2009-11-05T17:03:59.403 に答える
2

全面的な書き直しには注意したい。アプリケーションが機能しており、ユーザーがいる場合、進むべき道は既存のコードベースを変更することです。

はい、フレームワークを既存のフレームワークのないコードベースに実装できます。かなりの労力がかかりますが、可能です (私はこれを数回行いました)。最初からやり直すと、貴重な時間を失うことになります。これは何度も証明されています (Netscape を覚えていますか?)。

問題があることを知っているだけでなく、解決策はフレームワークを実装してアプリケーションを改善し、それらをクリーンアップすることであると知っていることは明らかです。それはあなたをゲームに先んじさせます。

新しいフレームワークを段階的に実装します。MVC フレームワークから始めて、コードベースに取り込んでください。ただし、レイヤーの分離がまだ行われていないという事実について心配する必要はありません。MVC フレームワークの上に構築されているが、実際には MVC 規則に従っていない新しいバージョンを入手してください。スタートです。次に、次のステップに進みます。ビジネス ロジックをモデル レイヤーに移動します。または、そのままにしておくかもしれませんが、OO にします。

あなたの仕事は、ユーザーが使用できる製品を作成することです。あなたの仕事は、ベスト プラクティスに従うことではありません。意味 - はい、ベスト プラクティスは正しい行動方針です。しかし、ユーザーがあなたのアプリを使えなかったり、あなたのアプリが競争に勝てなかったりするのであれば、それは問題ではありません。それを見失わないでください。アプリを優れた製品に変えることができるようにアプリの改善に取り組みますが、完璧であることは良いことの敵ではありません。

于 2009-11-05T17:09:13.817 に答える
1

私の経験では、これは通常、ビジネス上の決定でした。上司は、これらのシステムの保守にどれだけの時間を費やしているか知っていますか?実際にこれらのシステムを使用しているユーザーは何人ですか?彼らはビジネスにとってどれほど重要ですか?あなたは書き直しで経営陣を売ることができますか、そしてそれが有用で有益であることを証明できますか?

日常のメンテナンスですでにいくつかの基本的なリファクタリングを開始できます。更新が必要なときはいつでも、少し余分な時間がかかる場合でも、ある種のOOPソリューションを実行する方法を見つけるか、そこにあるコードをクリーンアップして処理を容易にします。全面的な書き直しは通常、良い考えではなく、売れ行きが悪いですが、すでに新しい機能を維持および追加している場合は、新しいコードまたは修正を使用して既存のものを改善できない理由はありません。

于 2009-11-05T18:23:32.717 に答える
0

ユーザーがこれらのアプリにどれだけの負荷をかけているか、ライブ シナリオで本当にバラバラになっているか、これらの修正などに毎日どれだけの時間を浪費しているかに依存することをお勧めします。

完全に面倒なことに頭を悩ませるよりも、書き直す方が常に良いです。

于 2009-12-03T20:51:44.843 に答える
0

製品は長期間使用できますか? 他のユーザーがコードを見て、あなたがそれをやったと思いますか? これらに当てはまる場合は、コードを書き直すこともできます。あなたの会社から何らかのサポートを得て、彼らにその利点を知らせてみてください。

于 2009-11-05T17:03:34.227 に答える
0

プレゼンテーション レイヤーとビジネス レイヤーを分離しないことは明らかに悪いことですが、それ以外の選択肢にはいくつかのメリットがあります。コードを維持するのが面倒な場合は、コードをリファクタリングしてください。優れた設計パターンに精通しているので、かなり簡単に実行できるはずです。さらに、これはコードのバグを減らすのにも役立ちます。ただし、コードをリファクタリングしている間は、良くなる前に事態が悪化することを忘れないでください。ですから、すぐにあきらめないでください。

于 2009-11-05T17:14:06.450 に答える