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 13:47

v 1.5.2

Закончил все мыслимые и немыслимые тесты и сделал первый релиз фреймворка(https://github.com/xShiftx/javascrip...ework/releases).

Есть пара багов связанных с ошибками Edge, о которых я написал разработчикам(два из них уже подтвердили и будут исправлять). Баги мелочные: при анимациях в IE желательно указывать изначально оба свойства и left и right ибо они по умолчанию не вычисляются браузером и отдаются как значения auto. Я не стал лепить костылей и просто попросил исправить код у разработчиков.

Вот ошибки:

https://developer.microsoft.com/en-u...sues/10216077/

https://developer.microsoft.com/en-u...sues/10216218/


В целом: вы можете спокойно использовать фреймворк на Production.
Пока нет сетки для верстки, но я над этим активно думаю(задача не простая).

Если вам нужны какие-то функции или модули - вы можете запросить об реализации здесь или написать мне на почту shift-sg@yandex.ru.

Также приглашаю разработчиков к разработке и тестированию. Религия не запрещает менять код ядра - все адекватные правки кода буду смотреть и принимать решение о включении изменений в будущие релизы.

Пока над проектом работаю один. Присоединяйтесь. С радостью приму.

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. Я из патриотических соображений пишу свое решение.

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

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

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

Rise 24.12.2016 06:11

Цитата:

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

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

xShift 24.12.2016 17:50

Цитата:

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

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


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