SlideShare a Scribd company logo
1 of 25
Full Stack 
разработка 
на 
JavaScript
Архитектура веб–приложений 
ТРАДИЦИОННЫЕ 
AJAX 
SPA 
1995 2000 2005 2010
Архитектура веб–приложений 
The Old School 
КЛИЕНТ ВЕБ–СЕРВЕР 
просто 
HTML... 
HTML ГЕНЕРАЦИЯ HTML 
ОБРАБОТКА ДАННЫХ 
БАЗА ДАННЫХ
Архитектура веб–приложений 
A J A X 
КЛИЕНТ ВЕБ–СЕРВЕР 
HTML 
+ 
JavaScript 
HTML ГЕНЕРАЦИЯ HTML 
ОБРАБОТКА 
ДАННЫХ 
БАЗА ДАННЫХ 
ГЕНЕРАЦИЯ 
HTML 
ГЕНЕРАЦИЯ 
HTML 
HTML 
HTML
Архитектура веб–приложений 
SINGLE PAGE APPLICATION 
КЛИЕНТ ВЕБ–СЕРВЕР 
JavaScript 
JavaScript 
JavaScript 
JavaScript 
JavaScript 
JavaScript 
ОБРАБОТКА 
ДАННЫХ 
БАЗА ДАННЫХ 
ПРОСТО 
JSON 
JSON 
ПРОСТО JSON 
ПРОСТО JSON 
JSON 
JSON
Архитектура веб–приложений 
SPA = MVC + JSON + REST 
CONTROLLER 
VIEW 
MODEL 
{ 
event: 'встреча', 
date: '2014-10- 
30', 
who: 'UfaDevCom' 
} 
HTTP GET 
HTTP POST 
HTTP PUT 
HTTP DELETE
Коротко о JavaScript 
Для тех, кто только что с бронепоезда 
Простой синтаксис, похож на C, Java 
Автоматическое приведение типов 
Автоматическая сборка мусора 
ООП без классов – прототипное наследование
Коротко о JavaScript 
Асинхронность: удивительные вещи 
for(var i=0; i<3; i++){ 
setTimeout(function(){ 
console.log(i); 
}, 0); 
}
Ресурсы для изучения 
С чего начать? 
Илья Кантор, Современный учебник JavaScript 
http://learn.javascript.ru 
Самоучитель HTML. Самоучитель CSS 
http://htmlbook.ru
Ресурсы для изучения 
Полезные книги
Пишем клиент 
Зачем нужен фреймворк? 
1.Грамотная структура приложения 
2.Уже готовые типовые решения 
3.Легко понять чужой код
Пишем клиент 
CSS–фреймворки 
B Bootstrap 
бывший Twitter Bootsrap 
Быстро накидать прототип интерфейса 
Готовая адаптивность для всех экранов 
Огромный выбор готовых дизайнов
Пишем клиент 
Шаблонизаторы: из JSON в HTML 
шаблон: 
<div> 
<h1>{{title}}</h1> 
<div> 
{{body}} 
</div> 
</div> 
Главное: 
мухи отдельно, котлеты отдельно 
т.е. JavaScript и HTML 
наш JSON: 
{ 
title: 'Lorem Ipsum', 
body: 'Dolores sit amet' 
} 
результат: 
<div> 
<h1>Lorem 
Ipsum</h1> 
<div> 
Dolores sit amet 
</div> 
</div>
Пишем клиент 
JQuery: работа с DOM 
Отличная книга, 
бесплатно: 
$("body" ).html( "Hello, World!" ); 
Вообще–то необязательно, но с ним проще 
Огромный парк готовых велосипедов
Пишем клиент 
Most popular JavaScript frameworks
Пишем клиент 
Backbone.js – простенько и со вкусом 
Необходимый минимум: 
– Router 
– View 
– Model 
– Collection 
Относительно легко изучить 
Много книг, статей, примеров 
Отличная книга, 
рекомендую:
Пишем клиент 
Когда Backone мало... Плагины и библиотеки 
Проблема: Backbone слишком примитивен... 
Доступно несколько сотен плагинов, дополняющих функционал Backbone: 
– биндинг 
– валидация 
– Local Storage 
и другие...
Пишем клиент 
Следующая остановка: AngularJS 
AngularJS комплексный фреймворк: 
– поддержка модулей и зависимостей 
– встроенный шаблонизатор 
– биндинг и валидация 
– иерархические представления 
– средства unit–тестирования
Пишем сервер 
node.js: асинхронность – главное оружие 
Компиляция JavaScript в машинный код 
Работа с файлами и базами данных 
Неблокирующий ввод/вывод 
var http = require('http'); // простейший веб–сервер 
http.createServer(function (req, res) { 
res.writeHead(200, {'Content-Type': 'text/plain'}); 
res.end('Hello Worldn'); 
}).listen(1337, '127.0.0.1');
Пишем сервер 
фреймворки, библиотеки, шаблонизаторы 
MVC фреймворки: Express, Sails.js 
REST фреймворки: Restify 
Шаблонизаторы: Jade, Hadlebars 
Работа с БД: mysql, mongoose 
и многие, многие другие...
Пишем мобильное приложение 
От сайта для мобильных к мобильному приложению 
мобильный браузер 
модуль WebView 
страница 
HTML+CSS 
+JavaScript 
мобильное 
приложение 
модуль WebView 
страница 
HTML+CSS 
+JavaScript
Пишем мобильное приложение 
PhoneGap 
Accelerometer 
Camera 
Compass 
GeoLocation 
Notification 
Contacts 
Files 
Network 
Storage 
Media
Инструменты разработки 
Хорошему танцору не помешает... 
Sublime text
Что дальше? 
О, сколько нам открытий чудных... 
Синтаксический сахар: От JavaScript к CoffeeScript 
Изоморфные фреймворки: Meteor.js, React.js 
Лучший CSS: LESS, SASS 
Инструменты сборки: grunt, gulp, bower
Олег Шерыхалин 
o.sherykhalin@gmail.com 
+7 9174277702 
Skype: o.sherykhalin

More Related Content

What's hot

Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Vladimir Malyk
 
HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...
HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...
HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...Ontico
 
Server-side JavaScript
Server-side JavaScriptServer-side JavaScript
Server-side JavaScriptMedia Gorod
 
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest
 
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...Ontico
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...GeeksLab Odessa
 
JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ SQALab
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответDenis Izmaylov
 
живые сайты
живые сайтыживые сайты
живые сайтыzexzex
 
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10OdessaFrontend
 
Оптимизация времени загрузки сайта: проблемы и решения
Оптимизация времени загрузки сайта: проблемы и решенияОптимизация времени загрузки сайта: проблемы и решения
Оптимизация времени загрузки сайта: проблемы и решенияMedia Gorod
 
Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Yandex
 
"Vue.js или как наконец отказаться от React"
"Vue.js или как наконец отказаться от React""Vue.js или как наконец отказаться от React"
"Vue.js или как наконец отказаться от React"Fwdays
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Ontico
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...GoQA
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...JSib
 

What's hot (20)

Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?Современный фронтенд -- как не утонуть в море хайпа?
Современный фронтенд -- как не утонуть в море хайпа?
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
 
Крыша 2.0
Крыша 2.0Крыша 2.0
Крыша 2.0
 
React.js – intro
React.js – introReact.js – intro
React.js – intro
 
HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...
HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...
HTML GL - возьмите столько FPS, сколько вам нужно, и немного эффектов в прида...
 
Server-side JavaScript
Server-side JavaScriptServer-side JavaScript
Server-side JavaScript
 
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
CodeFest 2013. Баяндин А. — JavaScript + Webdriver = ♥
 
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
HTML5 Web Components: следующий шаг к модульности вашего проекта / Андрей Рах...
 
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
JSLab. Дмитрий Смолин, Дмитрий Филипенко. "React и Webpack с помощью кирки, л...
 
JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥ JavaScript + Webdriver = ♥
JavaScript + Webdriver = ♥
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответ
 
живые сайты
живые сайтыживые сайты
живые сайты
 
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
Оптимизация скорости сайта без использования AMP | Odessa Frontend Meetup #10
 
Оптимизация времени загрузки сайта: проблемы и решения
Оптимизация времени загрузки сайта: проблемы и решенияОптимизация времени загрузки сайта: проблемы и решения
Оптимизация времени загрузки сайта: проблемы и решения
 
Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application Антон Киршанов — Особенности архитектуры Single Page Application
Антон Киршанов — Особенности архитектуры Single Page Application
 
Drupal and NodeJS.
Drupal and NodeJS.Drupal and NodeJS.
Drupal and NodeJS.
 
"Vue.js или как наконец отказаться от React"
"Vue.js или как наконец отказаться от React""Vue.js или как наконец отказаться от React"
"Vue.js или как наконец отказаться от React"
 
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Антипаттерни та велосипеди в JavaScript автоматизації» ...
 
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
 

Viewers also liked

2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.jsОмские ИТ-субботники
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...yaevents
 
Денис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылуДенис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылуYandex
 
Михаил Давыдов: JavaScript. Базовые знания
Михаил Давыдов: JavaScript. Базовые знанияМихаил Давыдов: JavaScript. Базовые знания
Михаил Давыдов: JavaScript. Базовые знанияYandex
 
Making Scalable JavaScript Application
Making Scalable JavaScript ApplicationMaking Scalable JavaScript Application
Making Scalable JavaScript ApplicationMikhail Davydov
 
JavaScript и доступность web-приложений
JavaScript и доступность web-приложенийJavaScript и доступность web-приложений
JavaScript и доступность web-приложенийVladimir Agafonkin
 
Кратчайшая история JavaScript
Кратчайшая история JavaScriptКратчайшая история JavaScript
Кратчайшая история JavaScriptPavel Klimiankou
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)Ontico
 
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Vladimir Malyk
 

Viewers also liked (13)

2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
 
Sails js intro
Sails js introSails js intro
Sails js intro
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
 
Денис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылуДенис Чистяков — JavaScript на фронте и в тылу
Денис Чистяков — JavaScript на фронте и в тылу
 
Михаил Давыдов: JavaScript. Базовые знания
Михаил Давыдов: JavaScript. Базовые знанияМихаил Давыдов: JavaScript. Базовые знания
Михаил Давыдов: JavaScript. Базовые знания
 
Making Scalable JavaScript Application
Making Scalable JavaScript ApplicationMaking Scalable JavaScript Application
Making Scalable JavaScript Application
 
JavaScript и доступность web-приложений
JavaScript и доступность web-приложенийJavaScript и доступность web-приложений
JavaScript и доступность web-приложений
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Кратчайшая история JavaScript
Кратчайшая история JavaScriptКратчайшая история JavaScript
Кратчайшая история JavaScript
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Javascript
JavascriptJavascript
Javascript
 
Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.Современный фронтенд за 30 минут.
Современный фронтенд за 30 минут.
 

Similar to Full Stack разработка на JavaScript

JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.Igor Shkulipa
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
 
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.DataArt
 
Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5Microsoft
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Ilya Kaznacheev
 
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
 
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukInterSystems
 
Изоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеИзоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеDenis Izmaylov
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без болиAnton Piskunov
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NETVitaly Baum
 
ReactJS: Свет в конце тоннеля
ReactJS: Свет в конце тоннеляReactJS: Свет в конце тоннеля
ReactJS: Свет в конце тоннеляRinat Abdullin
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Ontico
 
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиБэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиITCrowd Almaty
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Pavel Chertorogov
 
Ликбез для HR'ов в IT
Ликбез для HR'ов в ITЛикбез для HR'ов в IT
Ликбез для HR'ов в ITAlexander Krass
 

Similar to Full Stack разработка на JavaScript (20)

JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
 
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
Александр Кашеверов — Коротко про WEB: HTML, CSS, JS.
 
Что нового в ASP.NET 5
Что нового в ASP.NET 5Что нового в ASP.NET 5
Что нового в ASP.NET 5
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
 
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
 
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлениюCodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
CodeFest 2013. Родионов А. — От Selenium к Watir — путь к просветлению
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
Telerik Web aii
Telerik Web aiiTelerik Web aii
Telerik Web aii
 
Изоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеИзоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабирование
 
Фронтенд разработка без боли
Фронтенд разработка без болиФронтенд разработка без боли
Фронтенд разработка без боли
 
RichFaces: обзор
RichFaces: обзорRichFaces: обзор
RichFaces: обзор
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
ReactJS: Свет в конце тоннеля
ReactJS: Свет в конце тоннеляReactJS: Свет в конце тоннеля
ReactJS: Свет в конце тоннеля
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
 
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработкиБэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
Бэкенд, Фронтенд — всё смешалось. Обзорная экскурсия в будущее веб-разработки
 
Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)Бэкенд, фронтенд — всё смешалось (nodkz)
Бэкенд, фронтенд — всё смешалось (nodkz)
 
Ликбез для HR'ов в IT
Ликбез для HR'ов в ITЛикбез для HR'ов в IT
Ликбез для HR'ов в IT
 

Full Stack разработка на JavaScript

  • 3. Архитектура веб–приложений The Old School КЛИЕНТ ВЕБ–СЕРВЕР просто HTML... HTML ГЕНЕРАЦИЯ HTML ОБРАБОТКА ДАННЫХ БАЗА ДАННЫХ
  • 4. Архитектура веб–приложений A J A X КЛИЕНТ ВЕБ–СЕРВЕР HTML + JavaScript HTML ГЕНЕРАЦИЯ HTML ОБРАБОТКА ДАННЫХ БАЗА ДАННЫХ ГЕНЕРАЦИЯ HTML ГЕНЕРАЦИЯ HTML HTML HTML
  • 5. Архитектура веб–приложений SINGLE PAGE APPLICATION КЛИЕНТ ВЕБ–СЕРВЕР JavaScript JavaScript JavaScript JavaScript JavaScript JavaScript ОБРАБОТКА ДАННЫХ БАЗА ДАННЫХ ПРОСТО JSON JSON ПРОСТО JSON ПРОСТО JSON JSON JSON
  • 6. Архитектура веб–приложений SPA = MVC + JSON + REST CONTROLLER VIEW MODEL { event: 'встреча', date: '2014-10- 30', who: 'UfaDevCom' } HTTP GET HTTP POST HTTP PUT HTTP DELETE
  • 7. Коротко о JavaScript Для тех, кто только что с бронепоезда Простой синтаксис, похож на C, Java Автоматическое приведение типов Автоматическая сборка мусора ООП без классов – прототипное наследование
  • 8. Коротко о JavaScript Асинхронность: удивительные вещи for(var i=0; i<3; i++){ setTimeout(function(){ console.log(i); }, 0); }
  • 9. Ресурсы для изучения С чего начать? Илья Кантор, Современный учебник JavaScript http://learn.javascript.ru Самоучитель HTML. Самоучитель CSS http://htmlbook.ru
  • 10. Ресурсы для изучения Полезные книги
  • 11. Пишем клиент Зачем нужен фреймворк? 1.Грамотная структура приложения 2.Уже готовые типовые решения 3.Легко понять чужой код
  • 12. Пишем клиент CSS–фреймворки B Bootstrap бывший Twitter Bootsrap Быстро накидать прототип интерфейса Готовая адаптивность для всех экранов Огромный выбор готовых дизайнов
  • 13. Пишем клиент Шаблонизаторы: из JSON в HTML шаблон: <div> <h1>{{title}}</h1> <div> {{body}} </div> </div> Главное: мухи отдельно, котлеты отдельно т.е. JavaScript и HTML наш JSON: { title: 'Lorem Ipsum', body: 'Dolores sit amet' } результат: <div> <h1>Lorem Ipsum</h1> <div> Dolores sit amet </div> </div>
  • 14. Пишем клиент JQuery: работа с DOM Отличная книга, бесплатно: $("body" ).html( "Hello, World!" ); Вообще–то необязательно, но с ним проще Огромный парк готовых велосипедов
  • 15. Пишем клиент Most popular JavaScript frameworks
  • 16. Пишем клиент Backbone.js – простенько и со вкусом Необходимый минимум: – Router – View – Model – Collection Относительно легко изучить Много книг, статей, примеров Отличная книга, рекомендую:
  • 17. Пишем клиент Когда Backone мало... Плагины и библиотеки Проблема: Backbone слишком примитивен... Доступно несколько сотен плагинов, дополняющих функционал Backbone: – биндинг – валидация – Local Storage и другие...
  • 18. Пишем клиент Следующая остановка: AngularJS AngularJS комплексный фреймворк: – поддержка модулей и зависимостей – встроенный шаблонизатор – биндинг и валидация – иерархические представления – средства unit–тестирования
  • 19. Пишем сервер node.js: асинхронность – главное оружие Компиляция JavaScript в машинный код Работа с файлами и базами данных Неблокирующий ввод/вывод var http = require('http'); // простейший веб–сервер http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn'); }).listen(1337, '127.0.0.1');
  • 20. Пишем сервер фреймворки, библиотеки, шаблонизаторы MVC фреймворки: Express, Sails.js REST фреймворки: Restify Шаблонизаторы: Jade, Hadlebars Работа с БД: mysql, mongoose и многие, многие другие...
  • 21. Пишем мобильное приложение От сайта для мобильных к мобильному приложению мобильный браузер модуль WebView страница HTML+CSS +JavaScript мобильное приложение модуль WebView страница HTML+CSS +JavaScript
  • 22. Пишем мобильное приложение PhoneGap Accelerometer Camera Compass GeoLocation Notification Contacts Files Network Storage Media
  • 23. Инструменты разработки Хорошему танцору не помешает... Sublime text
  • 24. Что дальше? О, сколько нам открытий чудных... Синтаксический сахар: От JavaScript к CoffeeScript Изоморфные фреймворки: Meteor.js, React.js Лучший CSS: LESS, SASS Инструменты сборки: grunt, gulp, bower
  • 25. Олег Шерыхалин o.sherykhalin@gmail.com +7 9174277702 Skype: o.sherykhalin