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

Презентация:



Advertisements
Похожие презентации
Применение BackboneJS для рефакторинга фронтенда веб- приложения Алексей Авдеев Нижний Новгород, Go-Promo, go-promo.ru.
Advertisements

YUI 3 - модульная архитектура и динамическая загрузка приложения от Yahoo! Пётр Мязин.
Разработка больших сайтов Сумин Андрей Разработчик интерфейсов
Константин Прищенко Selenium RC и Python: История одного проекта.
USE GRUNT, LUKE Глеб Поспелов, Дневник.ру IT Life {JavaScript} 2014.
О разработке приложений для разных мобильных платформ Виктор Кузьмин Руководитель разработки компании AlterGeo О разработке приложений для разных мобильных.
Основано на теории, практике, размышлениях, Lessons Learned.
jQuery jQuery библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу.
#html5camp JavaScript на сервере – node.js на Windows Гайдар Руководитель направления веб-технологий, Microsoft.
JavaScript: Функции.. Функция – это группа операторов, предназначенных для определенной цели и объединенных под общим именем. Функция имеет следующий.
D7 – новая платформа разработки сайтов и порталов Тушинский Юрий Технический директор Битрикс.
Язык JavaScript Скриптовый язык для выполнения на html-страницах.
Drupal Camp Minsk Возможность изменения только одной области Нет инструментов, позволяющих загрузить css или js динамически Механизм по перезагрузке.
Зашифруй свой сайт Клиентская оптимизация в информационной безопасности Мациевский Николай, Parallels 1 / 14 webo.in / webo.name.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
Онлайн курс «Web разработка на базе ASP.NET MVC» на study.smarly.netstudy.smarly.net Что такое AJAX Сокращенные методы: $.get, $.post,.load(), $.getScript,
Кратко о jQuery. История jQuery января первый анонс о создании библиотеки 26 августа jQuery января jQuery сентября jQuery 1.2.
Теоретические основы программирования на JavaScript Функции.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – оптимизация скорости работы приложений Из цикла лекций.
Rule 1: Определен ли формат? После того, как оболочка определила имя типа того элемента, который требуется отобразить, первым делом она проверяет, определен.
Транксрипт:

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

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

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

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

Модульность

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

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

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

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

QUnit

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

jsPerf

Selenium

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

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

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

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

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

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

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

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

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

docco

GitHub Markdown

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

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

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

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

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

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

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

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

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

Спасибо! Владимир Кузнецов