kzhereb / knu-is-rivim2017

Discussing lectures, questions and other related topics for RiVIM course
0 stars 1 forks source link

Question 3.8. MV* family #27

Open viktor-yakubiv opened 6 years ago

viktor-yakubiv commented 6 years ago

Навести приклади різних варіацій патерну MVC, що використовуються у веб розробці (як back-end, так і front-end).

Варто наводити не лише екзотичні назви, а й пояснення, в чому полягає відмінність від класичної схеми MVC, а також приклади фреймворків, що використовують таку варіацію, та відповідні посилання.

viktor-yakubiv commented 6 years ago

Наскільки мені відомо, @Fly-Style про це згадував.

MV* – сімейство шаблонів проектування, яке утворилося внаслідок модифікацій MVC. Сюди входить Model-View-Presenter (MVP), Model-View-ViewModel (MVVM).

Описані шаблоги зараз багато де, а різниця на рівні реалізації дуже незначна, практично непомітна для кінцевого користувача.

Почати раджу з Quora, далі за посиланнями буде набагато більше інформації.

viktor-yakubiv commented 6 years ago

Проте, з часом люди зрозуміли, що інтерактивні шаблони не підходять для фронт-енду, оскільки для їх правильного застосування треба докладати надто багато зусиль, при цьому залишаючи купу проблем в архітектурі й все одно порушуючи деякі принципи, регламентовані шаблоном.

Це породило масу нових речей, які базуються на реактивному підході, таких як Elm Architecture, або Model-Update-View, Model-View-Intent, Flux Architecture.

Після цього під впливом праці Леслі Лемпорта TLA+ Жан-Жак Дюбре розробив SAM Pattern.

Fly-Style commented 6 years ago

Точно так, @viktor-yakubiv, вспоминал. Про MVC, MVP, MVVM, SAM, Flux.