質問

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

そして、私はそれを維持し、彼がどこに住んでいるか知っている狂気の連続殺人者だからです。

しかし楽しいことはさておき、このシステムはクラス システムとして開発されているようで、そうではなく、私はすでに開発者バージョンをセットアップしており、新しいバージョンをすぐにデプロイできます。

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

ありがとう。

役に立ちましたか?

解決

ヒント#0)は、既存のコードは本当に、本当に、実際に悪いですか、それは自分の個人的な好みに合いませんか?それはかつてのだ場合は、このリストを読み続けます。それは後者だ場合、あなたはそれを再実行する必要があることを決定する前に、物事を知ることに少なくとも1,2ヶ月、数回深呼吸を取り、そして過ごすます。

ヒント#1)あなたがコーディングしている場合は、あなたが右ではない何かを見れば、それを修正。これは時間がかかりますが、システムはより多くの「固定」なるにつれて、それは最終的にあなたの生産性の向上が得られます。あなたが本当にそれを修正する時間がない場合は、自分に好意を行うと、次のようにコメントを追加:へ:あなたは時間があるときには、X、後で、単に「TODO」のためにあなたのコードを検索しないようrejig事:// TODOあなたがする必要があるもののリストを取得します。また、「TODO・ハイ」、「TODO - ミディアム」、「TODO低」のように、彼らにレベルを与えるかもしれません。あなたのエディタ/ IDEとしてEclipse用のEclipseやZend Studioを使用する場合は、自動的にPreferences->タスクでは、あなたのためにこれらを見つける&フラッグするように設定することができます。

あなたがしたいと考えている場合、

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

ヒント#3)規則を確立することを試してみてください。 例:コントローラおよびビュー名のURLに対応しており、URLに対応するディレクトリに住んでいなければなりません。 /場所/編集/ 1234:場所1234を編集するURL コントローラファイル:/htdocs/sitename/controllers/placesController.php テンプレートファイル:/htdocs/sitename/views/places/edit.tpl

ヒント#4)リードは、主要なフレームワークのチュートリアル 'で始める':Zendの、CakePHPの、CodeIgniterの/ Kohanaの、symfonyの。 1があなたに別のものより良く見えるかどうかを確認してください。あなたがそれを好きな理由自問してみてください。それはあなたのために働くのでしょうか、独自のフレームワーク(疑わしい)ロールする必要があります。もし可能ならば、既存のフレームワークを使用しています。それはすでにバグテストの人々の数百または数千であったが、それはあなたが救う時間です!私は、Zend Frameworkの自分自身を好きで、あなたはそれを取るか、一度に一つの作品にそれを残すことができますので、それは、あなたと「移行プロジェクト」のために特に良いことです。私はあなただけZendのViewオブジェクトを使用することを選択、またはONLYそれはDBTABLEオブジェクトの使用することができ、意味します。あなたが好きなようにそれをできるだけ多くを除外するのは自由です。これは、あなたが徐々に自分のペースでZendの世界に移行できることを意味します。 EZ-コンポーネントは、同じように動作します。

ヒント#5)あなたがそれらを拡張することにより、使用ラップクラス。例えば、私はZend_Aclではを使用しますが、実際にZend_Aclではを拡張して自分のACLをクラスを使用します。これは二つの重要な意味を持っています: それはすべて、昔ながらの「ACLを」を意味しているため、A)私は、私のコードを変更することなく、他の何かのためZend_Aclではを入れ替えることができます Zend_Aclでは、私の特定のニーズに合わせてどのように働くか、私は私が私の「ACLを」クラスに好きな方法をオーバーライドすることができますので、b)のIは、変更することができます。

ヒント#6)バイイン管理から取得してください。それは欠陥の数を下げることができますし、それらを簡単に見つける&修正することができ、コードの一貫性とわかりやすさを、増加しますので、実際に、彼らにお金を節約します彼らにそのリファクタリングを説明します。

ヒント#7)は、「リファクタリング:既存のコードのデザインを改善する」などのトピックに関する本を、読んでみMartin Fowler氏による

他のヒント

Zendのは、素敵な命名規則があります。 http://framework.zend.com/manual/en/コーディング-standard.naming-conventions.htmlする

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top