|
Collection – фреймворк для управления данными
Всем привет!:)
Хочу представить всем свою разработку (хотя уже как то представлял давно, но тема забилась оффтопом). Данный фреймворк даёт очень мощное и гибкое АПИ для управлениями данными, в принципе есть всё, чтобы использовать, как полноценную СУБД. Краткий список возможностей:
Фреймворк написан на чистом JavaScript, однако для работы с DOM он использует сторонние библиотеки (для поиска узлов), из коробки есть поддержка: jQuery, DoJo, Mootools, Prototype, QSA (надеюсь Devote не против:) ), Sizzle. Хотя расширить этот список не составит труда. Сфера применения огромна: например используя Collection можно за пару дней написать очень мощный табличный процессор, оффлайн БД для настольных приложений и т.д.. Сейчас я занимаюсь одним стартапом, где пробую свой велосипед на сервере (node.js), как основную СУБД, также Collection используется в некоторых сервисах Yandex. Имеется подробный мануал и документация на сайте проекте: http://www.collection-js.com Сама либа: http://www.collection-js.com/files/c...lection.min.js Github: https://github.com/kobezzza/Collection Чтобы понять, что же это такое, рекомендую прочитать: http://www.collection-js.com/manual/part-1.html С уважением, Андрей! ЗЫ: просьба не разводить холивар и оффтоп. |
Цитата:
Какие заметные отличия от похожего инструмента Follow.js? |
Цитата:
|
Цитата:
Да и другим, возможно, интересно :) Кстати, чувак, который это делал, рядом со мной сидит. |
Цитата:
|
Цитата:
|
Цитата:
Изначально, когда я начинал писать свой Collection, мне нужен был только общий интерфейс стандартных методов для массивов и объектов, затем меня увлекла идея написания своей СУБД на JS, которая могла бы работать как на клиенте, так и на сервере. Пример некоторого запроса на моём Collection: // создадим новую коллекцию (структура может быть любой) var db = new Collection({ users: [ {name: 'Андрей', age: 22}, {name: 'Вася', age: 25}, {name: 'Гоша', age: 19}, {name: 'Петя', age: 27}, {name: 'Стас', age: 23} ], nmb: [1, 2, 3, 4, 5] }); // запросим данные из кластера users о всех людях старше 20-ти и моложе 25-ти // затем сохраним данные в новую коллекцию в стеке (назовём test) и назначим её активной db.get('users >> :el.age > 20 && el.age < 25', '>>>test'); // теперь отсортируем по полю name db.sort('name'); Чтобы понять что за магия с символами и т.д. достаточно прочитать мануал: http://www.collection-js.com/manual/part-1.html (там 10 глав, не более 30-ти минут чтения). Я потратил на разработку сего чуда почти 3 года и последние 2 месяца трудился над мануалом и докой, хотелось бы услышать критику что ли) Ну а так, на следующем js meetup я уже обязательно про неё расскажу сам) ЗЫ: завтра я уже выйду на работу, т.к. отпуск брал только на 5 дней) |
Ну на следующем митапе я тоже собираюсь рассказать про свой адский шаблонизатор.
Вообще, идея агрегирования обработки данных мне понравилась, пугает только синтаксис запросов - далеко не самый низкий порог вхождения. Например мне не понятно почему при первом вхождении el используется двоеточие, а потом нет? |
Цитата:
чтобы найти в строке управляющую конструкцию, а затем её просто запоминаем и нет нужды указывать двоеточие дальше. А затем натолкнулся на вот эту строку: '(:el.sex == "female" && el.age > 18) || (:el.sex == "male" && el.age < 30)' А потом я наткнулся на такую строчку: ':el == <:i:>' Может я не нашел, но в учебнике напрочь отсутствует сгруппированное объяснение всех этих конструкций: ':el', '<:i:>' и принцип парсера строки(как например в доке mysql) или просьба ткнуть меня носом. Ещё у меня вопрос: collection умеет работать с типами: "дата","время"? По возрасту и прайсам всё понятно, 12 и т.д. целые числа, а по сложнее, с плавающей точкой например или дата и время? зы: смотрел быстро, мог не найти где это описано, но я не нашёл. зы2: по ссылке( Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 16:11. |
|