wikipedia の MVC を訳してみた 最後

最後です。

(原文)

Goals of MVC

This section possibly contains original research. Please improve it by verifying the claims made and adding inline citations. Statements consisting only of original research should be removed. (February 2017) (Learn how and when to remove this template message)
Simultaneous development
Because MVC decouples the various components of an application, developers are able to work in parallel on different components without impacting or blocking one another. For example, a team might divide their developers between the front-end and the back-end. The back-end developers can design the structure of the data and how the user interacts with it without requiring the user interface to be completed. Conversely, the front-end developers are able to design and test the layout of the application prior to the data structure being available.

Code reuse
By creating components that are independent of each other, developers are able to reuse components quickly and easily in other applications. The same (or similar) view for one application can be refactored for another application with different data because the view is simply handling how the data is being displayed to the user.

Advantages & disadvantages
Advantages
Simultaneous development – Multiple developers can work simultaneously on the model, controller and views.
High cohesion – MVC enables logical grouping of related actions on a controller together. The views for a specific model are also grouped together.
Low coupling – The very nature of the MVC framework is such that there is low coupling among models, views or controllers
Ease of modification – Because of the separation of responsibilities, future development or modification is easier
Multiple views for a model – Models can have multiple views
Disadvantages
Code navigability – The framework navigation can be complex because it introduces new layers of abstraction and requires users to adapt to the decomposition criteria of MVC.
Multi-artifact consistency – Decomposing a feature into three artifacts causes scattering. Thus, requiring developers to maintain the consistency of multiple representations at once.
Pronounced learning curve – Knowledge on multiple technologies becomes the norm. Developers using MVC need to be skilled in multiple technologies.

(訳)

MVC到達点

同時の開発

MVCはアプリケーションを様々なコンポーネントに分割するので、開発者はお互い干渉することなく、並行して別々のコンポーネントに取り組むことができる

例えば、チームは開発者たちをフロントエンドとバックエンドに分けるかもしれない

バックエンドの開発者は完成したUIを必要とせずに、データの構造とどのようにしてユーザがそれを扱うのかを設計することができる

反対に、フロントエンドの開発者は利用可能になるデータの構造に先立って、アプリケーションのレイアウトを設計し、テストすることができる

コードの再利用

 お互いに独立したコンポーネントを作ることによって、開発者は他のアプリで素早く、また簡単に再利用することができる

ビューは単に、どのようにしてユーザにデータを表示するのかを扱うだけなので、1つのアプリケーションで同じ(もしくはよく似た)ビューは別のデータでもう1つのアプリケーションをリファクタリングすることができる

長所と短所

長所

同時の開発・・・複数の開発者が同時にモデル、コントローラ、モデルに取り組むことができる

高凝集・・・MVCはコントローラで一緒に関連したアクションの論理的グルーピングを可能にする

特定のモデルのためのビューはまた、一緒にまとめられる

低結合・・・MVCフレームワークの本質はモデル、ビュー、コントローラ間の低結合にある

修正の簡単さ・・・責務の分離のため、その後の開発と修正がより簡単だ

モデルのための複数のビュー・・・モデルは複数のビューを持つことができる

短所

コードのナビゲービリティ・・・フレームワークのナビゲーションは新たな抽象概念の層を導入し、ユーザにMVCの変容する標準に適応することを要求するので、フレームワークのナビゲーションは複雑になりがちである

多数の人工物の一貫性・・・機能を3つの人工物に分解することは分散をもたらす

このように、同時に多数のリプレゼンテーションの一貫性を維持するための開発者を必要としている

明白な学習曲線・・・多数のテクノロジーの知識は標準となっている

MVCを使う開発者は様々なテクノロジーに習熟している必要がある