SlideShare une entreprise Scribd logo
1  sur  91
Télécharger pour lire hors ligne
Фронтенд
I. Инструменты
Фронтенд
01. АНТОН ЕПРЕВ

// a.eprev



02. ЕГОР ДЫДЫКИН // e.dydykin

- @corp.mail.ru

03. ИВАН ЧАШКИН

/

// i.chashkin

3
Модули
01. АРХИТЕКТУРА // 2 СЗ + КР
02. DOM & AJAX // 3 СЗ + КР
03. ОТДЛАДКА И МОБИЛЬНЫЙ ВЕБ // 3 СЗ + КР

4
“

Определение
Веб-приложение — клиент-серверное приложение, в котором
клиентом выступает браузер, а сервером — веб-сервер. Логика вебприложения распределена между сервером и клиентом, хранение
данных осуществляется, преимущественно, на сервере, обмен
информацией происходит по сети.
Википедия

5
HTTP, JavaScript,
Backbone, DOM,
Events, AJAX,
WebSockets,
Sass, Grunt…
Демо
Контрольные рубежи
01. РК №1 <= 20
02. РК №2 <= 60
03. РК №3 <= 100

8
Итоговая оценка
01. 0 <= "НЕУДОВЛЕТВОРИТЕЛЬНО" <= 59
02. 60 <= "УДОВЛЕТВОРИТЕЛЬНО" <= 74
03. 75 <= "ХОРОШО" <= 89
04. 90 <= "ОТЛИЧНО" <= 100

9
Критерии оценки
01. СООТВЕТСТВИЕ РЕЗУЛЬТАТА ПРЕДЪЯВЛЯЕМЫМ ТРЕБОВАНИЯМ
02. ОПТИМАЛЬНОСТЬ ПРЕДЛАГАЕМОГО РЕШЕНИЯ
03. ПРАКТИЧНОСТЬ РЕШЕНИЯ
04. КАЧЕСТВО ОФОРМЛЕНИЯ РЕЗУЛЬТАТОВ РАБОТЫ
05. ДОКАЗАТЕЛЬНОСТЬ АРГУМЕНТАЦИИ ПРИ ЗАЩИТЕ РАБОТЫ

10
tp.eprev.org/p/1
Single Page
Application
Fest
Ресурсы
1.  http://nodejs.org
2.  https://npmjs.org
3.  http://gruntjs.com
4.  https://github.com/mailru/fest

17
Проектная
работа
Подготовка
01. $ node -v
02. v0.10.12

19
Приступаем!
01. $ mkdir epicgame & cd epicgame
02. $ npm init
03. $ cat package.json
04. $ npm install grunt-cli -g
05. $ npm install grunt grunt-contrib-connect --save-dev
06. $ vim Gruntfile.js

20
Gruntfile.js
01. module.exports = function (grunt) {
02.

grunt.initConfig({

03.

connect: { … } /* grunt-contrib-connect */

04.

});

05.

grunt.loadNpmTasks('grunt-contrib-connect');

06. };

21
grunt-contrib-connect
01. server: { /* Подзадача */
02.

options: {

03.

keepalive: true, /* работать постоянно */

04.

port: 8000, /* номер порта */

05.

base: 'public' /* публичная директория */

06.

}

07. }
22
Gruntfile.js
01. $ grunt connect:server
02. Running "connect:server" (connect) task
03. Waiting forever...
04. Started connect web server on http://localhost:8000

23
public
01. $ cat public/index.html
02. Hello!

24
HTML
01. <!DOCTYPE html>
02. <html><head>
03.

<meta charset="utf-8">

04.

<link rel="stylesheet" href="/css/main.css"/>

05. </head><body>
06.

<div id="page"></div>

07. </body></html>
26
Fest
$ npm install grunt-fest --save-dev

27
Fest
01. <fest:template xmlns:fest="http://fest.mail.ru"
02.

context_name="json">

03.

<div>

04.
05.

<h1>Epic Game</h1>
</div>

06. </fest:template>

28
Fest
01. $ vim templates/main.xml
02. $ vim templates/scoreboard.xml
03. $ vim templates/game.xml

29
Gruntfile.js
01. grunt.initConfig({
02.

connect: { … } /* grunt-contrib-connect */

03.

fest: { … } /* grunt-fest */

04. });
05. grunt.loadNpmTasks('grunt-contrib-connect');
06. grunt.loadNpmTasks('grunt-fest');

30
grunt-fest
01. templates: { /* Подзадача */
02.

files: [{

03.

expand: true,

04.

cwd: 'templates', /* исходная директория */

05.

src: '*.xml', /* имена шаблонов */

06.

dest: 'public/js/tmpl' /* результирующая директория */

07.

}], … }
31
grunt-fest ’s options
01. template: function (data) { /* формат функции-шаблона */
02.

return grunt.template.process(

03.

/* присваиваем функцию-шаблон переменной */

04.

'var <%= name %>Tmpl = <%= contents %> ;',

05.

{data: data}

06.

);

07. }
32
Grunt
01. $ grunt fest
02. $ cat public/js/tmpl/main.js
03. $ cat public/js/tmpl/scoreboard.js
04. $ cat public/js/tmpl/game.js

33
Sweetness!
$ npm install grunt-contrib-watch --save-dev

34
Gruntfile.js
01. grunt.initConfig({
02.
03.

watch: { … } /* grunt-contrib-watch */
…

04. });
05. grunt.loadNpmTasks('grunt-contrib-watch');
06. …

35
grunt-contrib-watch
01. fest: { /* Подзадача */
02.

files: ['templates/*.xml'], /* следим за шаблонами */

03.

tasks: ['fest'], /* перекомпилировать */

04.

options: {

05.
06.

atBegin: true /* запустить задачу при старте */
}

07. }
36
Gruntfile.js
01. grunt.initConfig({
02.

watch: { … } /* grunt-contrib-watch */

03.

connect: { … } /* grunt-contrib-connect */

04.

…

05. });
06. …
07. grunt.registerTask('default', ['connect', 'watch']);
37
grunt-contrib-connect
01. server: { /* Подзадача */
02.

options: {

03.

keepalive: true, /* работать постоянно */

04.

port: 8000, /* номер порта */

05.

base: 'public' /* публичная директория */

06.

}

07. }
38
JavaScript
01. <script src="/js/lib/jquery.js"></script>
02. <script src="/js/tmpl/main.js"></script>
03. …
04. <script>
05.

var $page = $('#page');

06.

$page.html(mainTmpl()); // Рендерим шаблон

07. </script>
40
JavaScript
01. function showMainScreen() { // Конструктор экрана "Главный"
02.

$page.html(mainTmpl()); // Рендерим шаблон

03.

// Инициализируем обработчики событий

04.

$page.find('.js-scoreboard')

05.
06.

.on('click', showScoreboardScreen);
$page.find('.js-start-game').on('click', showGameScreen);

07. }
41
JavaScript
01. function hideMainScreen() { // Деструктор экрана "Главный"
02.

// Удаляем установленные обработчики событий

03.

$page.find('.js-scoreboard')

04.
05.

.off('click', showScoreboardScreen);
$page.find('.js-start-game').off('click', showGameScreen);

06. }

42
JavaScript
01. /* Конструктор экрана "Лучшие игроки" */
02. function showScoreboardScreen() {
03.

hideMainScreen();

04. }
05. /* Деструктор экрана "Лучшие игроки" */
06. function hideScoreboardScreen() {}

43
Домашнее задание
01. СФОРМИРОВАТЬ ИДЕЮ ИГРЫ
02. ОПРЕДЕЛИТЬСЯ С ГРУППОЙ И РОЛЯМИ В НЕЙ
03. САМОСТОЯТЕЛЬНО ИЗУЧИТЬ GRUNT, FEST И JQUERY
04. СОЗДАТЬ ПРОТОТИП ВЕБ-ПРИЛОЖЕНИЯ ПО ТЗ

44
II. Архитектура
Immediately-Invoked Function
Expression, IIFE
01. var foo = 1;
02. (function () {
03.

var foo = 2;

04.

alert(foo);

05. })();
06. alert(foo);
46
Модуль в JavaScript
01. var module = (function () {
02.

var name = 'A'; // приватная переменная

03.

return {

04.

say: function () { // публичный метод

05.

alert(name);

06.
07.
08.

}
};
})();

47
Устройство веб-приложения
01. УРОВЕНЬ БИБЛИОТЕК.
02. УРОВЕНЬ ЯДРА ПРИЛОЖЕНИЯ.
03. УРОВЕНЬ МОДЕЛЕЙ.

50
“

Определение
Модуль — функционально законченный фрагмент программы,
оформленный в виде отдельного файла с исходным кодом…
предназначенный для использования в других программах.
Википедия

51
Модуль веб-приложения
01. Состоит из HTML, CSS и JavaScript.
02. Характеризуется слабой связностью.

52
Кнопка тулбара
01. <div class="toolbar">
02.

<div class="button">Click Me</div>

03. </div>
04. .toolbar .button {
05.

background: white;

06. }

61
Кнопка тулбара
01. <div class="window">
02.

<div class="toolbar">

03.

<div class="button">Click Me</div>

04.

</div>

05.

<div class="button">Submit</div>

06. </div>

62
Кнопка тулбара
01. .toolbar .button {
02.

background: white;

03. }
04. .window .button {
05.

background: black;

06. }

63
Кнопка тулбара (БЭМ)
01. <div class="window">
02.

<div class="toolbar">

03.

<div class="toolbar__button">Click Me</div>

04.

</div>

05.

<div class="window__button">Submit</div>

06. </div>

64
Кнопка тулбара (БЭМ)
01. .toolbar__button {
02.

background: white;

03. }
04. .window__button {
05.

background: black;

06. }

65
БЭМ
01. toolbar // блок
02. toolbar__button // блок__элемент
03. toolbar_fixed // блок_модификатор
04. toolbar__button_size_xl // блок__элемент_модификатор_значение

http://ru.bem.info

66
Устройство веб-приложения
01. УРОВЕНЬ МОДУЛЕЙ. // AMD & RequireJS
02. УРОВЕНЬ ЯДРА ПРИЛОЖЕНИЯ. // Backbone
03. УРОВЕНЬ БИБЛИОТЕК. // jQuery & Underscore

67
Модуль в JavaScript
01. var module = (function () {
02.

var name = 'A'; // приватная переменная

03.

return {

04.

say: function () { // публичный метод

05.

alert(name);

06.
07.
08.

}
};
})();

69
Asynchronous Module Definition
01. define('A', function () {
02.

var name = 'A'; // приватная переменная

03.

return {

04.

say: function () { // публичный метод

05.

alert(name);

06.
07.
08. });

}
};
70
Asynchronous Module Definition
01. define('B', ['A'], function (A) {
02.

var name = 'B'; // приватная переменная

03.

return {

04.

say: function () { // публичный метод

05.

A.say(); // вызов публичного метода модуля A

06.

alert(name);

07.
08.

}
…

71
Backbone
01. МОДЕЛИ

// models

02. КОЛЛЕКЦИИ // collections
03. ПРЕДСТАВЛЕНИЯ

// view

73
Backbone.Events
01. var object = {};
02. _.extend(object, Backbone.Events);
03. object.on("alert", function (msg) {
04.

alert("Triggered " + msg);

05. });
06. object.trigger("alert", "an event");

74
Backbone.Model
01. var PlayerModel = Backbone.Model.extend({});
02. var player = new PlayerModel();
03. player.on('change:name', function(model, name) {
04.

alert('Player name is ' + name);

05. });
06. player.set({name: 'Mark'});

75
Backbone.View
01. var PlayerView = Backbone.View.extend({
02.

tagName: "li",

03.

className: "score__item",

04.

template: fest['player'],

05.

…

76
Backbone.View
01.

…

02.

events: {

03.

"click .button_delete": "destroy"

04.

},

05.

destroy: function () {},

06.

…

77
Backbone.View
01.

…

02.

initialize: function () {

03.

this.listenTo(this.model, "change", this.render);

04.

},

05.

render: function () {

06.
07.
08. });

this.$el.html(this.template(this.model.attributes));
}
78
Backbone.View
01. var playerView = new PlayerView({
02.

model: player,

03.

id: "player-" + player.id

04.

});

79
Uniform resource locator
scheme://domain:port/path?query_string#fragment_id

81
Событие hashchange
Backbone.history.start();

82
Backbone.Router
01. var Router = Backbone.Router.extend({
02.

routes: {

03.

'scoreboard': 'scoreboardAction',

04.

'game'

: 'gameAction',

05.

'*default'

: 'defaultActions'

06.

},

07.

scoreboardAction: function () {},

08.

…

83
Backbone.Router
01.

…

02.

gameAction: function () {},

03.

defaultActions: function () {}

04. });
05. new Router();

84
grunt-fest ’s options
01. template: function (data) {
02.

return grunt.template.process(

03.

/* 'var <%= name %>Tmpl = <%= contents %> ;' */

04.

'define(function () { return <%= contents %> ; });',

05.

{data: data}

06.

);

07. }
85
Подлючение JavaScript файлов
01. <script src="/js/lib/jquery.js"></script>
02. <script src="/js/tmpl/main.js"></script>
03. <script src="/js/tmpl/scoreboard.js"></script>
04. <script src="/js/tmpl/game.js"></script>

87
Подлючение JavaScript файлов
(RequireJS)
01. <script data-main="js/main"
02.

src="js/lib/require.js"></script>

88
js/main.js
01. …
02. define([
03.

'router'

04. ], function () {
05.

Backbone.history.start();

06. });

89
Подготовка
01. $ git remote add tp 
02. → https://github.com/eprev/frontend-stub.git
03. $ git fetch tp
04. $ git merge tp/v2

90
Домашнее задание
01. САМОСТОЯТЕЛЬНО ИЗУЧИТЬ UNDERSCORE, BACKBONE И REQUIREJS
02. ДОРАБОТАТЬ ПРОТОТИП ПО ТЗ

91

Contenu connexe

Tendances

"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsГлеб Тарасов
 
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковФреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковDevDay
 
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации..."Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...Yandex
 
AngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для пониманияAngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для пониманияIgor Sazonov
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.Igor Shkulipa
 
Knockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-ОнлайнKnockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-ОнлайнDevDay
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackAlexey Ivanov
 
Средства разработки web приложений (Web frameworks)
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)Fedor Malyshkin
 
Frontend весна 2014 лекция 2
Frontend весна 2014 лекция 2Frontend весна 2014 лекция 2
Frontend весна 2014 лекция 2Technopark
 
C# Web. Занятие 13.
C# Web. Занятие 13.C# Web. Занятие 13.
C# Web. Занятие 13.Igor Shkulipa
 
Профилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кодаПрофилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кодаprivate_face
 
Making Scalable JavaScript Application
Making Scalable JavaScript ApplicationMaking Scalable JavaScript Application
Making Scalable JavaScript ApplicationMikhail Davydov
 
basis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкbasis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкRoman Dvornov
 
Олег Мохов: Веб-компоненты
Олег Мохов: Веб-компонентыОлег Мохов: Веб-компоненты
Олег Мохов: Веб-компонентыYandex
 
Михаил Давыдов — JavaScript: События
Михаил Давыдов — JavaScript: СобытияМихаил Давыдов — JavaScript: События
Михаил Давыдов — JavaScript: СобытияYandex
 
iOS-03-Управление памятью
iOS-03-Управление памятьюiOS-03-Управление памятью
iOS-03-Управление памятьюNoveo
 
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Roman Dvornov
 
Роман Ермолов - Отладка приложений под iOS
Роман Ермолов - Отладка приложений под iOSРоман Ермолов - Отладка приложений под iOS
Роман Ермолов - Отладка приложений под iOSAlexander Zimin
 

Tendances (20)

"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс"Рекомендации по проектированию API" — Марина Степанова, Яндекс
"Рекомендации по проектированию API" — Марина Степанова, Яндекс
 
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
 
Фреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр БирюковФреймворк Slot, Good Parts, Александр Бирюков
Фреймворк Slot, Good Parts, Александр Бирюков
 
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации..."Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
 
AngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для пониманияAngularJS. Введение и простые примеры для понимания
AngularJS. Введение и простые примеры для понимания
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
 
Knockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-ОнлайнKnockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-Онлайн
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
 
Средства разработки web приложений (Web frameworks)
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)
 
Frontend весна 2014 лекция 2
Frontend весна 2014 лекция 2Frontend весна 2014 лекция 2
Frontend весна 2014 лекция 2
 
C# Web. Занятие 13.
C# Web. Занятие 13.C# Web. Занятие 13.
C# Web. Занятие 13.
 
Профилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кодаПрофилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кода
 
Making Scalable JavaScript Application
Making Scalable JavaScript ApplicationMaking Scalable JavaScript Application
Making Scalable JavaScript Application
 
basis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкbasis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворк
 
Tapestry it is simple
Tapestry it is simpleTapestry it is simple
Tapestry it is simple
 
Олег Мохов: Веб-компоненты
Олег Мохов: Веб-компонентыОлег Мохов: Веб-компоненты
Олег Мохов: Веб-компоненты
 
Михаил Давыдов — JavaScript: События
Михаил Давыдов — JavaScript: СобытияМихаил Давыдов — JavaScript: События
Михаил Давыдов — JavaScript: События
 
iOS-03-Управление памятью
iOS-03-Управление памятьюiOS-03-Управление памятью
iOS-03-Управление памятью
 
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
 
Роман Ермолов - Отладка приложений под iOS
Роман Ермолов - Отладка приложений под iOSРоман Ермолов - Отладка приложений под iOS
Роман Ермолов - Отладка приложений под iOS
 

Similaire à Frontend весна 2014 лекция 1

#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...JSib
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
 
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesОсновные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesArtur Baranok
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов2ГИС Технологии
 
Web deployment
Web deploymentWeb deployment
Web deploymentGetDev.NET
 
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Dmitry Evteev
 
Эволюция BackDoor.Flashback
Эволюция BackDoor.FlashbackЭволюция BackDoor.Flashback
Эволюция BackDoor.Flashbackhexminer
 
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртываниеВладимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртываниеYandex
 
Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)Noveo
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Artur Baranok
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейPaul Stashevsky
 
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)7bits
 
Изоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, HuntflowИзоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, Huntflowit-people
 
Js templating stepan_reznikov
Js templating stepan_reznikovJs templating stepan_reznikov
Js templating stepan_reznikovyaevents
 
Степан Резников "Шаблонизация на клиенте"
Степан Резников "Шаблонизация на клиенте"Степан Резников "Шаблонизация на клиенте"
Степан Резников "Шаблонизация на клиенте"Yandex
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NETVitaly Baum
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьCodeFest
 

Similaire à Frontend весна 2014 лекция 1 (20)

#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 
Основные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesОсновные аспекты управления веб-проектом в Microsoft Azure Websites
Основные аспекты управления веб-проектом в Microsoft Azure Websites
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 
Zend Framework и Doctrine
Zend Framework и DoctrineZend Framework и Doctrine
Zend Framework и Doctrine
 
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
 
Эволюция BackDoor.Flashback
Эволюция BackDoor.FlashbackЭволюция BackDoor.Flashback
Эволюция BackDoor.Flashback
 
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртываниеВладимир Кузнецов — Прототип сайта: разработка и развёртывание
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
 
Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)Системы автоматизированной сборки (Lecture 05 – gradle)
Системы автоматизированной сборки (Lecture 05 – gradle)
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Selenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностейSelenium 2.0: обзор новых возможностей
Selenium 2.0: обзор новых возможностей
 
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
 
Изоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, HuntflowИзоморфные приложения и Python - Виталий Глибин, Huntflow
Изоморфные приложения и Python - Виталий Глибин, Huntflow
 
Js templating stepan_reznikov
Js templating stepan_reznikovJs templating stepan_reznikov
Js templating stepan_reznikov
 
Степан Резников "Шаблонизация на клиенте"
Степан Резников "Шаблонизация на клиенте"Степан Резников "Шаблонизация на клиенте"
Степан Резников "Шаблонизация на клиенте"
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
Изоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесьИзоморфный JavaScript — будущее уже здесь
Изоморфный JavaScript — будущее уже здесь
 

Plus de Technopark

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelTechnopark
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuTechnopark
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARNTechnopark
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache MahoutTechnopark
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeperTechnopark
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveTechnopark
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Technopark
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Technopark
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSTechnopark
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы HadoopTechnopark
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceTechnopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...Technopark
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"Technopark
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...Technopark
 

Plus de Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 

Frontend весна 2014 лекция 1