У вас отключен JavaScript
Для пользования сайтом, необходимо, чтобы JavaScript был включен. Посмотреть как включить, выберите свой браузер:

Backbone.js. для вашего приложения: взвешиваем “за” и “против”

 

Сегодня на повестке дня Backbone.js. Это неоднозначная JavaScript библиотека, отзывы о которой варьируются от похвал до рекомендаций не использовать.

Давайте вместе разберемся, в чем причина такого разброса, и выясним, в каких случаях эта библиотека будет полезна, а в каких лучше остановить свой выбор на других библиотеках (или фреймворках).

 

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

 

Напомним лишь, что JavaScript на данный момент сохраняет позицию одного из самых популярных языков программирования. И во многих случаях именно JavaScript рекомендуют как лучший язык для изучения.

 

ЧТО ДАЮТ НАМ JAVASCRIPT БИБЛИОТЕКИ И ФРЕЙМВОРКИ

  • фреймворки и библиотеки предназначены для ускорения процесса разработки за счет готовых шаблонов и решений и продуманной структуры;
  • вокруг JavaScript образовалось развитое сообщество разработчиков, члены которого делятся опытом друг с другом и одновременно выступают в роли тестировщиков;
  • фреймворки и библиотеки, в большинстве своем, имеют открытый код, и их можно использовать бесплатно. Соответственно, и общая стоимость разработки приложений с их помощью будет ниже.

Как видите, положительные стороны налицо.

 

BACKBONE.JS: ВСЕ ОБ ЭТОЙ БИБЛИОТЕКЕ И НЕМНОЖКО БОЛЬШЕ

Теперь посмотрим подробнее на Backbone.

Для начала определимся: Backbone.js – это JavaScript библиотека.

Библиотека в программировании представляет собой набор подпрограмм или объектов для разработки программного обеспечения.

В Backbone, как в JavaScript библиотеке, собраны классы (описания типов данных и их реализации) и функции (фрагменты кода, обратиться к которым можно из любого места программы).

 

1st example

Пример использования Backbone.js: Groupon.com

 

Backbone.js относится к библиотекам типа MVC.

Поэтому давайте вспомним, что такое MVC: схема, в соответствии с которой проектируются приложения (Модель + Представление + Контроллер (англ. Model + View + Controller).

 

Как работает MVC?

  • Взаимодействие пользователя с системой приложения происходит через контроллер. Контроллер воспринимает действия пользователя, интерпретирует их и сообщает модели, какие нужны изменения в соответствии с такими действиями.
  • Модель отвечает за доступ к данным, имеющимся в системе. Она принимает от контроллера запрос на изменения и выполняет его.
  • Все эти процессы невидимы для пользователя: его/ее задача заключается в том, чтобы нажать кнопку (или выполнить какое-нибудь другое действие с интерфейсом) и получить результат. И вот за то, как именно будет выглядеть результат, отвечает представление.

Получая данные из модели, представление отображает их для пользователя.

Смысл схемы в том, что нет однозначной зависимости между данными и их отображением. То есть одни и те же данные можно отобразить, например, в виде текста, таблицы, схемы – в зависимости от действия пользователя и от того, как их интерпретирует контроллер.

Это вкратце, на деле процесс может быть реализован разными способами, но мы в подробности вдаваться не будем. Вернемся опять к нашей Backbone.js.

 

2nd example

Пример использования Backbone.js: WordPress.org

 

Библиотека  Backbone.js использует:

  • Модели;
  • Коллекции (наборы моделей);
  • Представления;
  • Роутеры.

Все данные представлены на стороне клиента в виде моделей. Их можно создавать, удалять, валидировать, сохранять на сервере. Такие операции с данными запускаются, когда в интерфейсе происходит изменение атрибута модели.

 

Представление получает информацию об изменении модели (данных) и изменяется в соответствии с таким изменением. При этом представление меняется везде, где модель отображается в приложении.

Каждое представление может обновляться независимо от других, потому что оно связано с определенной моделью. А вместе такие представления формируют интерфейс вашего приложения.

 

Роутер в Backbone.js предоставляет методы для маршрутизации на стороне клиента. Простыми словами роутер отвечает за то, как изменится приложение, когда изменяется URL в браузере.

Более подробную информацию о том, как работает библиотека и какие классы и функции включает в себя, можно найти на официальном сайте Backbone.js.

Основная задача этой библиотеки заключается в том, чтобы логически организовать клиентскую часть вашего приложения и синхронизировать изменения с серверной частью.

 

3rd example

Пример использования Backbone.js: USAtoday.com

 

ХАРАКТЕРИСТИКИ BACKBONE.JS

Преимущества Backbone.js:

  • имеет аннотированный открытый исходный код.  Это означает, что любой разработчик может изучить его и использовать для разработки.
  • Backbone.js весит 7.6 Кбайт в сжатом виде (Backbone + Jquery + Underscore = 41,6 Кбайт). То есть ее можно отнести к самым легковесным наборам инструментов.

 

Для сравнения посмотрите данные по другим фреймворкам и библиотекам:

frameworks

Источник

 

  • очень компактная библиотека: представляет собой самый простой минималистический набор классов и функций, который охватывает все самые необходимые компоненты для создания веб-приложения.
  • предназначена для того, чтобы использоваться как фундамент приложения, и предполагает последующее расширение за счет других библиотек и инструментов (это предполагает даже само название библиотеки: backbone переводится с англ. как основа, позвоночник, остов).
  • очень гибкая и хорошо сочетается с другими инструментами. Выбор подключаемых инструментов и плагинов остается за разработчиком (единственная фиксированная зависимость – библиотека Underscore.js., без которой Backbone.js не работает).

 

Backbone.js имеет и свои “подводные камни”:

  • возможность свободно выбирать инструменты для расширения приложения, основа которого создана при помощи Backbone.js, может стать достаточно сложным испытанием для начинающего разработчика. Поэтому прежде чем приступать к работе, рекомендуется продумать, какие библиотеки будут использоваться и изучить их возможности.
  • по мере расширения приложения представления могут стать тяжелыми с точки зрения кода. В некоторых случаях такую проблему можно решить, разбив одно представление на несколько в соответствии с логикой.

Вывод:

Как именно будет работать библиотека при разработке вашего конкретного приложения, зависит от специфики приложения, опыта и квалификации разработчиков.

 

BACKBONE.JS: ПРИМЕНЕНИЕ НА ПРАКТИКЕ

Исходя из описанных выше характеристик, вывод напрашивается сам собой.

Эту библиотеку можно использовать, когда:

Согласитесь, вам же не придет в голову использовать сложную автоматическую конструкцию, чтобы забить гвоздь, если под рукой есть молоток?

  • нужно разработать веб-приложение со сложным (интерактивным и многофункциональным) интерфейсом;
  • у разработчиков есть достаточный опыт, и они знают, какие библиотеки для чего использовать и как их сочетать. В таком случае, можно использовать Backbone.js как фундамент, и расширять его, создавая свое собственное приложение.

В этом смысле более крупные фреймворки (Angular, React и т.д.) предоставляют меньшую свободу действий. Главное здесь – уметь такой свободой правильно воспользоваться.

  • нужно сформировать четкую структуру веб-приложения, чтобы избавиться от спагетти кода (сложного, запутанного кода), а также упростить поддержку и масштабирование приложения.

 

4th example

Пример использования Backbone.js: Airbnb.com

 

Backbone.js используется не первый год (с 2010 года), и достаточно успешно. С другой стороны, технологии не стоят на месте, и появляются все новые и новые библиотеки и фреймворки. В таком многообразии есть и плюсы (всегда можно выбрать оптимальный вариант) и минусы (можно увязнуть в бесконечных сравнениях разных наборов инструментов).

Основной вывод, который мы сделали для себя:

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

Например:

Knockout.js – используется для создания сложных интерфейсов пользователя, для которых нужна поддержка разных браузеров.

Vue.js – используется для автоматического создания интерактивных интерфейсов.

Angular.js – специализируется на одностраничных приложениях (обеспечивает более простую навигацию и оптимизирует пользовательский опыт).

Какой выбор сделать в итоге, определяет разработчик. И при правильном использовании каждый из JavaScript фреймворков и библиотек будет оптимальным помощником в разработке.

 

Остались вопросы? Хотите получить больше информации о других фреймворках или библиотеках? Уже определились с выбором и ищете разработчиков?

В любом случае – свяжитесь с нами прямо сейчас, мы готовы ответить на вопросы, обсудить перспективы и начать сотрудничество.

 

Фото: Shutterstock.com

 

 


Ещё

  • Создаем приложение с механикой Uber: руководство по разработке проекта на миллион долларов
    Создаем приложение с механикой Uber: руководство по разработке проекта на миллион долларов
    Uber стал первым, кто применил бизнес-модель совместного потребления и экономику по требованию и взял на абордаж целый мир. Дестабилизация традиционного рынка такси не мешает Uber позиционировать себя, прежде всего, как технологическую, а не транспортную компанию. И это вполне оправданно – образцовый сервис и эффективные технические решения – именно то, что привело компанию к оглушительному успеху. …
  • Как увеличить вовлеченность в мобильных приложениях: 6 полезных советов
    Как увеличить вовлеченность в мобильных приложениях: 6 полезных советов
    Что заставит пользователей возвращаться в ваше приложение снова и снова? Как запустить работу приложения на полную мощность и сделать его незаменимым для всех и каждого? Десяток, а может и два десятка установленных на смартфон приложений, но пользуетесь в реальности всего несколькими из них? Совсем не хочется, чтобы ваше приложение попало в список “однажды открою, вдруг …
  • Разработка приложений на React Native: универсальный солдат
    Разработка приложений на React Native: универсальный солдат
    К 2018 году споры о том, нужны ли бизнесу мобильные приложения, уже утратили актуальность. Теперь основной вопрос заключается в выборе технологий и исполнителей для реализации проектов. Мы уже описывали 5 причин использовать React Native для разработки мобильных приложений. Сегодня вы узнаете, в каких случаях целесообразно использовать React Native, а в каких – нативную разработку.   …