Modern front end architectures

image


The article "Contemporary Front-end Architectures" discusses front-end architectures in terms of data flows in historical retrospective.


The material consists of three parts


  1. Theory and History
  2. Implementation
  3. Prospects



Part 1. Theory and History


.


, !

, , - โ€” . - - ( ) SPA SSR API. CMS - .


- . , DOM, jQuery, Backbone.js MVC. . - , . , MVC, React? ? .


, - , -, -. โ€” , , , .. .


โ€” ?


. โ€” , / , . ? .


.

, , , , , (Model) (Application state). ยซ ยป (Domain model) ยซ-ยป (Business logic) . -.


(-) . , .


MVC โ€”


( -, ). MVC โ€” Model View Controller, (View) (Model) . , , MVC , .


, SoC (Separation of Concern) โ€” . , , MVC .

MVC Smalltalk-80. MVC View , Model. MVC, ( 1970- ):


  • MVC . . .
  • Web. .
  • , "" .

MVC. Controller , , . , , (View) , .


, . , . , - , .


React, Vue Angular View-Controller , .

MVC, MVC. . . , .


image


:


  1. View Controller Model, . , Model , .


  2. Observer, View. Model , , View .



MVC . View- Model . . โ€” View-.


image


MVC MVC MVC (father's MVC).


(Application model)


, Application State GUI. - (Presentation logic) (View state), .


, .

. . 10, , . - . (UX), . โ€” ? ?


, , . , , โ€” โ€” . , . . . , 10 View , -.


, MVC โ€” (Application Model, AM). , View-Controller . .


image


, MVC. , , AM-MVC . , Application Model View , , , Application Model View.


, . (Presentation Model), , .


, , - , . .


. . "" . , . , Windows, .


. (View) .

. View . . . . , , .


View - View. โ€” .

MVC . , Dolphin . 1995 . , Dolphin , . .


, MVC 60 , ยซ ยป (Twisting the triad). MVP.

:


  1. (Presenter) . . .


  2. , , .



, MVP Supervising Controller MVP Passive View MVP. .


image


MVVM โ€” Model View ViewModel


MVP , , - MVVM . Model-View-Binder. MVVM Passive View MVP, (data binding). , . , View Model. .


:


  1. ViewModel โ€” , (bind-able) , View.


  2. MVVM Binder, View ViewModel. , ViewModel , , .



image


Data binding, MVVM, , Knockout, Angular, Vue.js, React .

-.


-


MVC, -. Web MVC. , - , - , MVC , .


, MVC web-MVC โ€” . web-MVC - , .

- . MVC -, . , โ€” .


- , . (rich client-driven) . .

- MVC, , , MVC: MVC , MVC - MVC. :


  1. (JS + HTML) .
  2. .
  3. .

, . , MVC .


MVC a.k.a. 2


MVC 2 Sun Microsystems - Java.


image


MVC MVC, , , , . , :


  • MVC (Data cycles), -MVC โ€” .
  • (View cycles). โ€” , , .. โ€” , , ..
  • , (Model cycle), , -.
  • Front Controller: , HTTP-. , - Java, IHttpHandler ASP.NET HTTP.Server Node.js.

, SSR (Server Side Rendering) โ€” . . HTML/ , JavaScript , -, MVC, SSR.



. JavaScript. , AJAX -. Google .


MVC, HTML + JavaScript. JS . JavaScript UX (Server View Cycles). , , .. .


image


-. B2C, SEO- -, CMS โ€” Content Management Systems, . .


. Web MVC. ASP.NET MVC, Java Struts, Python Django, Ruby ROR, PHP CodeIgniter โ€” , MVC Web MVC.


, , - .


RIA โ€” - (Rich Internet Application Architecture)


, -. - RIA โ€” Rich Internet Application. RIA , . RIA Rich Web Applications โ€” , , UX . , SPA (Single Page Application) โ€” . Web MVC . HTML-, .


RIA โ€” , . ViewModel, Observers, Components .. , . Oliver Steel, 15- ( , ) RIA.


image


RIA Web MVC Controller View . . , Controller View , , . - , , API-. JSON, -.


GUI ?


(Patterns), , GUI . , , - (Elements of Reusable Object-Oriented Software). . GUI.


GUI HCI (Human Computer Interaction) โ€” . (User) (Side Effect) .

, , . , , . .


- : , .


image


MVC. - . , UX .


โ€” , . SPA-.


Modern templates are similar to the advanced version of these revolutionary models and are a kind of general trend towards which the front-end community is moving.


End of Part One
Part 2


All Articles