Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.04.2012, 21:54
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Collection – фреймворк для управления данными
Всем привет!

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

Данный фреймворк даёт очень мощное и гибкое АПИ для управлениями данными, в принципе есть всё, чтобы использовать, как полноценную СУБД.

Краткий список возможностей:
  1. Копирование, перемещение, удаление, слияние, сортировка и группировка;
  2. Статистические функции;
  3. Запросы по сложным фильтрам;
  4. Хранение данных в DOM Storage;
  5. Пространства имён;
  6. DOM шаблонизатор;
  7. Интерпретатор SQL.

Фреймворк написан на чистом 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

С уважением, Андрей!

ЗЫ: просьба не разводить холивар и оффтоп.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 28.10.2012 в 19:50.
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2012, 22:45
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,022

Сообщение от kobezzza
надеюсь Devote не против
Думаю, он будет только рад

Какие заметные отличия от похожего инструмента Follow.js?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2012, 23:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от B~Vladi
Какие заметные отличия от похожего инструмента Follow.js?
В коридор выйдите оба и поговорите. Вы в соседних комнатах сидите
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2012, 23:33
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,022

Сообщение от Kolyaj
В коридор выйдите оба и поговорите. Вы в соседних комнатах сидите
Он сейчас в отпуске
Да и другим, возможно, интересно

Кстати, чувак, который это делал, рядом со мной сидит.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2012, 23:45
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Kolyaj
В коридор выйдите оба и поговорите. Вы в соседних комнатах сидите
Ты сделал мою ночь)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 28.04.2012, 00:07
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,022

Сообщение от trikadin
Ты сделал мою ночь)
Эмм, переведи?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #7 (permalink)  
Старый 28.04.2012, 00:15
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от B~Vladi Посмотреть сообщение
Какие заметные отличия от похожего инструмента 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 дней)
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 28.04.2012 в 00:22.
Ответить с цитированием
  #8 (permalink)  
Старый 28.04.2012, 00:32
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,022

Ну на следующем митапе я тоже собираюсь рассказать про свой адский шаблонизатор.
Вообще, идея агрегирования обработки данных мне понравилась, пугает только синтаксис запросов - далеко не самый низкий порог вхождения. Например мне не понятно почему при первом вхождении el используется двоеточие, а потом нет?
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
Ответить с цитированием
  #9 (permalink)  
Старый 28.04.2012, 09:17
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от B~Vladi Посмотреть сообщение
почему при первом вхождении el используется двоеточие, а потом нет?
Я по началу думал, что:
чтобы найти в строке управляющую конструкцию, а затем её просто запоминаем и нет нужды указывать двоеточие дальше.

А затем натолкнулся на вот эту строку:
'(:el.sex == "female" && el.age > 18) || (:el.sex == "male" && el.age < 30)'


А потом я наткнулся на такую строчку:
':el == <:i:>'


Может я не нашел, но в учебнике напрочь отсутствует сгруппированное объяснение всех этих конструкций: ':el', '<:i:>'
и принцип парсера строки(как например в доке mysql) или просьба ткнуть меня носом.

Ещё у меня вопрос:
collection умеет работать с типами: "дата","время"?

По возрасту и прайсам всё понятно, 12 и т.д. целые числа, а по сложнее, с плавающей точкой например или дата и время?

зы: смотрел быстро, мог не найти где это описано, но я не нашёл.
зы2: по ссылке(
Сообщение от kobezzza
Чтобы понять что за магия с символами и т.д. достаточно прочитать мануал: http://www.collection-js.com/manual/part-1.html (там 10 глав, не более 30-ти минут чтения).
) ходил, не дошло про магию с символами.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 28.04.2012 в 09:20.
Ответить с цитированием
  #10 (permalink)  
Старый 28.04.2012, 09:22
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от kobezzza
где пробую свой велосипед на сервере (node.js), как основную СУБД
А как это на сервере работает? Всё в памяти хранится?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Блокирование кнопок управления окном браузера usernew Events/DOM/Window 5 08.12.2009 09:20
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Возможности JavaScript для управления hardware-объектом AZbest Общие вопросы Javascript 19 28.10.2008 17:45