JavaScript фреймворки.Куда катится мир.

Содержание

Слайд 2

Framework — основа или каркас приложения

Framework — основа или каркас приложения

Слайд 3

Приложение

Яндекс

Underscore

jQuery

Backbone

common.js

Приложение Яндекс Underscore jQuery Backbone common.js

Слайд 4

Файл с полезными функциями

Файл с полезными функциями

Слайд 5

Модульность

Модульность

Слайд 6

…и еще масса мелких модулей

…и еще масса мелких модулей

Слайд 7

Дробим на модули чтобы:

улучшить архитектуру фреймворка;
упростить командную разработку и тестирование;
из «большого» фреймворка

Дробим на модули чтобы: улучшить архитектуру фреймворка; упростить командную разработку и тестирование;
можно собрать «маленький» только с нужными функциями.

Слайд 8

Тестирование

Тестирование

Слайд 9

Тестирование

Автоматическое дешевле и проще ручного.
Дает возможность покрыть больше различных случаев.
Не заменимо при

Тестирование Автоматическое дешевле и проще ручного. Дает возможность покрыть больше различных случаев. Не заменимо при рефакторинге.
рефакторинге.

Слайд 11

Jasmine

describe(“Test case", function() {
it('should be true', function() {
expect(App.method()).toEqual(true);
});
});

Jasmine describe(“Test case", function() { it('should be true', function() { expect(App.method()).toEqual(true); }); });

Слайд 14

Точки расширения функциональности

Точки расширения функциональности

Слайд 15

События

$(root).on(“tableWasFilled.module1”,
function () { alert(“Filled”); });
$({a: 1}).on(“tableWasFilled.module1”,
function () { alert(“Filled”); });

События $(root).on(“tableWasFilled.module1”, function () { alert(“Filled”); }); $({a: 1}).on(“tableWasFilled.module1”, function () { alert(“Filled”); });

Слайд 16

Функции обратного вызова

Можно передать только одну функцию обратного вызова.
Перед вызовом нужно проверить,

Функции обратного вызова Можно передать только одну функцию обратного вызова. Перед вызовом
что передали именно функцию.
Явное связывание модулей.

Слайд 17

Отложенные объекты

Можно зарегистрировать сколько угодно функций-обработчиков.
Объект может изменить состояние только один раз.
Явное

Отложенные объекты Можно зарегистрировать сколько угодно функций-обработчиков. Объект может изменить состояние только
связывание модулей.
Мало кто понимает как это работает!

Слайд 18

Стиль кода

Программы пишут, чтобы их читать.

Стиль кода Программы пишут, чтобы их читать.

Слайд 19

Стиль кода

Douglas Crockford: “Programming Style & Your Brain”
JSLint в качестве валидатора
Code Guidelines

Стиль кода Douglas Crockford: “Programming Style & Your Brain” JSLint в качестве
для вашей команды

Слайд 20

Рефакторинг

Не боимся трогать то, что работает.

Рефакторинг Не боимся трогать то, что работает.

Слайд 21

Ускорение работы jQuery

Ускорение работы jQuery

Слайд 22

Документация

Документация

Слайд 24

GitHub Markdown

GitHub Markdown

Слайд 25

Чеклист

Модульность
Тесты
Точки расширения
Хороший стиль кода
Документация

Чеклист Модульность Тесты Точки расширения Хороший стиль кода Документация

Слайд 26

Решил сделать «идеальный» фреймворк.

http://bit.ly/app-skeleton

Решил сделать «идеальный» фреймворк. http://bit.ly/app-skeleton

Слайд 27

Создаем пространство имён

App.namespace(“App.Module”, {
method: function () {

}
});

Создаем пространство имён App.namespace(“App.Module”, { method: function () { … } });

Слайд 28

Хранилище данных модуля

App.defaults(“App.Module”, {
text: “Hello, world!”,
enabled: true,
});

Хранилище данных модуля App.defaults(“App.Module”, { text: “Hello, world!”, enabled: true, });

Слайд 29

Доступ к данным

var data = App.defaults(“App.Module”);
var enabled = App.defaults(“App.Module”,
“enabled”);
var text = App.defaults(“App.Module”,
“error.text”,

Доступ к данным var data = App.defaults(“App.Module”); var enabled = App.defaults(“App.Module”, “enabled”);
“Default text”);

Слайд 30

Описание зависимостей

App.register({
name: “module1”,
path: [
“/js/module1.js”, “/css/module1.css”
],
requires: [“jQuery”, “module2”]
});

Описание зависимостей App.register({ name: “module1”, path: [ “/js/module1.js”, “/css/module1.css” ], requires: [“jQuery”, “module2”] });

Слайд 31

Загрузка модуля

App.load({
load: App.calculate(“module1”);
complete: function () {
$(App.Module.init);
}
});

Загрузка модуля App.load({ load: App.calculate(“module1”); complete: function () { $(App.Module.init); } });

Слайд 32

Загрузка обязательных ресурсов

App.bootstrap({
load: “jquery-1.7.1.min.js”,
complete: function () {
// в этом месте уже можно

Загрузка обязательных ресурсов App.bootstrap({ load: “jquery-1.7.1.min.js”, complete: function () { // в
декорировать // страницу с применением jQuery.
}
});

Слайд 33

http://bit.ly/app-skeleton

Модульность
Тесты
Точки расширения
Хороший стиль кода
Документация

http://bit.ly/app-skeleton Модульность Тесты Точки расширения Хороший стиль кода Документация
Имя файла: JavaScript-фреймворки.Куда-катится-мир..pptx
Количество просмотров: 128
Количество скачиваний: 1