SlideShare a Scribd company logo
1 of 32
Сложные социальные
приложения с помощью
JS MVC фреймворков
Vladimir Ludinov @ Stuzo
Обо мне
   10+ лет в веб разработке
   3 лет в Stuzo как front-end developer
   30+ Facebook приложений
История развития веба

   1999 - XMLHttpRequest
   2002 - ASP, JSP, PHP
   2005 - “Ajax”
   2006 - jQuery
   2008 - JavascriptMVC
   2010 - Backbone
Социальные приложения
   Сложная логика интерфейса
   Множество визуальных компонентов
   Краткие сроки
jQuery подход
Проблемы

   Нечитаемый код
   Связанный код
   Одноразовый код
   Часто все в одном файле
   Сложно поддерживать
Требования

   Читаемость
   Повторное использование
   Простота поддержки
JS фреймворки

   Widget based: ExtJS, Qooxdoo ...
   Toolkits: YUI, Dojo, ...
   Microframeworks
   MVC: 30+
MVC шаблон (1970)


   Разделение сфер
    влияния

MVC, MVP, MVVM...
MV* (MV Whatever)
Копроненты JS MVC

   Система модулей (OOP, injectors, mixins)
   Шина событий (сообщений)

   Шаблонизатор
   Ajax и роутинг хелперы
С jQuery на Backbone
html:
С jQuery на Backbone
js:
Представления
Модели и инициализация
Выводы

   Кода в два раза больше
   Более структурированный код
   Читабельный ? – Предсказуемый!
   Более поддерживаемый код
TodoMVC

30+ фреймворков
Критерии выбора

   Зрелость фреймворка
   Сообщество
   Документация
   Дополнительные возможности
   Личное впечатление
Top 3

   Angular
   Backbone
   Ember
Backbone
   Достоинства
     Предстказуемый код
     Очень гибкий
     Хорошо документирован
     Большое сообщество
     Расширенные возможности представления
      (Chaplin)

   Недостатки
     Много   кода инициализации
Ember
   Достоинства
     2-хсторонняя привязка данных
     Сильное сообщество



   Недостатки
     Оченьплохая документация
     Сложная архитектура
Уникальные особенности Angular


   2-х сторонняя привязка данных
   Декларативные шаблоны
Просто работает
Или более в “MVC стиле”
«Из коробки»

   Удобный роутинг
   Валидация форм
   Rest хелпер
Валидация форм
Rest хелпер
«Из коробки»

   Директивы
   Фильтры
   Локализация
Директивы, Фильтры, Локализация
«Из коробки»

   Реализация «promise»
Реализация «promise»
Angular
   Достоинства
     Гораздо меньше кода
     Доп. возможности из коробки



   Недостатки
     «Магия» – Высокий порог входа
     Слабые возможности представления
       Вложенные представления
       Модальные диалоги
Ссылки
   https://github.com/kjbekkelund/writings/blob/m
    aster/published/understanding-backbone.md
   http://todomvc.com/
   http://angularjs.org
   http://emberjs.com/api/
   http://chaplinjs.org/

More Related Content

What's hot

QA Fes 2016. Анна Карпенко. Специфика тестирования мобильных приложений или к...
QA Fes 2016. Анна Карпенко. Специфика тестирования мобильных приложений или к...QA Fes 2016. Анна Карпенко. Специфика тестирования мобильных приложений или к...
QA Fes 2016. Анна Карпенко. Специфика тестирования мобильных приложений или к...QAFest
 
VIPER architecture
VIPER architectureVIPER architecture
VIPER architectureAlex Rudyak
 
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...COMAQA.BY
 
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищатьВзломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищатьrevisium
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"GeeksLab Odessa
 
Почему взламывают даже защищенные CMS на безопасном хостинге
Почему взламывают даже защищенные CMS на безопасном хостингеПочему взламывают даже защищенные CMS на безопасном хостинге
Почему взламывают даже защищенные CMS на безопасном хостингеrevisium
 

What's hot (6)

QA Fes 2016. Анна Карпенко. Специфика тестирования мобильных приложений или к...
QA Fes 2016. Анна Карпенко. Специфика тестирования мобильных приложений или к...QA Fes 2016. Анна Карпенко. Специфика тестирования мобильных приложений или к...
QA Fes 2016. Анна Карпенко. Специфика тестирования мобильных приложений или к...
 
VIPER architecture
VIPER architectureVIPER architecture
VIPER architecture
 
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
 
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищатьВзломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
Взломать Нельзя Защитить: как взламывают сайты и как их эффективно защищать
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
 
Почему взламывают даже защищенные CMS на безопасном хостинге
Почему взламывают даже защищенные CMS на безопасном хостингеПочему взламывают даже защищенные CMS на безопасном хостинге
Почему взламывают даже защищенные CMS на безопасном хостинге
 

Viewers also liked

Innovativo sistema di ricerca perdite delle reti idriche
Innovativo sistema di ricerca perdite delle reti idricheInnovativo sistema di ricerca perdite delle reti idriche
Innovativo sistema di ricerca perdite delle reti idricheAcquedotto Pugliese
 
Выгодный редизайн. Как протолкнуть технический редизайн в бэклог?
Выгодный редизайн. Как протолкнуть технический редизайн в бэклог?Выгодный редизайн. Как протолкнуть технический редизайн в бэклог?
Выгодный редизайн. Как протолкнуть технический редизайн в бэклог?z-tech
 
Redazione del piano di emergenza straordinario della gestione dei fanghi deri...
Redazione del piano di emergenza straordinario della gestione dei fanghi deri...Redazione del piano di emergenza straordinario della gestione dei fanghi deri...
Redazione del piano di emergenza straordinario della gestione dei fanghi deri...Acquedotto Pugliese
 
Il quadro nazionale della gestione dei fanghi ed eventuali sviluppi
Il quadro nazionale della gestione dei fanghi ed eventuali sviluppiIl quadro nazionale della gestione dei fanghi ed eventuali sviluppi
Il quadro nazionale della gestione dei fanghi ed eventuali sviluppiAcquedotto Pugliese
 
Gli effetti ambientali del sistema di depurazione in Puglia alla luce dei dat...
Gli effetti ambientali del sistema di depurazione in Puglia alla luce dei dat...Gli effetti ambientali del sistema di depurazione in Puglia alla luce dei dat...
Gli effetti ambientali del sistema di depurazione in Puglia alla luce dei dat...Acquedotto Pugliese
 
Масштабирование социальных приложений с помощью AWS
Масштабирование социальных приложений с помощью AWSМасштабирование социальных приложений с помощью AWS
Масштабирование социальных приложений с помощью AWSz-tech
 

Viewers also liked (9)

Innovativo sistema di ricerca perdite delle reti idriche
Innovativo sistema di ricerca perdite delle reti idricheInnovativo sistema di ricerca perdite delle reti idriche
Innovativo sistema di ricerca perdite delle reti idriche
 
Выгодный редизайн. Как протолкнуть технический редизайн в бэклог?
Выгодный редизайн. Как протолкнуть технический редизайн в бэклог?Выгодный редизайн. Как протолкнуть технический редизайн в бэклог?
Выгодный редизайн. Как протолкнуть технический редизайн в бэклог?
 
Redazione del piano di emergenza straordinario della gestione dei fanghi deri...
Redazione del piano di emergenza straordinario della gestione dei fanghi deri...Redazione del piano di emergenza straordinario della gestione dei fanghi deri...
Redazione del piano di emergenza straordinario della gestione dei fanghi deri...
 
La depurazione in Puglia
La depurazione in PugliaLa depurazione in Puglia
La depurazione in Puglia
 
Il quadro nazionale della gestione dei fanghi ed eventuali sviluppi
Il quadro nazionale della gestione dei fanghi ed eventuali sviluppiIl quadro nazionale della gestione dei fanghi ed eventuali sviluppi
Il quadro nazionale della gestione dei fanghi ed eventuali sviluppi
 
Presentazione aqp ita
Presentazione aqp itaPresentazione aqp ita
Presentazione aqp ita
 
La depurazione in Puglia
La depurazione in PugliaLa depurazione in Puglia
La depurazione in Puglia
 
Gli effetti ambientali del sistema di depurazione in Puglia alla luce dei dat...
Gli effetti ambientali del sistema di depurazione in Puglia alla luce dei dat...Gli effetti ambientali del sistema di depurazione in Puglia alla luce dei dat...
Gli effetti ambientali del sistema di depurazione in Puglia alla luce dei dat...
 
Масштабирование социальных приложений с помощью AWS
Масштабирование социальных приложений с помощью AWSМасштабирование социальных приложений с помощью AWS
Масштабирование социальных приложений с помощью AWS
 

Similar to Сложные социальные приложения с помощью JS MVC фреймворков

Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakAmasty
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservicesscassau
 
JavaScript Design Patterns overview by Ksenia Redunova
JavaScript Design Patterns overview by Ksenia RedunovaJavaScript Design Patterns overview by Ksenia Redunova
JavaScript Design Patterns overview by Ksenia RedunovaLohika_Odessa_TechTalks
 
"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii Holubiev"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii HolubievFwdays
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.Igor Shkulipa
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковCodeFest
 
Арсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияАрсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияArseny Zarechnev
 
Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхMagecom Ukraine
 
Строим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыСтроим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыDenis Ivanov
 

Similar to Сложные социальные приложения с помощью JS MVC фреймворков (20)

Backbone lesson 1
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
 
ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
 
Meet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis BosakMeet Magento Belarus 2015: Denis Bosak
Meet Magento Belarus 2015: Denis Bosak
 
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только одинSECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
 
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только одинSECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservices
 
Java 2 - Java Intro
Java 2 - Java IntroJava 2 - Java Intro
Java 2 - Java Intro
 
JavaScript Design Patterns overview by Ksenia Redunova
JavaScript Design Patterns overview by Ksenia RedunovaJavaScript Design Patterns overview by Ksenia Redunova
JavaScript Design Patterns overview by Ksenia Redunova
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii Holubiev"Electron. How the most modern framework works" Oleksii Holubiev
"Electron. How the most modern framework works" Oleksii Holubiev
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
 
InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015InterSystems Community and Projects in CIS November 2015
InterSystems Community and Projects in CIS November 2015
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Symfony 3
Symfony 3Symfony 3
Symfony 3
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Арсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложенияАрсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложения
 
Стандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
 
Строим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыСтроим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэнды
 

Сложные социальные приложения с помощью JS MVC фреймворков