2

私が現在取り組んでいる Web ベースのアプリケーションは、手足が伸びています。これは基本的に、ユーザーが予約、ユーザー アカウント、請求などを追跡するのに役立つ管理システムです。また、かなり粗雑な API を使用して、いくつかの異なる Web サイトからアクセスすることもできます。

ファット クライアントの設計は、php/MySQL バックエンド、フロント コントローラー、いくつかの異なるページ コントローラー、オブジェクト指向モデルと手続き型モデルのリベラルな分散、混乱を招く一連のビューとテンプレート、いくつかの MVC パターン (またはおそらく MVP) に大まかに従っています。 JavaScript、CSS ファイル、および Flash オブジェクト。

私のプログラマーは「懸念の分離」の原則の大ファンであり、その点については、現在、プロジェクトが成長し、より多くの人々がそれに貢献するにつれて、さまざまな懸念を分離および結合する最良の方法を見つけようとしています。 .

私たちが直面している問題は、通常、JavaScript (または ActionScript を使用した Flash) はテンプレートを使用して記述されているため、View の一部であり、Controller および Model から分離されているにもかかわらず、実際には MVC パターン全体が含まれていることがわかります... スワップonmouseover イベントのある画像 - それがビヘイビアです。データグリッドをレンダリングします - ビューを操作しています。AJAX を介してリストを並べ替えた結果を送信します。これで制御できます。フォーム フィールドをチェックして、電子メール アドレスが有効な形式であるかどうかを確認します。モデルを調べています。

データベース担当者に検証モデルを jQuery で作成させるのは賢明でしょうか? PHP プログラマーは、必要な制御構造を JavaScript で記述できますか? Web デザイナーは、自分のビュー用に機能する AJAX フォームを本当に作成できるのでしょうか? すべてのプロジェクトに JavaScript オーバーロードが必要ですか?

コードではなく人に MVC パターンを適用できるとしたら、次のようになります。

  • モデル - データベース boffins - 「SELECT * FROM mindWHERE interestedIS NULL」</li>
  • コントロール - 厄介なプログラマー - 「クラスの何かが NothingAbstractClass を拡張します{…}」</li>
  • ビュー - 伝統的にグラフィック/ウェブ デザイナーのドメイン - 「」</li>

…そして新しいレイヤー:

  • 動作 - インタラクションおよびフィードバック デザイナー - 「CSS3 は新しい黒です…」</li>

そのため、リファクタリングを行っており、ベスト プラクティスの設計に固執したいと考えていますが、どのように進めればよいかわかりません。私は車輪を再発明したくないので、どのパターンを見るべきか、またはすでに汚い仕事をした人からのコードサンプルについてのヒントやヒントを誰かが持っていますか? プログラマーとして、バックエンドとフロントエンドを分けたままアプリを書き直すにはどうすればよいでしょうか?

質問する前に、はい、私は Zend、CodeIgnitor、Symfony などを見てきましたが、いいえ、それらはサーバー ロジックとクライアント ロジックの境界を越えていないようです!

4

1 に答える 1

1

あなたと頭脳を持つ他のすべての人がこの質問をしていますが、それは粘着性のあるものです. 本当に優れたインフォメーション アーキテクトは、ユーザビリティ、動作、およびフローの観点から考えますが、設計ツールの使用方法や、描画やプログラミングができない場合もあります。インターフェイスをスケッチに入れることができれば、デザイナーはそれをきれいにすることができます。デザイナーに見た目の良い静的な作業をさせてください。それが彼らの得意なことです。画面オブジェクトに指定できるフロントエンド動作のライブラリを IA に提供します。彼らはこのようなものを実装せず、使用するだけです。これは、JQuery などのフロント エンド ツールを使用する場合ははるかに簡単です。また、デザインとバック エンドの両方をよく理解しているフロント エンドの専門家がいると便利です。JavaScript を独自のディレクトリに分け、常に外部ファイルとしてリンクします。すべての PHP フレームワークには、これを動的に行うためのメソッドがあります。私は、個々のビューが必要なものだけをロードするように、ファイルがロードするすべてのフロントエンドのものにファイルをマップする構成構造のアイデアをいじりました。しかし、あなたは絶対に正しいです.MVC全体のビュー内に主に存在する、クライアント側のサブMVCがまったくありません。Ajax のものを分割できると思います (ビューがサーバーを参照する必要がある場合)。その多くは、チームの全員に分業パラダイムを受け入れさせることです。最終的にどのようなフレームワークを選択しても、より分離された再利用可能なコードを作成するだけです。おっしゃる通り、それらすべてでフロントエンドのカプセル化を行うことができます。しかし、どれも適切なフロント エンドのカプセル化を強制するものではありません。それはまだ DYI の領域にあると思います。幸運を。

于 2010-03-26T17:58:44.653 に答える