kobezzza, хочу попробовать заюзать вашу разработку в своей. Список задач:
1. Хочу сделать undo/redo хранилище со следующими полями: [действие, диапазон изменяемых данных, данные(Array или JSON), диапазон отката] 2. Хранение лога действий. Основной компонент работает на jQuery Сложных выборок не будет, надо получать и сохранять данные. Подскажите какой минимум для сборки, чтобы не тянуть все? (с поддержкой jQuery и эмуляции SQL). Может быть примерчик сборки набросаете? Можно ли собрать одним файлом для удобства подключения. Извините заранее за глупые вопросы, еще не все прочитал, так что если что, то тыкайте носом в доки. А может быть для моих задач и не нужен Collection? Спасибо. Либа однозначно интересная и перспективная, особенно для тех кто делает клиентские приложения. ИМХО. Советую также сайт и доки перевести на инглиш и запостить где-то на SO например. |
antonM завтра будет статья на сайте, которая ответит на все вопросы :)
Разумеется Collection не обязателен, но с ним эту задачу можно будет сделать быстрее:) Я думаю о переводе сайта на инглиш, но пока времени не хватает. |
Закончил работу над первой минорной версией ветки 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. |
:blink:
Вот это хорошее обновление :) |
Эх сегодня видимо не судьба закончить с докой :( Завтра надеюсь допилю всё
|
kobezzza,
каким законам подчиняется нумерования версий ? |
Цитата:
Даты выхода версий плавают, т.к. я веду разработку либы в свободное от работы время, а работы у меня 2: Яндекс и мой личный стартап (находится в разработке), поэтому например летом я почти не работал над ней. Пока у меня как минимум есть идеи насчёт 3-х мажорных версий, что будет дальше я не знаю, но вероятность того, что я заброшу разработку маловероятна, т.к. для меня эта либа имеет особое значение:) Работа над докой занимает много времени, больше чем разработка, но это для меня тоже большой опыт. |
Эх чёто я окончательно увяз, адская это работа делать нормальную доку.
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). |
Для сравнения: в случае PMS сборщика достаточно создать отдельную директорию, поместить туда файлик с расширением .meta.tree и коротким содержанием:
include module= Collection/DOM_jQuery include module= Collection/csql потом запустить компиляцию и все необходимые зависимости подтянулись бы автоматом |
Цитата:
//#include core.js::DOM_jQuery::csql (зависимости подтянутся) но у твоего варианта синтаксис по приятней, наверно в будущем так и сделаю |
Часовой пояс GMT +3, время: 15:31. |