Опенсорсный JavaScript-фреймворк с нестандартными подходами, ориентированный на разработку одностраничных приложений. Обновление шаблонов и стилей без перезагрузки страницы, развитые механизмы работы с данными, высокая производительность, инструменты разработчика и многое другое.
Доклад с конференции WSD, Санкт-Петербург, 8 июня 2013
Видео: http://www.youtube.com/watch?v=cVbbkwkhNQg
1 of 74
Download to read offline
More Related Content
Basis.js - почему я не бросил разрабатывать свой фреймворк (extended)
1. basis.js
почему я не бросил разрабатывать свой
фреймворк
Роман Дворнов
Ostrovok.ru
FrontTalks, июль 2013
2. Немного о себе
•Работаю в Ostrovok.ru
•До этого руководил
веб-разработкой в
ПС Единый кошелек
•Автор и мейтейнер
фреймворка basis.js,
которому уже 7 лет
2
28. Особенности
28
• Все данные имеют состояние
• При изменении данных создается дельта
изменений
• Механизм делегирования
• Объекты взаимодействуют через
изменение данных и состояния
• ...
35. 35
new basis.data.dataset.Subset({
source: new basis.data.dataset.Subtract({
minuend: contacts,
subtrahend: selectedContacts
}),
rule: function(item){
return /ч/i.test(item.data.title);
}
});
36. В итоге
36
• Описана некоторая логическая
схема связи данных и компонент
• Код работающий с contacts и
selectedContacts остался прежним
• О согласованности наборов и
данных заботится фреймворк
42. Режимы
41
• Много файлов
• Ленивая подгрузка
• Оптимизируем
загрузку с помощью
basis server
Dev Production
• Один (обычно) js
файл, в котором весь
код, шаблоны и
словари, один CSS
файл на тему
• Различные
оптимизации
51. Другие фреймворки
48
• backbone.js – постоянно копирует
поля, событие для каждого
изменного поля
• knockout.js – создает слишком
много массивов, замыканий и других
структур
• AngularJS – dirty check (глубокое
копирование и сравнение объектов)
52. Простые модели
49
backbone.js knockout.js basis.data
10 000 моделей c 5 полями
1 000 моделей с 50 полями
136 ms 160 ms 2 ms
3.3 MB 10.9 MB 0.3 MB
86 ms 220 ms 1 ms
1.3 MB 13.5 MB 0.1 MB
Время
Память
Время
Память
59. Сборщик
56
• Не требует деклараций, списков
файлов, карты зависимостей и т.п.
• Рекурсивно парсит и анализирует
файлы, строя граф файлов
приложения
• Использует AST для анализа
• Может применять различные
оптимизации