SlideShare a Scribd company logo
1 of 29
Download to read offline
React.jsTheoretical
Basics
MaxKlymyshyn
CTOatCartFresh
CartFresh
‣ Стартап по доставке продуктов на дом

‣ Работаем как CartFresh (Boston, US) и
ZAKAZ.UA (Киев, Днепр, Одесса,
Харьков)

‣ Apache CouchDB, Apache Solr, Redis

‣ React.js on front-end
‣ 12+ лет опыта, 7 лет с Python, 6 с JS

‣ Работал в oDesk, Helios, 42cc.

‣ Соорганизатор PyCon Ukraine, KyivJS

‣ CTO в CartFresh
Обомне
Очемречь
‣НемногооReact.js
‣Практика
Шо тамReact.js
UI –этопроекцияданных,
(еслиточно – проекцияданныхвиную
формуданных)
DOMнеоптимизирован дляработы с
динамическимиUI.
React.js этоупрощеннаямодельDOM,
некоторыйминимальныйнаборсвойств,
которыепозволяютсоздатьэффективную
проекциюUI/UX.
Базовыесвойства
‣ Абстракция– возможность вызыватьодни
абстракциииз другихбезучетаособенностей
реализации
‣ Композиция – возможность комбинировать
абстракции
‣ Состояние–локальноесостояниеабстракцийдля
реализации сложныхUX
‣ Memoization– “чистота”абстракций.Неменяем,
еслиничегоне поменялось
Нуиконечнопродалото,каккомандаReact.js
превратилиO(n3)проблемув O(n)спомощью
двухпростыхдопущений
Короче,React.js прежде всего является
хорошо спроектированнойоптимизацией.
shouldComponentUpdate:
Практика
Концепции,которые
помогают упроститькод
‣ Неизменяемыеструктурыданных– Immutable.js
etc.Позволяют сохранятьсостояниеибыстрее
чинитьбаги
‣ Dynamicallytyped language
‣ Communicatingsequentialprocesses– концепция,с
помощью которыхудается существенноупростить
код иеговосприятие
‣ BFF(Back-endForFront-end)– язык запросовдля
взаимодействиясбекендом
Неизменяемыеструктуры
данных
var React = require('react');
var { Map, List } = require('immutable');
var Component = React.createClass({
getInitialState() { return { data: Map({ count: 0, items: List() }) }},
handleCountClick() {
this.setState(({data}) => ({
data: data.update('count', v => v + 1)
}));
},
handleAddItemClick() {
this.setState(({data}) => ({
data: data.update('items', list => list.push(data.get('count')))
}));
},
render() {
var data = this.state.data;
return (
<div>
<button onClick={this.handleCountClick}>Add to count</button>
<button onClick={this.handleAddItemClick}>Save count</button>
<div>Count: {data.get('count')}</div>
Saved counts:
<ul>{data.get('items').map(item => <li>Saved: {item}</li>)}</ul>
</div>);
}});
React.render(<Component />, document.body);
PropTypes
Типы
‣ TypeScriptэто было чересчурдляпроекта,
переезжавшегосjQueryна React.js/ES6etc.
‣ Ключеваяидеястрого типизированныхязыков дать знать
вовремякомпиляции/алучше впроцессе написания кода
отом,чтоиспользуетсянекорректный тип данных
‣ PropTypesненастолько полезен:нужночитать
компоненту (илигенерированнуюдоку) для понимания.
Илизапускать код.
CSP
range.on("preheat", function() {
pot.on("boil", function() {
rice.on("cooked", function() {
dinner.serve(rice);
});
});
});
Pyramidof doom
export class Suggest extends React.Component {
constructor(props) {
super(props);
this.state = {active: -1, suggests: props.suggests}}
componentWillReceiveProps(nextProps) {
switch(nextProps.code) {
case 38:
this.setState({active: Math.max(-1, this.state.active - 1)});
break;
case 40:
this.setState({
active: Math.min(this.props.suggests.length - 1, this.state.active + 1)});
break;
case 13:
search(this.props.suggests[this.state.active]);
this.setState({suggests: []});
break;
default:
this.setState({suggests: nextProps.suggests});
}
}
render() {
return (<ul className="dropdown dropdown-menu">
{this.state.suggests.map((e, n) =>
<li key={e} className={...}><a href="#">{e}</a></li>)}
</ul>);
}}
function listen(el, type) {
var ch = chan();
el.addEventListener(type, e => {
putAsync(ch, [e.keyCode, el.value]);
e.preventDefault();
});
return ch;
}
export function suggest(elem) {
var el = elem[0];
go(function * () {
var keydown = listen(el, 'keydown');
while(true) {
var [code, value] = yield take(keydown);
var response = yield take(Storage.sync([
["store.suggest", {query: value}, {id: "suggest"}]]));
ReactDOM.render(
<Suggest suggests={response.suggests || []} code={code} value={value} />,
document.getElementById("suggest"));
}
});
}
Back-endforFront-end
APISERVERS
request
state
generated
stateresponse
RENDERING
WORKER
REACT.JSDOM
RENDERER
put htmlinto
cache
CACHESERVERS
time
[
"store.products", {
store_id: Storage.first(“store").id, slugs: [options.slug],
facets: options.facets || [], sort: options.sort || “"
}, {
offset: options.offset || 1, id: "catalog",
join: [{
apply_as: "facets_base",
on: ["slug", "slug"],
request: {
type: "store.facets",
args: {
store_id: "$request.[-2].args.store_id",
slug: "$request.[-2].args.slugs|first"
}
}
}, {
apply_as: "category_tree",
on: ["slug", "requested_slug"],
request: {
type: "store.department_tree",
args: {
store_id: "$request.[-2].args.store_id",
slug: "$request.[-2].args.slugs|first"
}
}
}]
}
]
@maxmaxmaxmax
Вопросы?

More Related Content

What's hot

Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...Stas Vyschepan
 
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и JavascriptСергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и JavascriptSergey Platonov
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
 
Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?Yauheni Akhotnikau
 
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Ruby Meditation
 
Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Fwdays
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Ontico
 
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)Ontico
 
Управление памятью в CPython
Управление памятью в CPythonУправление памятью в CPython
Управление памятью в CPythonAnton Patrushev
 
Олег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоОлег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоCodeFest
 
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 
мониторинг производительности Web приложений на python
мониторинг производительности Web приложений на pythonмониторинг производительности Web приложений на python
мониторинг производительности Web приложений на pythonSlach
 
Алексей Рагозин (Deutsche Bank)
Алексей Рагозин (Deutsche Bank)Алексей Рагозин (Deutsche Bank)
Алексей Рагозин (Deutsche Bank)Ontico
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаSergey Platonov
 
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)Ontico
 
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...Ontico
 
Алексей Федоров
Алексей ФедоровАлексей Федоров
Алексей ФедоровCodeFest
 

What's hot (20)

Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
Оптимизация высоконагруженных ASP.NET приложений, работающих с MS SQL Server ...
 
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и JavascriptСергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
Сергей Шамбир, Адаптация Promise/A+ для взаимодействия между C++ и Javascript
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?
 
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
 
Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"Anton Turetckii "What does it take to build a host?"
Anton Turetckii "What does it take to build a host?"
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)Эффективная отладка репликации MySQL / Света Смирнова (Percona)
Эффективная отладка репликации MySQL / Света Смирнова (Percona)
 
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
 
Управление памятью в CPython
Управление памятью в CPythonУправление памятью в CPython
Управление памятью в CPython
 
Олег Бартунов и Иван Панченко
Олег Бартунов и Иван ПанченкоОлег Бартунов и Иван Панченко
Олег Бартунов и Иван Панченко
 
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
мониторинг производительности Web приложений на python
мониторинг производительности Web приложений на pythonмониторинг производительности Web приложений на python
мониторинг производительности Web приложений на python
 
Алексей Рагозин (Deutsche Bank)
Алексей Рагозин (Deutsche Bank)Алексей Рагозин (Deutsche Bank)
Алексей Рагозин (Deutsche Bank)
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладка
 
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
Язык Lua — секреты производительности / Ник Заварицкий (Mail.ru)
 
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
 
Алексей Федоров
Алексей ФедоровАлексей Федоров
Алексей Федоров
 

Viewers also liked

WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...WebCamp
 
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGIWebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGIWebCamp
 
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.WebCamp
 
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с CodeceptionWebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с CodeceptionWebCamp
 
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3WebCamp
 
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...WebCamp
 
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...WebCamp
 
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...WebCamp
 
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...WebCamp
 
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...WebCamp
 
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в версткеWebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в версткеWebCamp
 
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...WebCamp
 
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясьWebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясьWebCamp
 
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...WebCamp
 
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...WebCamp
 
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.WebCamp
 
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...WebCamp
 
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностьюWebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностьюWebCamp
 
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...WebCamp
 
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect ToolboxWebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect ToolboxWebCamp
 

Viewers also liked (20)

WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
WebCamp2016:Front-End.Катерина Поршнева.Эволюция CSS: от темных времен до CSS...
 
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGIWebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
WebCamp 2016: Python_Кирилл Перевозчиков _Рецепты приготовления uWSGI
 
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
WebCamp 2016: PHP. Дмитрий Науменко: Рецепты для Yii2.
 
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с CodeceptionWebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
WebCamp 2016.PHP.Боднарчук Михаил.BDD на практике с Codeception
 
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
WebCamp 2016: PHP.Сергей Яковлев.Phalcon 3
 
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
WebCamp 2016: Python.Павел Коломиец.Использование микросервисов при написании...
 
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
WebCamp 2016: BizDev. Кейт Голдберг: Agile business development: как применят...
 
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
WebCamp 2016: PM. Дмитрий Пискарев: Способы мотивации и продления LTV сотрудн...
 
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
WebCamp 2016: PM. Роман Кравченко: Разработка требований и управление рисками...
 
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
WebCamp 2016: DevOps. Николай Дойков: Опыт создания клауда для потокового вид...
 
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в версткеWebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
WebCamp2016:Front-End_Юрий Артюх_Современные подходы в верстке
 
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
WebCamp 2016: PM. Яна Пролис: "Вредные" советы по конфликтам в команде и комп...
 
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясьWebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
WebCamp 2016: PHP.Денис Потапов.Рефакторим код не задумываясь
 
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
WebCamp 2016: BizDev. Андрей Моспан: Правда ли, что продукт стоит ровно столь...
 
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
WebCamp2016:Front-End_Роман Якобчук_Relay, GraphQL и остальные радости соврем...
 
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
WebCamp 2016: Front-end. Виталий Бобров: JavaScript для мобильной разработки.
 
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
WebCamp 2016: DevOps. Ярослав Погребняк: Gobetween - новый лоад балансер для ...
 
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностьюWebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
WebCamp2016:Front-End_Андрей Копёнкин_Оптимизируем мобильный веб полностью
 
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
WebCamp 2016: DevOps. Егор Лопатин и Юрий Железко: How we build and deploy ou...
 
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect ToolboxWebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
WebCamp 2016: PHP.Алексей Петров.PHP at Scale: System Architect Toolbox
 

Similar to WebCamp2016:Front-End.Максим Климишин.Теоретические и практические концепции React.js

Lift, play, akka, rails part1
Lift, play, akka, rails part1Lift, play, akka, rails part1
Lift, play, akka, rails part1Eduard Antsupov
 
Mike ponomarenko java17-fork-v1.2
Mike ponomarenko java17-fork-v1.2Mike ponomarenko java17-fork-v1.2
Mike ponomarenko java17-fork-v1.2Alex Tumanoff
 
анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPITimur Shemsedinov
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботники
 
Как выглядит современный фронтенд
Как выглядит современный фронтендКак выглядит современный фронтенд
Как выглядит современный фронтендTimophy Chaptykov
 
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
 
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)Ontico
 
Ecma script 6 in action
Ecma script 6 in actionEcma script 6 in action
Ecma script 6 in actionYuri Trukhin
 
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий solit
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureIOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureVadim Novitskiy
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsMax Klymyshyn
 
Сергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CСергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CYandex
 
Коротко о React.js
Коротко о React.jsКоротко о React.js
Коротко о React.jsMad Devs
 

Similar to WebCamp2016:Front-End.Максим Климишин.Теоретические и практические концепции React.js (20)

Lift, play, akka, rails part1
Lift, play, akka, rails part1Lift, play, akka, rails part1
Lift, play, akka, rails part1
 
Mike ponomarenko java17-fork-v1.2
Mike ponomarenko java17-fork-v1.2Mike ponomarenko java17-fork-v1.2
Mike ponomarenko java17-fork-v1.2
 
анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестирования
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
 
Как выглядит современный фронтенд
Как выглядит современный фронтендКак выглядит современный фронтенд
Как выглядит современный фронтенд
 
course js day 2
course js day 2course js day 2
course js day 2
 
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
 
Асинхронный JavaScript
Асинхронный JavaScriptАсинхронный JavaScript
Асинхронный JavaScript
 
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
 
Ecma script 6 in action
Ecma script 6 in actionEcma script 6 in action
Ecma script 6 in action
 
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows AzureIOP202 DevCon 2012 Apache Lucene in Windows Azure
IOP202 DevCon 2012 Apache Lucene in Windows Azure
 
php frameworks
php frameworksphp frameworks
php frameworks
 
Scorex framework
Scorex frameworkScorex framework
Scorex framework
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.js
 
Сергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CСергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3C
 
Коротко о React.js
Коротко о React.jsКоротко о React.js
Коротко о React.js
 
Jsfwdays 2013-2
Jsfwdays 2013-2Jsfwdays 2013-2
Jsfwdays 2013-2
 

More from WebCamp

WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...WebCamp
 
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.WebCamp
 
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...WebCamp
 
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSSWebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSSWebCamp
 
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?WebCamp
 
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисыWebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисыWebCamp
 
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...WebCamp
 
WebCamp 2016: PM. Евгений Лабунский: Командная безответственность
WebCamp 2016: PM. Евгений Лабунский: Командная безответственностьWebCamp 2016: PM. Евгений Лабунский: Командная безответственность
WebCamp 2016: PM. Евгений Лабунский: Командная безответственностьWebCamp
 
WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...
WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...
WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...WebCamp
 

More from WebCamp (9)

WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
WebCamp2016:BizDev_Алексей Иваница_Как построить и монетизировать мобильный п...
 
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
WebCamp 2016: BizDev. Марина Никитчук : Искусство продажи мечты, а не сервиса.
 
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
WebCamp 2016: BizDev. Александр Борняков: Маркетинг в США: как привлечь к себ...
 
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSSWebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
WebCamp 2016: Front-end. Андрей Ситник: Stylelint — как и зачем линтить CSS
 
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
WebCamp 2016: PHP. Александр Шкарбалюк: SSO: Кому оно нужно и как его готовить?
 
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисыWebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
WebCamp 2016: PHP. Николай Паламарчук: PHP и микросервисы
 
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
WebCamp 2016: PM. Александр Демура: Откуда берутся тупые заказчики, и что с н...
 
WebCamp 2016: PM. Евгений Лабунский: Командная безответственность
WebCamp 2016: PM. Евгений Лабунский: Командная безответственностьWebCamp 2016: PM. Евгений Лабунский: Командная безответственность
WebCamp 2016: PM. Евгений Лабунский: Командная безответственность
 
WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...
WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...
WebCamp 2016: Python. Михаил Бегерский: Использование asyncio-стека для разра...
 

WebCamp2016:Front-End.Максим Климишин.Теоретические и практические концепции React.js