SlideShare una empresa de Scribd logo
1 de 91
Descargar para leer sin conexión
Фронтенд
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

Más contenido relacionado

La actualidad más candente

Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные ViewsИнтуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Интуит. Разработка приложений для iOS. Лекция 5. Сложные Views
Глеб Тарасов
 
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации..."Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
"Адаптивный дизайн интерфейса JS API Яндекс.Карт и особенности его реализации...
Yandex
 
Knockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-ОнлайнKnockout.JS на примере 2ГИС-Онлайн
Knockout.JS на примере 2ГИС-Онлайн
DevDay
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
Alexey Ivanov
 
Frontend весна 2014 лекция 2
Frontend весна 2014 лекция 2Frontend весна 2014 лекция 2
Frontend весна 2014 лекция 2
Technopark
 
Профилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кодаПрофилирования и оптимизация jQuery-кода
Профилирования и оптимизация jQuery-кода
private_face
 
Making Scalable JavaScript Application
Making Scalable JavaScript ApplicationMaking Scalable JavaScript Application
Making Scalable JavaScript Application
Mikhail Davydov
 
basis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворкbasis.js - почему я не бросил разрабатывать свой фреймворк
basis.js - почему я не бросил разрабатывать свой фреймворк
Roman Dvornov
 
Олег Мохов: Веб-компоненты
Олег Мохов: Веб-компонентыОлег Мохов: Веб-компоненты
Олег Мохов: Веб-компоненты
Yandex
 
Михаил Давыдов — JavaScript: События
Михаил Давыдов — JavaScript: СобытияМихаил Давыдов — JavaScript: События
Михаил Давыдов — JavaScript: События
Yandex
 

La actualidad más candente (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
 

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

«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
«Организация Frontend-разработки на крупном проекте» — Дмитрий Кузнецов
2ГИС Технологии
 
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.Flashback
hexminer
 
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
 
Js templating stepan_reznikov
Js templating stepan_reznikovJs templating stepan_reznikov
Js templating stepan_reznikov
yaevents
 

Similar a 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 — будущее уже здесь
 

Más de Technopark

СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
 

Más 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