Видеозапись доклада «Вся соль одностраничных приложений» с 404fest

в 10:20, , рубрики: 404fest, backbone, jasmine, javascript, knockout, mocha, Ostrovok.ru, метки: , , , , ,

Федя Шумов и Арсений Заречнев, фронт-енд разработчики из команды Островка, рассказали о
«Всей соли одностраничных приложений» на 404fest в Самаре.

Содержание доклада:

Видеозапись доклада «Вся соль одностраничных приложений» с 404fest

Single-Page Apps. Вся соль.

  1. Backbone.js
  2. MVC на клиенте
  3. Тестирование JS
  4. Model-View Bindings
  5. Освещение Batman.js

Extranet.Ostrovok.ru (система администрирования для отелей). Самое соленое.

  1. Навигация и управление через адресную строку. Слабосвязанные события роутера. Кеширование полезных данных, добываемых из запрошенного URL.
  2. DOM-связанные данные. Expando. Не засорять неймспейс временными или чужими данными. Использование сторонних библиотек, использующих эту технологию.
  3. Вьюха строится 1 раз. При уходе на другую страницу она выдирается через Parent.removeChild(Child) или jQuery.detach() и живет с биндингами. При повторном обращении вставляется собранной.
  4. Отказ от Delegate. Увеличение скорости за счет отсутствия листнеров ивентов на родительском элементе представления.
  5. Knockout. Ясная логика темплейта. Автоматическое изменение UI. Изменения в DOM только тех аттрибутов и элементов, что действительно того требуют. Безопасный интерфейс. Многопользовательский режим.
  6. Backbone + Knockout = Router + CRUD + MVVM. Two-way зависимость: методы изменения модели каждого фреймворка синхронизируют связанные объекты и триггерят нужные ивенты друг у друга. Постепенный переход от представлений Backbone к Knockout.
  7. На страницах, работающих с действительно большими коллекциями и моделями, может потребоваться глубокая оптимизация. Например отказаться от $.extend или _.extend, которые активно используют модели и коллекции фреймворков при инициализации, для обрыва связки в памяти.

Автор: Ostrovok


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js