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

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



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

Разработка архитектуры больших систем О чем нужно думать перед кодированием? Александр Горный Продюсер Почта.ру
Современные frontend технологии. Оптимизация процесса разработки Валерий Крюков Ведущий разработчик, «Региональные Медиа» Партнерская конференция «1С-Битрикс»
Веб-решение или Толстый клиент? Сравнение, тенденции, архитектура Иван Бодягин MAS Elektronik AG.
jQuery jQuery библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу.
Тренинг ASP.NET MVC 3 Гайдар Магдануров Microsoft.
Нижний Новгород.
Исполнитель: Утяшева И.А. Научный руководитель: к.ф.-м.н. Винокур В.В.
Автоматизация сборки и модификации разнородной компьютерной документации: разработка графического интерфейса приложения и формата файлов проекта. Исполнитель:
Azium Technologies. Логические системы в играх, как средство создания AI.
D7 – новая платформа разработки сайтов и порталов Тушинский Юрий Технический директор Битрикс.
Аспектно-ориентированный подход на службе веб- приложений Цытович Павел Леонидович Fuse8, Южно-Уральский государственный университет
Соколов Игорь Александрович, д.т.н., доцент Научный руководитель: Исполнитель: КЕМЕРОВО 2012 Шакиров Раджаб Алымович, студент группы ПИ-071 РАЗРАБОТКА.
Builder Мавчун Екатерина СПбГУ, 245 группа
« ТЕХНОЛОГИИ ПРИМИРЕНИЯ В ОБРАЗОВАТЕЛЬНОМ ПРОЦЕССЕ » Информация для родителей и педагогов.
Писать плагины проще на примере продуктов Atlassian Владимир Николаев Компания Teamlead.
Лекция 1 MVC (Model-View-Controller) - это конструкционный шаблон, который описывает способ построения структуры приложения, сферы ответственности и взаимодействие.
Проф. В.К.Толстых, Технологии разработки Internet- приложений ASP.NET приложения – Модули HTTP, фильтры, события приложения - Global.asax.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Дизайн и Верстка Системы Организации Видео Архива (СОВА) МИЭМ, Пашинцев Иван, С-55.
Транксрипт:

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

Как бывает

Описание проблемы Проект растёт Количество кода увеличивается Файл application.js разрастается Внесение изменений становится опасным Общая область видимости переменных Конфликты при работе в команде

Первая попытка application.js application.gallery.jsapplication.messages.jsapplication.comments.js

Пример

Преимущества Меньше кода в каждом файле Меньше конфликтов при работе в команде Зачатки модульности Стало понятнее, куда писать какой код

Недостатки первой попытки Название файла – лишь рекомендация Глобальная область видимости осталась Появились проблемы с зависимостями Каша в ресурсах лишь увеличилась

Вторая попытка

Используем плагин

Преимущества jQuery-плагины хорошо изолированы Модульность. Плагин можно легко перенести в другой проект. Появились зачатки структуры кода в представлении (методы, состояния)

Недостатки второй попытки Плагины работают только с DOM В applications.js и других файлах всё равно остаётся много разнообразного кода Проблемы с зависимостями остаются

Третья попытка

Почему можно рефакторить? Часто люди начинают обращаться с примерами, приведёнными на этой странице, как с какой-то божественной истиной. На самом деле Backbone.js предназначен быть довольно агностичным насчёт многих частых паттернов клиентского кода Если вы поймаете себя на том, что добавляете методы в Backbone.Model.prototype, или создаёте свои собственные базовые субклассы, не беспокойтесь так и было задумано.

Структура фрэймворка

Как будем действовать Backbone.View DOM- элемент JS- код Данные

Пример Backbone.View

Что можно вытащить

Что получается

Как рефакторить JS Backbone.View Сущности данных Backbone.Model, Backbone.Collection Зависимости Backbone.Router

Как рефакторить JS Backbone.View Сущности данных Backbone.Model, Backbone.Collection Зависимости Backbone.Router

Пример иерархии

Преимущества Backbone.View хорошо изолированы Поддерживаются сторонние решения Лёгкость рефакторинга Явная архитектура Приятная поддержка кода Лёгкая расширяемость Архитектура разрешает зависимости

Недостатки третьей попытки Надо знать Backbone.JS Подключаем дополнительные файлы (underscore.js, backbone.js) Много JS-файлов на странице

Решаем недостатки Надо знать Backbone.JS Много документации, в т.ч. на русском Подключаем дополнительные файлы (underscore.js, backbone.js) 2 файла, 11 кб Смело используем Много JS- файлов на странице Пользуемся компоновщиками ресурсов concat, uglify, yuicompressor, …

Пример

Спасибо за внимание. Вопросы. Алексей Авдеев Нижний Новгород, Go-Promo, go-promo.ru