Мы не можем обсуждать JavaScript-фреймворки без использования Backbone.js.
Backbone.js дает структуру веб-приложениям, предоставляя моделям привязку значения ключа и настраиваемые события, коллекции с богатым API перечислимых функций, представления с декларативной обработкой событий и соединяет все это с существующим API через интерфейс RESTful JSON.
Магистраль, конечно, не даст вам никаких сверхспособностей. Это все еще JavaScript, так что вы ничего не можете с ним сделать, что вы не можете сделать с JavaScript. Все это дает вам некоторое удобство и некоторую структуру, так что когда вы работаете над проектом, который включает в себя большое количество данных или большую обработку, у вас есть немного больше гибкости без необходимости тратить часы, пытаясь найти способ составить, смоделировать и визуализировать элемент списка.
Что ты думаешь о Backbone? Кажется, есть много аргументов за и против его использования — расскажите нам, как вы себя чувствуете!
Начните с Backbone.js
Для транскрипции JumpCast и тому подобного, посетите Learnable
JGB: Я здесь с Луи Симоне, веб-разработчиком в Flippa, и он собирается рассказать нам все о Backbone JavaScript сегодня. Скажи мне, Луи, что такое Backbone.js?
Луи: Backbone — это фреймворк JavaScript, который обычно называют MVC-фреймворком или контроллером представления модели, который будет знаком всем, кто занимается программированием на стороне службы, но является относительно новым подходом к программированию на JavaScript. Так что это дает вам немного больше структуры вашего кода JavaScript, если вы делаете что-то немного более сложное, чем то, что вы обычно делаете с помощью, скажем, строкового сценария и jQuery.
Так что, если вы просто хотите выбрать элемент на странице и заставить его либо исчезнуть, либо появиться, либо изменить некоторые стили на нем, быстрый и грязный jQuery может быть отличным подходом, если на вашей странице есть много вещей, которые имеют своего рода структура данных для них. В типичном каноническом примере списка дел каждый элемент дела является моделью. У него есть определенные атрибуты, которые вы можете установить и прочитать.
Вы можете сгруппировать его в коллекцию и связать его с представлениями, которые позволяют сортировать его в HTML без необходимости идти на сервер и заставлять его возвращать небольшой фрагмент HTML, представляющий ваши задачи. , Все это на стороне клиента, на основе данных JSON, которые вы получаете с сервера.
JGB: Так когда же я буду использовать Backbone.js?
Луи: Я немного коснулся этого. Основной вариант использования чего-то вроде Backbone — это когда вы выходите за пределы своей способности упорядочить свой код. Если вы обнаружите, что пишете много шаблонов для сортировки данных из JSON, которые вы получаете с сервера, и загрузки их в HTML, если вы делаете много конкатенации строк для создания разметки, представляющей объект.
Поэтому каждый раз, когда вы хотите добавить список дел в разметку, если вы делаете, что получаете текст, который нужно сделать с человеком, который введен в форму, а затем переходите к этапам добавления LI. элемент по обе стороны от него, и делать это мусор. Вы делаете это в особом порядке. Это один из случаев, когда может пригодиться что-то вроде Backbone, потому что это позволяет вам просто сказать, что это шаблон, связанный с моделью дел.
Все, что мне нужно сделать, — это создать новую модель для работы, создать представление, которое представляет ее, вызвать визуализацию для представления, и тогда все эти вещи, которые настроены в фоновом режиме, просто готовы. Таким образом, он как бы предоставляет вам этот универсальный клей, который вы можете использовать, чтобы связать воедино вашу структуру данных, которая поступает из вашего JSON в ваше выходное представление, через своего рода промежуточное звено, обеспечивающее действительно хорошее программное представление данных в форме модели.
JGB: Каковы преимущества Backbone.js?
Луи: Преимущества в значительной степени будут в структуре кода. Вы обнаружите, что пишете такие многократно используемые фрагменты кода, которые, как я уже сказал, любой, кто знаком с написанием кода на стороне службы, воспринимает как должное, но которые на самом деле не были доступны для использования на стороне клиента. Очевидно, что все это всегда было возможно, если вы хотите развернуть свой собственный фреймворк на JavaScript. Но действительно приятно начать новый проект, в котором у вас есть определенные удобства, уже предоставленные вам платформой, которую вы можете просто подобрать и использовать.
JGB: Так что вы можете сделать с Backbone.js?
Луи: Это не дает вам никаких сверхспособностей. Это по-прежнему JavaScript, так что вы не можете ничего с ним сделать, чего не могли бы сделать с JavaScript, разворачивая свой собственный или создавая поверх jQuery или любого другого фреймворка. Все это дает вам некоторое удобство и некоторую структуру, поэтому, когда вы работаете над проектом, который требует большого количества данных или большой обработки, вам просто нужно немного больше гибкости без необходимости тратить часы на попытки найти способ собрать модель и вывести элемент списка.
JGB: Есть ли другие альтернативы Backbone.js?
Луи: Есть один, называемый Spine, который очень похож на Backbone. Так что это был парень, которому понравилась идея Backbone, и он взял многое из нее, но внес некоторые коррективы в то, что, по его мнению, могло бы быть лучше. Backbone и Spine находятся на очень легкой стороне, поэтому они дают вам минимум, необходимый для начальной загрузки в приложение JavaScript. Тогда есть еще более тяжелые варианты. Ember.js и Angular.js — это два
что я знаком с этим просто гораздо более полнофункциональным.
Но в то же время это связано с большим весом и большой функциональностью, которая может вам не понадобиться. Так что для большинства людей, только начинающих, если вы хотите изучить JavaScript-фреймворк, я думаю, что Backbone — это хорошее место для начала. Потому что, это очень хорошо задокументировано. Во-вторых, это очень широко распространено. Это, вероятно, наиболее используемая среда JavaScript, а это означает, что есть много вспомогательных материалов и обсуждений на форуме, а также вопросов и ответов, которые вы можете найти в Интернете.
Затем, в дополнение к этому, это действительно небольшая облегченная библиотека, которая обеспечивает только минимум, так что вам не нужно изучать много вещей, которые вам могут не понадобиться, и вы можете фактически прочитать весь исходный код. Источник был очень хорошо прокомментирован, и он очень короткий. Вы можете прочитать всю библиотеку за несколько часов, и это отличный способ не только научиться ее использовать, но и научиться правильно структурировать код JavaScript, который действительно хорошо построен.
JGB: Так какой фон вам нужен для использования Background.js?
Луи: Backbone — это библиотека JavaScript. Вам, очевидно, нужно быть знакомым с JavaScript, потому что есть уверенность — вы не можете обойтись без знания языка. При этом, если вы хотите использовать магистраль как возможность изучать JavaScript, это также не является необоснованным, потому что он действительно хорошо структурирован. Вы, вероятно, узнаете хорошие привычки, получив свой первый JavaScript-проект в Backbone только потому, что будете следовать этим устоявшимся структурным соглашениям.
Если бы вы отправились в одиночку, вероятно, у вас есть все виды кода спагетти повсюду. Так что, да, вам нужны некоторые базовые знания в области программирования помимо простых, действительно элементарных сценариев на стороне клиента.