1

私は、もうここで働いていない別のプログラマーによって開発された、かなり大規模なシステムに取り組んでいます。

そして、私はそれを維持し、彼がどこに住んでいるかを知っている躁病の連続殺人犯なので.

しかし、楽しいことはさておき、システムはクラスシステムとして開発されたものであり、そうではありません。私はすでに開発者バージョンをセットアップしており、新しいバージョンをかなり迅速に展開できます。

  1. 新しいモデルへの部分的な移行に関するヒントはありますか (完全な移行はできません。時間がないだけです)。
  2. システムに残しておくことができるクラス名をお勧めしますか(ハックのように見えることなく)、現在のクラス名(ユーザー、データ、ロギングなど)と衝突しません

ありがとう。

4

2 に答える 2

4

ヒント #0) 既存のコードは本当に悪いものですか、それともあなたの個人的な好みに合わないだけですか? 前者の場合は、このリストを読み続けてください。後者の場合は、深呼吸を数回して、やり直す必要があると判断する前に、少なくとも 1 か月か 2 か月かけて状況を把握してください。

ヒント #1) コーディング中に、正しくないものを見つけたら、修正してください。これには時間がかかりますが、システムがより「修正」されるにつれて、最終的には生産性が向上します。本当に修正する時間がない場合は、次のようなコメントを追加してください。やるべきことのリストを取得します。「TODO-高」、「TODO-中」、「TODO-低」などのレベルを与えることもできます。Eclipse または Zend Studio for Eclipse をエディター/IDE として使用している場合は、[設定] -> [タスク] で、これらを自動的に見つけてフラグを立てるように設定できます。

ヒント #2) MVC に (最終的に) 移行したい場合に重要なことは、HTML をロジックから分離することです。これは、テンプレートを使用することを意味します。このタスクには長い時間がかかる場合がありますが、完了すると、残りの移行がはるかに簡単になります。

ヒント 3) 慣習を確立するようにしてください。例: コントローラーとビューの名前は URL に対応し、URL に対応するディレクトリにある必要があります。場所 1234 を編集するための URL: /places/edit/1234 コントローラー ファイル: /htdocs/sitename/controllers/placesController.php テンプレート ファイル: /htdocs/sitename/views/places/edit.tpl

ヒント #4) 主要なフレームワーク (Zend、CakePHP、CodeIgniter/Kohana、Symfony) の「入門」チュートリアルを読んでください。どちらかがあなたにとって他のものより良く見えるかどうかを確認してください。なぜ好きなのか自分に問いかけてみてください。それはあなたのために働くでしょうか、それとも独自のフレームワークを展開する必要がありますか (疑わしい)。可能であれば、既存のフレームワークを使用してください。すでに何百人、何千人もの人々によってバグテストが行​​われています。私は Zend Framework が好きです。一度に 1 つずつ使用することも残すこともできるため、あなたのような「移行プロジェクト」に特に適しています。つまり、Zend の View オブジェクトのみを使用するか、その DbTable オブジェクトのみを使用するかを選択できます。あなたは好きなだけ自由にそれを省くことができます。これは、自分のペースで徐々に Zend-World に移行できることを意味します。EZ-Components も同様に機能します。

ヒント 5) 使用するクラスを拡張してラップします。たとえば、私は Zend_Acl を使用していますが、実際には Zend_Acl を拡張した独自の Acl クラスを使用しています。これには 2 つの重要な意味があります: a) コードを変更せずに Zend_Acl を別のものに交換できます。なぜなら、それはすべて単純な古い 'Acl' を参照するからです。b) Zend_Acl の動作を自分の特定のニーズに合わせて変更できます。私は「Acl」クラスが好きです。

ヒント 6) 経営陣から賛同を得るようにしてください。リファクタリングを行うと、コードの一貫性とわかりやすさが向上し、欠陥の数が減り、発見と修正が容易になるため、実際にコストを節約できることを説明します。

ヒント #7) Martin Fowler による「リファクタリング: 既存コードの設計の改善」など、このトピックに関する本を読んでみてください。

于 2009-01-28T15:09:55.540 に答える
1

zend には優れた命名規則があります: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

彼らはすべてのクラスに Zend_ プレフィックスを追加しました。これが、サードパーティのクラスとの衝突を回避する方法です。

私の意見では、すべての大規模なプロジェクトは、少なくともコア クラスについては、同様の命名規則を実装する必要があります。

于 2009-01-28T13:43:34.153 に答える