2011-10-18 23 views
6

MVCについてよくわかっていて、MVCを使い始めたばかりですが、既存のライブWebサイトにMVC構造を実装するにはどうすればよいかについて問題があります。ライブサイトをMVC構造に移行するための戦略?

私のサイトは、プロのプログラマがスローアップするようなエコーと連結HTMLの厄介なものです。でも動作します。

私は技術的な負債に取り組んでいますが、これははるかに正常なMVC構造に移行することを意味します。

可能であれば、私は避けたいのですがlet 'er rip! 100%書き換えて起動する方法ではなく、一度に1つずつセクションを作成します。しかし、それは基本的なコントローラの集中構造は、そのようなアプローチに適していないようですか?

+0

仮想マシンをインストールします。ライブサーバーと同様の環境をセットアップします。そこにあなたのサイトをコピーしてください。ユニットの書き込み - コードベースをテストしてからリファクタリングします。この方法では、ライブサイトに障害が発生することはなく、完了したら新しいサイトを本番サイトにプッシュするだけです。追加のアイデアについては、http://sourcemaking.com/refactoring/convert-procedural-design-to-objectsを参照してください。 – Gordon

答えて

5

ここでの他の提案に同意すると、フレームワークは魔法の修正にはなりません。

ただし、長期的には役立ちます。 私は多くのミッシュマッシュサイトをコハナのフレームワークに変換し、以下のような経験をしています。

私はコハナをよく知りませんでしたので、私はマイペットを記録しながらそれを学んでいました。私は書き直しを止め、kohanaを学ぶために、まったく新しいプロジェクトを最初からコーディングしてしまいました。その後、フレームワークをよく理解したので、書き直しプロジェクトに戻りました。

  1. 古いプロジェクトを変換するために書き換えの最初のステップでそれを使用しようとして

    あなたはフレームワークを理解していない場合、急な学習曲線になるだろうが/すべての業務を引っ張っていましたhtml出力の前に各ページの先頭までページに埋め込まれたデータベースロジック。私はウェブサイトのフロー/構造を変えず、ビジネスロジックを表示ロジックから分離するだけでした。

    その後、私は、古い構造の中で、読みやすいビジネスロジックを持つサイトを持っていました。同時に、古いコードベースに慣れてきました。

  2. 次のステップでは、すべてのデータベース構造の問題を修正して、すべてが3番目の正規形式(可能な場合)になるようにしました。

    古いコードを新しいデータベース構造に変更し、新しいフレームワークで古いデータベース構造を回避する方が簡単です。優れたデータベース構造を有する

    が人生を容易に関わらず、フレームワークの

  3. 次のステップになり(これらの規則に従うために良かったので、Kohanaのは、長期的なメンテナンスを容易にするために、コンフィギュレーションというし、大部分は慣例ベースのフレームワークです)交換するウェブサイトの一部を選ぶことでした。コナナでルートを設定し、コナナにプロジェクトのその部分を提供させる。 kohana(そして他のフレームワークも間違いなく)、フォールバックがあります。URLを介して要求されたファイルが既にサイトに存在する場合、kohanaはその要求を処理しません。

    あなたのPHPファイル、コントローラとビューにコードを分割するのは簡単です。フレームワークに合わせて両方の部分を変更します。あなたは、コントローラ/ビューが動作した後に期待どおりのモデル/コントローラにビジネスロジックを分割することができ

が完了するまで、サイトのその部分を通して、あなたのように動作します。テスト/打ち上げ/バグ修正など

サイトの次の部分でもう一度やり直してください。それは書き換えに多くの時間を要したが、サイトは現在、保守がはるかに簡単ですよう

結局あなたは、それは価値があるだった私にとって、...

そこに着くでしょう。 (明らかにゲインの量は元のコードベースの品質に依存します)

幸運

0

することができます。 boot.phpにリダイレクトするか、要求されたパスに実際のファイルが見つからない場合にのみmodリライトを書き込むことができます。これにより、一度にセクションを実行することができます。あなたのすべてのリンクが順調であることを確認することは、しかし、悪夢になるでしょう。

書き換えを実行して、古いアプリケーションから必要な部分をコピーアンドペーストすることはできません。

6

私はそのコードベースのための品質の全体的なレベルが何であるかを理解していれば、その後、1つのステップでMVCに移動する方法はありません。それはただ不可能です。もう一つの悪いニュースは、フレームワークは役に立ちません。です。彼らは、悪いコードベースを魔法のようにMVCishアーキテクチャに似たものに変えることはできません。

代わりに、増分リファクタリングに焦点を当てる必要があります。あなたの目標は、ほとんどがSOLIDの原則とLoDに従ったコードでなければなりません。そして、あなたのコードをリファクタリングしている間に、アーキテクチャ自体が出現します。 MVCには多くのバリエーションとフレーバーがあります。

よく見るべきことは、templates in phpを使用する方法です。コードを調べて、ニーズに合わせて変更する必要があるものを確認します(これは完全な解決策ではなく、方向性です)。 MVCのような構造では、Viewはテンプレートではありませんが、Viewは複数のテンプレートを使用しています。

もう1つのことは、datamappersについての詳細を学ぶことです。それらを実装することは、モデルレイヤーを作成する方向で良いステップになります。

Oh ..

:その後、あなたは(すべてが30分+である)を見てみることができ、いくつかの一般的な講義があります

ああ、this bookは、大規模なPHPプロジェクトのリファクタリングに関するいくつかの洞察を持っています。あなたにとって役に立つかもしれません。

+0

あなたの経験では、完全に書き直す必要がありますし、スイッチをひっくり返してすべてを一度に渡しますか? – Drew

+0

@AndrewHeath、いいえ、増分リファクタリングが必要です:***分析*** *> * ***リファクタリング*** *> * ***テスト*** *> * ***公開*** * > * ***リピート*** –

関連する問題