SlideShare a Scribd company logo
Что такое современный
фронтенд?
Тимофей Чаптыков
tim.chaptykov@gmail.com @chaptykov
Как выглядит современный фронтенд
Начало1
3
11 лет
4
Я могу так
И так
И даже так
<!-- Мой первый гипертекстовый документ из 2004 -->
h1< > h1</ >
h2< > h2</ >
p< > p</ >
Технологии
—  HTML для разметки;
—  CSS для оформления;
—  JavaScript для логики.
6
JavaScript в 2005
7
Взрыв2
8
Взрыв → Организация кода
9
Фреймворки
—  GWT
—  ExtJS
—  Knockout
—  Backbone
—  Angular
—  React
10
Что такое фреймворк?
11
Как выглядит современный фронтенд
Пакетные менеджеры
—  bower
—  npm
13
Зачем нужен пакетный менеджер?
14
// Менеджмент зависимостей в npm
{
"name": "Application",
"dependencies": {
"babel": "^5.8.19",
"express": "^4.3.2",
"superagent": "^1.3.0"
}
}
Как выглядит современный фронтенд
Модульные системы
—  CommonJS
—  amd
—  ECMAScript 2015 modules
17
Системы сборки
—  Grunt
—  Gulp
—  Browserify
—  Webpack
18
Языки и транспиллеры
—  Dart от Google
—  TypeScript от Microsoft
—  flow или JSX от Facebook
—  ECMAScript 2015
—  ECMAScript 2016
19
r
length Math PI r
s Math PI r r
circle
// Пример кода с использованием ECMAScript 2015
class Circle extends Figure {
constructor( ) {
super();
this. = 2 * . * ;
this. = . * * ;
}
}
var = new Circle(10);
_get _x _x2 _x3
_again
_function _again
object _x
property _x2
receiver _x3
_again
object object Function prototype
desc Object object property
desc undefined
parent Object object
parent
undefined
_x parent
_x2 property
_x3 receiver
_again
desc parent undefined
_function
desc
desc value
getter desc
getter undefined
undefined
getter receiver
instance Constructor
instance
subClass superClass
superClass superClass
superClass
subClass prototype Object superClass superClass prototype
constructor
value subClass
enumerable
writable
configurable
superClass Object setPrototypeOf Object subClass superClass subClass __proto__ superClass
Circle _Figure
Circle _Figure
r
Circle
Object Circle prototype
length Math PI r
s Math PI r r
Circle
Figure
circle
"use strict";
var = function get( , , ) {
var = true;
: while ( ) {
var = ,
= ,
= ;
= false;
if ( === null) = . ;
var = .getOwnPropertyDescriptor( , );
if ( === ) {
var = .getPrototypeOf( );
if ( === null) {
return ;
} else {
= ;
= ;
= ;
= true;
= = ;
continue ;
}
} else if ("value" in ) {
return . ;
} else {
var = .get;
if ( === ) {
return ;
}
return .call( );
}
}
};
function _classCallCheck( , ) {
if (!( instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _inherits( , ) {
if (typeof !== "function" && !== null) {
throw new TypeError("Super expression must either be null or a function, not " + typeof );
}
. = .create( && . , {
: {
: ,
: false,
: true,
: true
}
});
if ( ) . ? .setPrototypeOf( , ) : . = ;
}
var = (function( ) {
_inherits( , );
function Circle( ) {
_classCallCheck(this, );
_get( .getPrototypeOf( . ), "constructor", this).call(this);
this. = 2 * . * ;
this. = . * * ;
}
return ;
})( );
var = new Circle(10);
Взрыв → API
22
Количество API на ProgrammableWeb
23
32 2005
~3000 8 марта 2011
~4000 8 марта 2011
~14300 2015
Картографические API
—  API Карт от 2ГИС
—  API Карт от Яндекс
—  Google Maps API
—  OpenStreetMap API
24
Как выглядит современный фронтенд
API социальных сетей
—  vk.com/dev
—  developers.facebook.com
—  dev.twitter.com
—  instagram.com/developer
—  apiok.ru
—  core.telegram.org
—  developer.foursquare.com
26
Погода
—  Yahoo! Weather
—  Gismeteo
27
Поиск
—  Поиск для сайта от Яндекс
—  Custom search от Google
28
Видео, фото, музыка
—  vk.com/dev
—  API данных Youtube
—  SoundCloud API
—  The App Garden от Flickr
—  Last.fm Web Services
29
Покупки
—  Product Advertising API от Amazon
—  Ebay API
30
REST API для единственного клиента
31
Взрыв → Платформы
32
Браузер
—  Геолокация
—  Микрофон
—  Камера
—  File API, FileReader API
—  WebRTC
—  Gamepad, MIDI
—  Web Audio и cинтезирование речи
33
Try Speech Synthesis API
34
text
speech text
speechSynthesis text
var = 'London is a capital of Great Britain.';
var = new SpeechSynthesisUtterance( );
.speak( );
Node.js
—  Приложения для Windows, Linux, Mac OS
—  Работа с ресурсами ОС
36
NW.js и аналоги
Графический интерфейс для приложений
в Windows, Linux и Mac OS.
«Браузер» для одного приложения
37
Adobe Phonegap
—  iOS
—  Android
—  Windows Phone
—  Blackberry OS
—  Symbian
—  Bada
—  WebOS
38
React Native
—  iOS
—  Android
Уже не «браузер», а полноценное
управление нативными элементами
из JavaScript.
39
Сейчас3
40
JavaScript в 2015
—  На любых платформах;
—  С развитой экосистемой;
—  И, наконец, на JS стало удобно писать.
41
Самая быстрорастущая экосистема в мире
42
Как выглядит современный фронтенд
А если серьезно…
44
Так выглядит современный фронтенд.
45
Так строится будущее сегодня.
46
Тимофей Чаптыков
tim.chaptykov@gmail.com
@chaptykov
47

More Related Content

PDF
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
PDF
#7 "Многообещающий JavaScript – Promises" Денис Речкунов
PPTX
JavaScript как объектно-ориентированный язык программирования
PPTX
What’s New in PHP7?
PPTX
Tdd webpack + testem + mocha + chai
PPTX
Аскетичная разработка браузера
PDF
C++ exceptions
PDF
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»
#2 "Распространённые ошибки в JavaScript" Денис Речкунов
#7 "Многообещающий JavaScript – Promises" Денис Речкунов
JavaScript как объектно-ориентированный язык программирования
What’s New in PHP7?
Tdd webpack + testem + mocha + chai
Аскетичная разработка браузера
C++ exceptions
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»

What's hot (20)

PDF
Полный цикл тестирования React-приложений, Алексей Андросов и Наталья Стусь
PDF
МРТ для данных, Frontend Conf 2016
PDF
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
PDF
ПВТ - весна 2015 - Лекция 0. Описание курса
PPTX
Как мы уменьшили количество ошибок в Unreal Engine с помощью статического ана...
PDF
DI в C++ тонкости и нюансы
PPTX
CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...
PDF
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
PPTX
Олексій Андрусевич “Прискорення робочого процесу в Adobe Photoshop за допомог...
PDF
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
PDF
По колено в Си++ г... коде
PDF
Performance optimisation in javascript
PPTX
PHP7 - Предрелизный обзор
PDF
Js optimization
PDF
Алексей Андросов - Debugger: Отладка кода
PPTX
JavaScript: хороший тон клиентской разработки
PDF
Jbreak 2016: Твой личный Spring Boot Starter
PPTX
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах
PPTX
course js day 1
PDF
Lift, play, akka, rails part1
Полный цикл тестирования React-приложений, Алексей Андросов и Наталья Стусь
МРТ для данных, Frontend Conf 2016
«Изоморфные js приложения с использованием catberry.js», Денис Речкунов
ПВТ - весна 2015 - Лекция 0. Описание курса
Как мы уменьшили количество ошибок в Unreal Engine с помощью статического ана...
DI в C++ тонкости и нюансы
CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Олексій Андрусевич “Прискорення робочого процесу в Adobe Photoshop за допомог...
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
По колено в Си++ г... коде
Performance optimisation in javascript
PHP7 - Предрелизный обзор
Js optimization
Алексей Андросов - Debugger: Отладка кода
JavaScript: хороший тон клиентской разработки
Jbreak 2016: Твой личный Spring Boot Starter
CodeFest 2014. Пугачев С. — Язык TypeScript или JavaScript на стероидах
course js day 1
Lift, play, akka, rails part1
Ad

Viewers also liked (20)

PPSX
Sueño
PPTX
Final Evaluation
PPTX
How to Design a Local SGM Plan
PDF
CV Achmad Badaruddin
PPT
El Clima
PDF
Security event presentation 3.4.2016-final
ODP
Nutricion
PPS
La tierra en miniatura
DOCX
Reflexion educacion tics
PPTX
Portfolio night 8 presse
PPTX
El pronombre se
PPT
Ur Home. Ur Choices
PDF
Piewnam Chalermyart - Asian TYA Network event presentation at ricca ricca*fes...
PDF
Tuesday - A Wild Stand - God Is Unmatchable
PPTX
Producto-Mercadeo
PPT
POP ARTISTS Andy Warhol
PDF
Process Art Story Time
PPT
Jim dinehearts
PPTX
Guía por Competencias - Power Point
DOCX
Marcas propias
Sueño
Final Evaluation
How to Design a Local SGM Plan
CV Achmad Badaruddin
El Clima
Security event presentation 3.4.2016-final
Nutricion
La tierra en miniatura
Reflexion educacion tics
Portfolio night 8 presse
El pronombre se
Ur Home. Ur Choices
Piewnam Chalermyart - Asian TYA Network event presentation at ricca ricca*fes...
Tuesday - A Wild Stand - God Is Unmatchable
Producto-Mercadeo
POP ARTISTS Andy Warhol
Process Art Story Time
Jim dinehearts
Guía por Competencias - Power Point
Marcas propias
Ad

Similar to Как выглядит современный фронтенд (20)

PDF
Java script и frontend завтра - Kharkiv JS 2013
PDF
D2D Pizza JS Илья Беда "Куда мы все катимся?"
PDF
Фреймворки: недалёкое прошлое и ближайшее будущее
PPTX
What do you MEAN? или введение в Fullstack JavaScript
PDF
Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
PDF
Инструментируй это
PDF
Frontend - экосистема и будущее: iforum 2015
PDF
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
PDF
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
PDF
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
PDF
Javascript-фреймворки:
 должен остаться только один
PDF
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
PDF
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
PDF
Актуальные технологии и тренды в веб-разработке
PPTX
Frontend-frejmvorki-sozdanie-polzovatelskogo-interfejsa.pptx
PDF
Изоморфный JavaScript — будущее уже здесь
PDF
Павел Юрийчук - Разработка приложений под мобильные браузеры
PDF
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
PPTX
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
PPTX
RESTful API: Best practices, versioning, design documentation
Java script и frontend завтра - Kharkiv JS 2013
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Фреймворки: недалёкое прошлое и ближайшее будущее
What do you MEAN? или введение в Fullstack JavaScript
Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
Инструментируй это
Frontend - экосистема и будущее: iforum 2015
SECON'2016. Аверин Сергей, Javascript-фреймворки:
 должен остаться только один
SECON'2016. Сергей Аверин. Javascript-фреймворки:
 должен остаться только один
2015-12-05 Сергей Аверин - Javascript-фреймворки: должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки: должен остаться только один / Аверин Сергей (Acronis)
2017-03-26 02 Егор Непомнящих. Что такое web front end, и с чем его едят
Актуальные технологии и тренды в веб-разработке
Frontend-frejmvorki-sozdanie-polzovatelskogo-interfejsa.pptx
Изоморфный JavaScript — будущее уже здесь
Павел Юрийчук - Разработка приложений под мобильные браузеры
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Примеры быстрой разработки API на масштабируемом сервере приложений Impress д...
RESTful API: Best practices, versioning, design documentation

More from Timophy Chaptykov (7)

PDF
Оптимизация графики на практике
PDF
Death from slides
PDF
React со скоростью света: не совсем обычный серверный рендеринг
PDF
Как устроиться на работу в крупную IT-компанию
PDF
CSS-менеджмент в 2016
PDF
Контроль качества верстки или как начать делать Makeup
PDF
Контроль качества верстки или как начать делать Makeup
Оптимизация графики на практике
Death from slides
React со скоростью света: не совсем обычный серверный рендеринг
Как устроиться на работу в крупную IT-компанию
CSS-менеджмент в 2016
Контроль качества верстки или как начать делать Makeup
Контроль качества верстки или как начать делать Makeup

Как выглядит современный фронтенд