32
Фреймворки Недалёкое Прошлое и Ближайшее Будущее Андрей Саломатин

Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Embed Size (px)

DESCRIPTION

Презентация доклада Андрея Саломатина на YaC 2014

Citation preview

Page 1: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

ФреймворкиНедалёкое Прошлое и Ближайшее Будущее

Андрей Саломатин

Page 2: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Андрей СаломатинFull stack разработчик Организатор MoscowJS

@filipovskii [email protected]

2

Page 3: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
Page 4: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Тёмные Времена

Page 5: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

0 %

1 %

2 %Firefox 12 %

IE 85 %

2006 Статистика использования браузеров

источник: TheCounter.com

4

Page 6: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

2006 StackOverflow и GitHub не существуют

5

Page 7: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

2006 Появляется надежда

6

Page 8: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
Page 9: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Эпоха Возрожденияклиент-сайда

Page 10: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

2010-2011 Небольшие MV* библиотеки

8

Page 11: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

2011-2012 Монолитные фреймворки

9

Page 12: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

2013-2014 Компонентный подход

10

Polymer React

Page 13: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

2008-2014 Количество вопросов на StackOverflow

11

Октябрь 2008

0

15 000

30 000

45 000

60 000

ExtJS Backbone Knockout Angular Ember Meteor Polymer React

Page 14: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

2008-2014 Количество вопросов на StackOverflow

11

Сентябрь 2014

0

15 000

30 000

45 000

60 000

ExtJS Backbone Knockout Angular Ember Meteor Polymer React

Page 15: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
Page 16: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Портретэпохи возрождения

Page 17: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Техники

MV* архитектура Компонентный подход

Двухсторонние биндинги Реактивность

13

Page 18: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

MV* Архитектура• MVC, MVVM, MVP

• Просто начать

• Плохо масштабируется

• Backbone, Knockout, Angular

14

Page 19: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Компонентный подход• Слабо-связанные переиспользуемые компоненты

• Инкапсуляция на уровне DOM, CSS, JS

• ExtJS, basis.js, React, Polymer, BEM

15

Page 20: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Двухсторонние биндинги• Модель ⇄ представление

• Knockout, Angular, Polymer

• Проблемы с быстродействием

• Магия

16

Page 21: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Реактивность

• Описываем зависимости

• Фреймворк следит и распространяет изменения

• Knockout, Meteor, React

17

Page 22: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Портрет Эпохи

Фокус на:

• Архитектуру

• Сложные интерфейсы

• Реактивность

18

Page 23: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Портрет Эпохи

Фокус на:

• Архитектуру

• Сложные интерфейсы

• Реактивность

19

Page 24: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Портрет Эпохи

Фокус на:

• Архитектуру

• Сложные интерфейсы

• Реактивность

19

Page 25: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
Page 26: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Изобретаембудущее

Page 27: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Варианты развития

Модульные фреймворки Изоморфизм

Перенос данных на клиент

21

Page 28: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Модульные фреймворки

• Возможность заменить логическую часть

• Возможность использовать часть отдельно от остального

• Ampersand.js, i-bem.js

22

Page 29: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Изоморфизм• Один код на сервере и клиенте

• React, Meteor уже поддерживают

• Angular, Polymer никогда не будут поддерживать

23

Page 30: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Перенос данных на клиент

• Описываем операции с данными, не транспорт

• Фреймворк синхронизирует клиент и сервер

• Offline First

• Hoodie, Swarm.js

24

Page 31: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Ваши варианты?#yac2014 #frontend

25

Page 32: Фреймворки: Недалёкое Прошлое и Ближайшее Будущее

Спасибо!#yac2014 #frontend

Андрей Саломатин @filipovskii

[email protected]