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

Содержание

Слайд 1JavaScript фреймворки. Куда катится мир.
Владимир Кузнецов UWDC2012


Слайд 2Framework — основа или каркас приложения


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


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


Слайд 5Модульность


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



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

фреймворка можно собрать «маленький» только с нужными функциями.


Слайд 8Тестирование


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

при рефакторинге.

Слайд 11Jasmine
describe(“Test case", function() {
it('should be true', function() {
expect(App.method()).toEqual(true);
});
});


Слайд 13Selenium


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


Слайд 15События
$(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 для вашей команды

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


Слайд 21Ускорение работы jQuery


Слайд 22Документация


Слайд 24GitHub Markdown


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


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


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

}
});


Слайд 28Хранилище данных модуля
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”, “Default text”);

Слайд 30Описание зависимостей
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);
}
});


Слайд 32Загрузка обязательных ресурсов
App.bootstrap({
load: “jquery-1.7.1.min.js”,
complete: function () {
// в этом месте уже

можно декорировать // страницу с применением jQuery.
}
});

Слайд 33http://bit.ly/app-skeleton
Модульность
Тесты
Точки расширения
Хороший стиль кода
Документация


Слайд 34Спасибо!
Владимир Кузнецов
http://noteskeeper.ru/
@mista_k


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика