Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Evolution Framework v1.4 beta (https://javascript.ru/forum/project/66053-evolution-framework-v1-4-beta.html)

xShift 17.12.2016 19:27

v. 1.5.3

Добавлена возможность анимировать цвета.

xShift 22.12.2016 17:47

v 1.5.6 (Production release: https://github.com/xShiftx/javascrip...ases/tag/1.5.6)

Произведены некоторые оптимизации и устранена поддержка старых браузеров младше IE10.

Добавлена минифицированная версия движка размером в какие-то жалкие 18.5 kB(если на сервере gzip - выхлоп будет еще меньше, а в будущем, когда мой рабочий хакинтош привезут с ремонта я оптимизирую код еще на одну или две трети с помощью утилиты JavaScipt packer), что хорошо для мобильного интернета.

Теперь движек селекторов работает на чистом document.querySelectorAll и поддерживает все псевдоклассы и прочие прелести.

Добавлена поддержка анимации новых CSS3 2D transforms(3D в процессе). Теперь можно анимировать skewX, skewY, translateX, translateY, rotate и scale.

API анимаций осталось без изменений. Двигатель поддерживает одновременную анимацию нескольких трансформов сразу.

Например,

$.dom("a:first-child", "animate", ['transform:rotate(360deg) scale(0.7):2000']);


Добавлены новые эффекты Easings(полный список в описании проекта на главной страницу GitHub).

Переписан events API на более классический из-за бывшей некрасивости.
Теперь, к примеру, событие click можно создать так:

$.click('aside h3', 'click', function(e){ e.preventDefault(); })

nerv_ 23.12.2016 09:06

Цитата:

Сообщение от xShift
v 1.5.6

Цитата:

Сообщение от xShift
Переписан events API на более классический из-за бывшей некрасивости.

http://semver.org/

---

Как тебе помягче сказать... Это же лютый треш исходники твоего "фреймворка" :)

Например, почему у тебя функции проверки типов возвращают null?)

Кстати, isObject должна выглядеть по другому. Почему по другому, предлагаю тебе самому найти ответ)

xShift 23.12.2016 10:06

Цитата:

Сообщение от nerv_ (Сообщение 438723)
http://semver.org/

---

Как тебе помягче сказать... Это же лютый треш исходники твоего "фреймворка" :)

Я его постоянно переписываю. Чтобы выделить код в отдельные компоненты надо хотя бы примерно представлять как часто они будут использоваться, но я последние 30 дней только и думаю о том, что бы мне еще хотелось добавить.

В версии 2.0 запланировано изменение API и уход от подхода коллекторов на свичах - там большинство бардака и разгребется.

Мне вот, например, хочется добавить поддержку анимации градиентов CSS3 для чего есть color animate, который для анимации цветов и animate move для простого просчета значений по времени, а еще есть теперь matrix animate для работы с матрицей трансформаций(она по get computed выставляется в виде matrix(1, 0, 0, 1, 0, 0), а не привычных свойств типа rotote или scale и еще до кучи в радианах, что приходится дважды пересчитывать по технической необходимости).

Плюсом придется делать костыль для распаковки 3D матрицы и ее уравнивания с дефолтной 2D матрицей. Это ощутимый говнокод, но без него работать просто не будет и желаемый функционал не получится хорошим ...
Можно конечно сказать что то вроде 'да говно это все' и плюнуть и ничего не делать, я же решил сделать поддержку некоторых вещей лучше чем в jQuery, меньше по коду и размеру чем в jQuery и сделать это на приемлемом уровне.

Как уж тут без треша?

Все это надо будет причесать в один двигатель и как-то разбить на компоненты экстракции свойств и их замены. Но как я это сделаю сразу, если код сразу потеряет читабельность в разы? Я ведь не знаю какие у меня возникнут сложности с распарсом синтаксиса градиентов и какие придется вносить изменения.

Посмотрите как это сделано у jQuery. Если мой код вы хотя бы прочитать сможете и обслуживать, то там вы просто переломаете ноги ...

Код изначально оптимизирован под максимальную минималистичность и компактность - поэтому выглядит немного трешово.

Дело в том что, как я уже пытался объяснить, при другом подходе вырастет и само количество кода в ощутимых размерах и его сложность.

Пока я в основном наращиваю функционал. А что вам показалось особенно трешовым?

Да и пишу я один, а работы многовато с учетом того, что я трачу на все это хозяйство пока не работаю и нахожусь в больнице на домашнем стационаре по два три часа в день.

Цитата:

Сообщение от nerv_ (Сообщение 438723)
Например, почему у тебя функции проверки типов возвращают null?)

А какая техническая разница в JavaSript условиях иcпользовать null или false? И то и другое работает одинаково ...

Цитата:

Сообщение от nerv_ (Сообщение 438723)
Кстати, isObject должна выглядеть по другому. Почему по другому, предлагаю тебе самому найти ответ)

Согласен. Но код работает и без нее в принципе, а по большому счету пока просто руки не дошли.

Насчет версионности спасибо за ссылку. Задумаюсь(чето там много букафф).

Еще что-то посоветуете?

Царь Леонид 23.12.2016 13:42

xShift,Какую цель преследует твоя библиотека? Для каких целей она мне, как разработчику, может пригодиться?

nerv_ 23.12.2016 17:41

Цитата:

Сообщение от xShift
я же решил сделать поддержку некоторых вещей лучше чем в jQuery, меньше по коду и размеру чем в jQuery и сделать это на приемлемом уровне.

Цитата:

Сообщение от xShift
Посмотрите как это сделано у jQuery

1. Ты уперся в жуквери, как в потолок. Жуквери -- это старая добрая библиотека, преимущественно, для работы с DOM + AJAX. Теперь понятно, почему ее: а) не рекомендуется использовать для анимаций; б)в нет нет расширеного фунционала для работы с анимациями?
2. Для анимаций существуют библиотеки гораздо более оптимизированные + full-featured как говорится. Та же Velocity.js. Причем с API jQuery.

Цитата:

Сообщение от xShift
А какая техническая разница в JavaSript условиях иcпользовать null или false? И то и другое работает одинаково

потом поймешь :)

---

Цитата:

Сообщение от Царь Леонид
Какую цель преследует твоя библиотека?

"как жуквери, только моя + с багами + с сайд эффектами" :)

---

Есть такая вещь как архитектура приложения. Когда передо мной, как разработчиком, стоит задача реализации какой-либо задачи/системы/(бизнес-логики), я разобью эту задачу на подзадачи, решу каждю из них, а затем из этих кирпичей построю дом.

Для решения каждой из подзадач я выберу инструмент (бибилотеку если тебе так яснее), которая делает это:
1. правильно (тесты)
2. быстро
3. имеет интуитивно понятное апи
4. поддержку/комьюнити
5. ...

Я не возьмусь возводить дом из одного большого монолитного кирпича, который кривой, косой, и вовсе не кирпич. Я просто не стану этого делать.

О чем это я? На мой взгляд твой "фреймворк" (да, да, именно в кавычках), не более чем твой собственный образовательный проект -- велосипед в учебных целях.

Велосипеды нужны. Если их не писать, ничему не научишься. Как раз именно после n+1 кол-ва велосипедов появляется полезный выхлоп :)

Но сейчас это просто велик на треугольных колесах и тебе стоит сконцентиророваться на обучении. Я так считаю.

Если хочешь, чтобы бородатые ребята с форума проревьювили твой код, оставь ссылку, они сделают это в меру своей загруженности. Но не стоит пытаться на данном этапе написать аналог жуквери. Даже близко не подойдешь. Кстати, Zepto есть еще =)

xShift 23.12.2016 18:12

Пишу с телефона.

1. Нет. Я взял самое часто мною юзаемое. Да и других потолков нет просто. Кроме того я уже переварил реак и ангуляр и знаю что нужно сделать. Лучше бы помогли чем засирать ))) из патриотических соображений. Иначе что мы лично сделали?

2. Я из патриотических соображений пишу свое решение.

Потом не пойму в чем разница между нул и фэлс. Это эквивалентно при использовании условия иф.

У меня нет большего числа разработчиков чем я сам. И я пишу рабочий во всех положенных на него задачах пусть и велосипед. С велосипеда начинаю и если бы не менталитет большинства из отечественных разработчиков это бы имело не плохие шансы на успех. Но большинство просто обсасывает тренды и вообще ничего не разрабатывает.

(Пьяный ответ)

xShift 24.12.2016 17:50

Цитата:

Сообщение от Rise (Сообщение 438822)
Вот так сделано, только более масштабно, и видно почему называется библиотека (функций), печально что ты ноги переломал на ровном месте) в ангуляр с такой подготовкой ты бы погиб просто))

Спасибо за пример. Кое что утащу к себе в движок.
Да я не люблю ангуляр. Он стандарты не соблюдает со своими материальными дизайнами и компонентами.

xShift 24.12.2016 18:55

v.1.5.7(https://github.com/xShiftx/javascrip...ses/tag/v1.5.7)

Реализована перепаковка 2D матрицы в принудительный 3D режим. Теперь поддерживаются 3D трансформации для анимирования.

Мысленно взял пирожок с полки и похвалил себя ибо этого пока еще не умеет больше ни одна библиотека.

xShift 24.12.2016 19:18

Цитата:

Сообщение от Царь Леонид (Сообщение 438752)
xShift,Какую цель преследует твоя библиотека? Для каких целей она мне, как разработчику, может пригодиться?

Мой фреймворк ни каких особенных целей не преследует. Он задуман как альтернативное средство разработки предоставляющее некоторые подобные jQuery функции с некоторым набором готовых компонентов(модальники,мен ю, слайдер, табы) и мощной поддержкой анимаций. А также уже реализованным в ядре функционалом для подгона верстки под экран пользователя на базе комплекса CSS файлов микроскопического размера.

Все это богатство реализовано максимально эффективно и компактно, что позволило сделать размер очень маленьким, а значит быстрым для загрузки(в последней на момент написания версии 1.5.7 - это всего 20 кб сжатого кода против 150кб у jQuery с учетом всех компонентов и такого же функционала, который она полностью не обеспечит. если на сервере есть gzip, то размер движка будет еще компактнее).

Кароче лучше jQuery потому, что если вы для реализации того же функционала подцепите UI и плагины - это у вас вылезет в 1.5 мегабайта веса ...

Это пока. В будущем функционал будет расширяться(например задуман рутер). Если вам чего-то не хватает - попросите - я это реализую в меру загруженности и адекватности.

Может ли это вам пригодиться в 2017 году - решайте сами.


Часовой пояс GMT +3, время: 05:15.