03.11.2012, 07:47
|
|
Кандидат Javascript-наук
|
|
Регистрация: 11.08.2011
Сообщений: 103
|
|
kobezzza, хочу попробовать заюзать вашу разработку в своей. Список задач:
1. Хочу сделать undo/redo хранилище со следующими полями:
[действие, диапазон изменяемых данных, данные(Array или JSON), диапазон отката]
2. Хранение лога действий.
Основной компонент работает на jQuery
Сложных выборок не будет, надо получать и сохранять данные.
Подскажите какой минимум для сборки, чтобы не тянуть все? (с поддержкой jQuery и эмуляции SQL). Может быть примерчик сборки набросаете? Можно ли собрать одним файлом для удобства подключения.
Извините заранее за глупые вопросы, еще не все прочитал, так что если что, то тыкайте носом в доки.
А может быть для моих задач и не нужен Collection?
Спасибо.
Либа однозначно интересная и перспективная, особенно для тех кто делает клиентские приложения. ИМХО.
Советую также сайт и доки перевести на инглиш и запостить где-то на SO например.
Последний раз редактировалось antonM, 03.11.2012 в 07:54.
|
|
03.11.2012, 11:07
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
antonM завтра будет статья на сайте, которая ответит на все вопросы
Разумеется Collection не обязателен, но с ним эту задачу можно будет сделать быстрее
Я думаю о переводе сайта на инглиш, но пока времени не хватает.
|
|
04.11.2012, 14:09
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Закончил работу над первой минорной версией ветки 3.8.x - 3.8.1!
Несмотря на маленькую цифру данное обновление действительно включает в себя много улучшений:
1) Проведена оптимизация конструктора, теперь его создание крайне мало времени, по наставлению B~Vladi второй параметр конструктора был выпилен для оптимизации работы в V8;
2) Очень сильно оптимизирована логика работы всех итеративных методов, теперь в браузерах, где интерпретатор не умеет развёртывать Array.forEach и т.д. (на данный момент развёртывать нормально forEach может только ИЕ10) скорость работы Collection.forEach в некоторых случаях превышает нативную браузера (в 1.5-2 раза);
3) Практически полностью переписан модуль компиляции фильтров, теперь простые строковые сокращения (состоящие из 1-го фильтра) по скорости почти равны явным функциям, работы составных фильтров ускорена почти в 10 раз!
4) В метод forEach добавлена стратегия анализа фильтров: в зависимости от фильтра метод выбирает наиболее оптимальную стратегию работы, что даёт сильный прирост производительности в некоторых случаях;
5) Исправлено множество ошибок версии 3.8.
Последний раз редактировалось kobezzza, 04.11.2012 в 14:13.
|
|
04.11.2012, 14:21
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Вот это хорошее обновление
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
04.11.2012, 23:39
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Эх сегодня видимо не судьба закончить с докой Завтра надеюсь допилю всё
|
|
04.11.2012, 23:52
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
kobezzza,
каким законам подчиняется нумерования версий ?
|
|
05.11.2012, 00:45
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от melky
|
kobezzza,
каким законам подчиняется нумерования версий ?
|
Первая версия означает очень сильные, затрагивающее всю библиотеку в целом, во всяком случае так было 4-и версии подряд (0, 1, 2, 3), т.к. я пишу её почти стока же, сколько пишу на ЖС, то каждую версию я переписывал почти с нуля, пробуя новые решения и архитектуры. Сейчас первая цифра просто означает мажорный апдейт. Вторую цифру в принципе можно приравнять к первой, но раз уж так сложилось исторически, то пускай так и остаётся. Вторая цифра - мажорный апдейт, в включающий в себя "новые фишки", фишки которые будут добавляться от версии к версии расписаны в моём roadmap, так например по плану в 3.9 должно добавится 2 мощных нововведения: поддержка хранилищ больших данных и поддержка множества сторонних шаблонизаторов. В 4-й версии всё внимание будет сконцентрированы на автоиндексах, картах взаимоотношений и поддержкой параллельных операций (веб воркеры). Минорные апдейты (3-я цифра) как правило несут в себя исправления ошибок и различные оптимизации, но изредка я добавляю новые микро фишки, тогда в таком случае к последней версии я прибавляю 0.0.2, а не 0.0.1.
Даты выхода версий плавают, т.к. я веду разработку либы в свободное от работы время, а работы у меня 2: Яндекс и мой личный стартап (находится в разработке), поэтому например летом я почти не работал над ней. Пока у меня как минимум есть идеи насчёт 3-х мажорных версий, что будет дальше я не знаю, но вероятность того, что я заброшу разработку маловероятна, т.к. для меня эта либа имеет особое значение
Работа над докой занимает много времени, больше чем разработка, но это для меня тоже большой опыт.
Последний раз редактировалось kobezzza, 05.11.2012 в 00:55.
|
|
05.11.2012, 19:41
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Эх чёто я окончательно увяз, адская это работа делать нормальную доку.
antonM дабы не ждать, пока я всё рожу, сразу расскажу про то, как сделать свою сборку:
1) Ставим на компьютер Git (если есть, то можно пропустить);
2) Ставим на комп Java и Node.js (если есть, то можно пропустить);
3) git clone https://github.com/kobezzza/Collection.git
4) Открываем files/core.js
Находим подключения внизу. Если модуль не нужен, то просты удаляем его
//#include
или так:
// #include.
Если нужен модуль с определённой настройкой, то ставим флаг, например:
//#include ./drivers.js::DOM_jQuery
.
Если нужен модуль с базовой настройкой, то, например,
//#include ../mult/mult.js::base
.
(описание сборщика, https://github.com/Kolyaj/BuildJS)
Минимальная сборка с SQL интерпретатором (с поддержкой старых ИЕ).
//#include ./static.js
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// Драйвера, для взаимойдействия с другими библиотеками:
// 1) DOM (драйвер для работы с DOM):
// 1.1) DOM_qsa;
// 1.2) DOM_Sizzle;
// 1.3) DOM_jQuery;
// 1.4) DOM_dojo;
// 1.5) DOM_MooTools;
// 1.6) DOM_Prototype.
//#include ./drivers.js::DOM_jQuery
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// Реализация методов массивов из ECMAScript5 для старых браузеров
// (флаг сборки: ArrayProto).
//#include ./array.prototype.js
//#include ./prototype.js
//#include ../other/other.js
//#include ../compile/func.js
//#include ../fields/fields.js
//#include ../stack/stack.js
//#include ../single/single.js
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
// Методы для итеративных операций:
// 1) Mult_Get;
// 2) Mult_Set;
// 3) Mult_Remove;
// 4) Mult_Search;
// 5) Mult_Map;
// 6) Mult_Move;
// 7) Mult_Group;
// 8) Mult_Stat.
//#include ../mult/mult.js::base
// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//#label Sort
//#include ../sort/sort.js
//#endlabel
//#label Local
// #include ../local/local.js
//#endlabel
//#label DOM
// #include ../dom/collection.js
// #include ../dom/compile.js
//#endlabel
//#label Design
// #include ../design/print.js
//#endlabel
//#label Design_Table
// #include ../design/table.js
//#endlabel
//#label CSQL
//#include ../csql/csql.js
//#endlabel
5) Теперь запускаем сборку: compiler.bat (разумеется это под винду).
6) Моно запустить тесты и проверить, что всё ок (tests/index.html).
Последний раз редактировалось kobezzza, 06.11.2012 в 00:08.
|
|
06.11.2012, 06:42
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
Для сравнения: в случае PMS сборщика достаточно создать отдельную директорию, поместить туда файлик с расширением .meta.tree и коротким содержанием:
include module= Collection/DOM_jQuery
include module= Collection/csql
потом запустить компиляцию и все необходимые зависимости подтянулись бы автоматом
__________________
.ня
|
|
06.11.2012, 14:38
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от tenshi
|
Для сравнения: в случае PMS сборщика достаточно создать отдельную директорию, поместить туда файлик с расширением .meta.tree и коротким содержанием:
include module= Collection/DOM_jQuery
include module= Collection/csql
потом запустить компиляцию и все необходимые зависимости подтянулись бы автоматом
|
Да в принципе и сейчас это можно сделать, создать отдельный файлик, и написать
//#include core.js::DOM_jQuery::csql
(зависимости подтянутся)
но у твоего варианта синтаксис по приятней, наверно в будущем так и сделаю
Последний раз редактировалось kobezzza, 06.11.2012 в 14:42.
|
|
|
|