タグ付けされた質問 「mvc」

MVC(Model-View-Controller)は、関心事の分離を強制するソフトウェアアーキテクチャパターンです。

3
データベーステーブルごとのモデル?
私はcodeigniterを使用しており、Modelメソッドを繰り返した同じような状況に陥っています。コントローラごとにモデルを作成しています。しかし、データベーステーブルごとにモデルを作成することをお勧めしますか?そうすれば、メソッドが2回記述されることはありません。 コントローラごとのモデルまたは共有されているいくつかの小さなモデルの代わり。 モデルメソッドget_user($ user_id)がある場合の例は、users_models.phpに記述できます... これについて私が目にする欠点の1つは、単にcontrollername_models.phpではなく、いくつかのモデルを呼び出さなければならない可能性があることです。 コントローラからいくつかのメソッドが使用されない可能性がある複数のモデルをロードすると、パフォーマンスと速度に影響を与える可能性がありますか?これに取り組むための最良の方法は何でしょうか? 注:同様の質問がありますが、データベーステーブルごとのモデルの根拠については取り上げていません。

5
ビューは検証を実行すべきではありませんか?
「MVCでモデルが検証を処理する必要がありますか?」と読んでいたのは、検証ロジックがMVC Webサイトのどこにあるのか知りたいからです。上位回答の1行は次のようになります。「コントローラーは検証を処理し、モデルは検証を処理する必要があります。」 私はそれが好きでしたが、なぜビューでデータ検証を行わないのか、いくつかの理由で疑問に思いました。 ビューは通常、堅牢な検証サポート(JSライブラリ、HTML5タグ)を備えています ビューはローカルで検証できるため、ネットワークIOを削減できます UIはすでにデータタイプ(日付のカレンダー、数値のスピナー)を考慮して設計されているため、検証から1つの小さなステップになっています 複数の場所で検証することは、責任を分離するというMVCの概念に反するため、「両方で実行する」ことは不適切に思われます。コントローラでのみデータ検証を行うことは、本当に主要なアプローチですか?
10 architecture  mvc 

6
独自のそれぞれのコントローラーを取得する必要があるものを決定する方法は?
PHPで構築したWebアプリケーションでMVCパターンを使用しています。 一連のアクションに新しい専用コントローラーが必要か、それとも既存のコントローラー内に配置する必要があるかを判断するのに常に苦労しています。 コントローラーを作成する際に従うべき良い経験則はありますか? 例えば、私は持つことができます: AuthenticationController アクションあり: index() ログインフォームを表示します。 submit() フォームの送信を処理します。 logout()、自明です。 または LoginController アクションあり: index() ログインフォームを表示します。 submit() フォームの送信を処理します。 LogoutController アクション付き: index() ログアウトを処理します。 または AccountController アクションあり: loginGet() ログインフォームを表示します。 loginPost() ログインフォームの送信を処理します。 logoutGet() ログアウトを処理します。 registerGet() 登録フォームを表示します。 registerPost() フォームの送信を処理します。 また、アカウントに関連するその他のアクション。
10 mvc 

5
MVCでは、モデルからの基本的なデータ取得をビューで実行できますか?
「細いコントローラー、ファットモデル」の概念と、出力用のデータが必要な場合にビューがモデルを直接呼び出すことができるという一般的な受け入れを考えると、コントローラーではなくビュー内のリクエストの「取得と表示」部分の処理を検討する必要がありますか?例(コードをかなり一般的なものにしようとする): コントローラ <?php class Invoice extends Base_Controller { /** * Get all the invoices for this month */ public function current_month() { // as there's no user input let's keep the controller very skinny, // DON'T get data from the Model here, just load the view $this->load->view('invoice/current_month'); } } 見る …

3
JavaアプリでのMVCの使用
クロスプラットフォームのGUIアプリケーションを記述して(複数のスレッドで)処理し、かなり大量のデータを視覚化する必要があります。理想的には、アプリケーションは比較的高速で見栄えがよいはずです。 アプリのインターフェイスは、テーブルウィジェット、ツリーウィジェット、およびカスタムの図形描画ウィジェットで構成されます。ユーザーはこれらのウィジェットのいずれかからデータを変更でき、変更は他のウィジェットにすぐに反映されます。 当然、MVCを使用する予定です。ただし、私は通常、すべてのGUIプログラミングをC ++ / Qtで行っており、Javaへの露出は非常に限られています。そのため、このようなアプリをJavaで整理する方法についてのアドバイスをいただければ幸いです。特に、SwingまたはJavaFXを使用する必要がありますか?仕事にどのウィジェットを選びますか?Javaプラットフォームのこれらの側面をカバーする本/オンラインチュートリアルをお勧めしますか? フィードバックをいただければ幸いです。ありがとう! (この質問は元々Stack Overflowに投稿されていましたが、このサイトはより適切な場所として提案されました)
10 java  mvc  swing  javafx 

3
ASP.NET WebFormsアプリケーションに最適なアーキテクチャ
クライアント用のASP.NET WebFormsポータルを作成しました。プロジェクトは、最初から適切に計画および構造化されているのではなく、ある程度進化しています。その結果、すべてのコードが同じプロジェクト内でレイヤーなしでまとめられます。クライアントは機能に満足しているので、プロジェクトのリリースに自信を持つようにコードをリファクタリングしたいと思います。アーキテクチャの設計にはさまざまな方法があるようですが、最善の方法についていくつかの意見をお願いします。 機能性 ポータルでは、管理者がHTMLテンプレートを構成できます。他の関連する「パートナー」は、IFrameコードをサイトに追加することにより、これらのテンプレートを表示できます。これらのテンプレート内で、顧客は製品を登録および購入できます。APIはWCFを使用して実装されており、外部の企業もシステムとインターフェイスできます。管理者セクションでは、管理者がさまざまな機能を設定し、各パートナーのレポートを表示できます。システムは請求書と電子メール通知を顧客に送信します。 現在のアーキテクチャ 現在、データベースへの読み取り/書き込みにEF4を使用しています。EFオブジェクトは、aspxファイル内で直接使用されます。これにより、サイトを作成している間、迅速な開発が容易になりましたが、dbとUIを密に結合しているため、このように維持することはおそらく受け入れられません。特定のビジネスロジックがEFオブジェクトの部分クラスに追加されました。 質問 リファクタリングの目標は、サイトをスケーラブルで、簡単に保守でき、安全にすることです。 これにはどのようなアーキテクチャが最適ですか?各レイヤーに何があるべきか、DTO / POCO /アクティブレコードパターンを使用する必要があるかどうかなどを説明してください。 DTO / BOを自動生成する強力な方法があるので、追加のレイヤーがあっても、将来の拡張は簡単に実装できますか? プロジェクトをWebFormsからMVCに変換することは有益でしょうか?

2
node.jsおよびc#の使用例
私はかなりのASP.NET作業(C#、MVC)を行っていますが、そのほとんどは典型的なWeb開発です。CRUDリポジトリーを使用してRestfulアーキテクチャーを実行します。私のクライアントのほとんどは、アプリケーション内に高度な要件をあまり持っていません。 私は現在node.jsを見ていて、パフォーマンスへの影響(私はスピードに夢中になっています)ですが、それほど深く掘り下げていません。 かしら node.jsは、C#およびASP.NET MVCでの私の典型的なWeb開発を現実的に置き換えることができます(既存のアプリを書き換えるのではなく、新しいアプリで作業する場合) node.jsは、既存のアーキテクチャに非同期機能を追加することで、ASP.NET MVCアプリを補完できます。 C#およびnode.jsのユースケースはありますか? 編集する 私はASP.NET MVCが大好きで、どこに行くのかとても興奮しています。node.jsを支持する特別なユースケースがあるかどうかを確認しようとしています

3
MVVMまたはMVC?WPFとASP.NETに同じクラスのセットを使用したい
私はデザインパターンの初心者です。新しい話題のMVVMを聞いているとき、MVCの学習を始めました。 古い在庫を再設計して、クライアント用に開発したアプリケーションに請求書を発行することで、これら両方の洞察を学びたいと思います。WindowsベースのWPFアプリケーションとWebベースのバージョンの両方を書きたいのですが。できれば同じクラスのセットを使用したいと思いますが、そうでない場合は、少なくとも少しの変更を加えてください。 私はいくつかの記事を読みましたが、そこで議論されている.NET 3.5&4のアーキテクチャと高レベルの概念に従っていません。実際のプロジェクトで本当に必要なものだけを設計することで、段階的に移行したいと考えています。 MVVMへの簡単な段階的な参照はありますか?MVVMはMVCのスーパーセットですか、サブセットですか?最新のパターンと、アプリケーションのWindowsバージョンとWebバージョンのどちらを選択する必要がありますか? ビューに接続する必要がほとんどない特定のクラスがあります。その場合、MVVMの方法で同じクラスを設計することは、追加の労力であることがわかります。
10 mvc  wpf  asp.net-mvc-3  mvvm 

2
Java Swingでモデルをビュー/コントローラーから完全に分離する方法
Java Swingアプリで、ModelクラスをView / Controllerクラスから分離するための、よく合意された設計ガイドラインのコレクションはありますか?ビュー/コントローラーがモデルについて何も知らないことをそれほど心配しているわけではありません。逆に、モデルを設計して、javax.swingで何も認識しないようにしたいと考えています。理想的には、CLIのようなプリミティブによって駆動できるようにする単純なAPIが必要です。大まかに言えば「エンジン」である必要があります。 モデルへのGUIイベントの伝達はそれほど難しくありません。アクション実行者はモデルのAPIを呼び出すことができます。しかし、モデルがGUIに反映する必要がある独自の状態変更を行う場合はどうでしょうか?それが「聞く」ことの目的ですが、「聞く」ことさえ完全に受動的ではありません。モデルがリスナーの追加について知っている必要があります。 考えさせられた特定の問題は、ファイルのキューに関係しています。GUI側にはのDefaultListModel後ろにありJList、ファイルシステムからファイルを選択してJListに追加するためのGUIがいくつかあります。モデル側では、この「キュー」の最下部からファイルをプルし(JListからファイルを非表示にします)、何らかの方法でそれらを処理します。実際、Modelコードは既に作成されています-現在、を維持しArrayList<File>、パブリックadd(File)メソッドを公​​開しています。しかし、モデルにSwing固有の大きな変更を加えずに、ビュー/コントローラーでモデルを機能させる方法について、私は途方に暮れています。 私はJavaとGUIプログラミングの両方に非常に慣れていないため、これまで「バッチ」プログラミングと「バックエンド」プログラミングを常に行ってきました。したがって、可能であれば、モデルとUIの間の厳密な分割を維持することに関心があります。教わります。
10 java  mvc  swing 

3
MVC:完全に実装されたモデルまたは部分的に満たされたモデル?
これは長い間私を悩ませてきました。MVCプログラミングを行うとき、プログラミングの実践として優れていると思いますか?特にこの特定のタスクのために、他に5つあるモデルオブジェクトの2つのフィールドのみが必要であることがわかっている場合、完全に入力されたモデルまたは部分的に入力されたモデルを使用する必要がありますか? ほんの数個のモデルオブジェクトが必要になることがわかっている場合に、20個のモデルオブジェクトのリストにデータベースのすべての値を入力することは、犯罪のように思われることがあります。 もちろん、部分モデルは、すべてをフェッチするメソッドとは別に、DAOにもう1つのメソッドを記述する必要があることを意味します。維持するコードが増えるということですか? 一方、完全にモデルが設定されたDBからすべてを取得するということは、1つの方法ですべてを処理できることを意味しますが、これにより明らかにパフォーマンスのオーバーヘッドが発生します。 私はORM(HibernateやActiveRecord of Railsなど)がMVCプログラミングの傾向を支持しており、GoogleのBigTableフルモデルのようなデータベースが受け入れられる傾向を示しています。しかし、古き良きJDBCをまだ使用している場合はどうでしょうか。 ハードウェアは安価で、開発にはコストがかかります。アプリが1時間あたり数十万リクエストにスケーリングする必要がある場合でも、それは本当ですか?
10 mvc 

7
ビューでのセキュリティ条件文の使用はMVCの違反ですか?
多くの場合、ユーザーに表示されるもの(Webページなど)は、部分的にセキュリティチェックに基づいています。私は通常、ユーザーレベルのACLセキュリティをシステムのビジネスロジックの一部と見なしています。ビューがセキュリティを明示的にチェックして条件付きでUI要素を表示する場合、ビジネスロジックを含むことでMVCに違反していますか?

1
Delphi PascalにMVVMとMVCを実装するためのベストプラクティス
私はDelphiパスカルプログラマーで、最新のEmbarcadero delphi XEを使用しています。モデルビューコントローラーやモデルビュービューモデルなどのデザインパターンを利用したいと思います。 ただし、これをPascalで行うためのベストプラクティスについては、Webに多くはないようです。私が見つけることができるほとんどの例はC#にあり、一部の言語機能はPascalに存在しません。つまり、これらの機能を実装する方法を見つける必要があるかもしれません。 この記事のコードをここで適応させようとしています 私が直面している問題をリストします null許容型 PascalにはC#のようにnull許容型がないため、独自に作成しました。 TNullable<T> = record strict private fHasValue : boolean; fValue : T; function GetValue:T; procedure SetValue(newValue : T); public property HasValue : boolean read fHasValue; property Value : T read GetValue write SetValue; procedure SetToNull; end; 実装セクション function TNullable<T>.GetValue:T; begin if fHasValue then …

4
MVCでは、コントローラークラスに非アクションのプライベート関数を含めることをお勧めしますか?
コントローラークラスのアクション関数は、モデルからビューへのデータのフローを単純に制御するための多数のコード行で、巨大で厄介なものになる場合があります。ある時点で、これらの巨大な関数は、優れたコードの基本原則を完全に失うことになります。 これらの巨大なアクション関数をコントローラークラスで小さなプライベート関数に分割することは良い習慣と考えられるでしょうか、またはそのような最適化の必要性はモデルにそれらを追加する必要があることを意味しますか? アクションに関連するように、コントローラーで小さい関数をプライベートとして使用することに投票しますが、モデルが巨大でぎこちない場合は、コントローラーはシンプルであることが望ましいという意見を聞いています。そして、どちらが最も好ましい方法であるか疑問に思っていました。
10 php  code-quality  mvc 


1
異なるスコープからのi18nオブジェクトへのアクセス
私はMVCパターンを学ぶ方法として始まった私の個人的なフレームワークを構築していて、今ではほとんどのフレームワークよりも好きなものに進んでいます(これはおそらく私が好きなものを追加して、私がしないものを変更したためです)好きではありませんが、それにもかかわらず)良いか悪いかにかかわらず、私はいくつかのプロジェクトでそれを使用しています。 私が現在抱えている問題は、i18n機能にアクセスするための適切な方法を思い付かないことです(これは実際にはi18nではなく、単なる翻訳であり、完全なi18nサポートは含まれていません)。 それが機能する方法は、構成ファイルを言語ファイルとして使用することです。Configフレームワークでは構成ファイルが動的にロードされるため、クラスを使用してそれらをロードするのが非常に便利だと考えたため、必要でない限りここで一目で把握できます。 class Config { private static $settings = array(); private function __construct() { } public static function load($file) { $path = PROJECT_PATH . '/config/' . $file . '.php'; if (is_file($path)) { $settings = require($path); } else { throw new Exception('Configuration file [' . $file . '] doesn\'t exist', …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.