Интересная статья. Как раз недавно добавлял нечто похожее в проект, но остановился на valibot, который по факту позиционируется “убийцей zod”. Интересно было бы посмотреть на сравнения и с ней тоже.
Я не автор оригинального комментария, но главным недостатком для меня, как для человека, занимающимся микрофронтендами, было то, что квазар был не готов в полной мере к тому, чтобы работать автономно и создавать бандл. В этой битве я выбрал Vuetify. Но опять же, Vue - не мой основной фреймворк, я пишу на ангуляре, может я не до конца углубился в квазар, либо же на тот момент он был и правда не готов к этому. Но как оюполноценная среда он действительно хорош.
Немного оффтопа. У меня до сих пор есть классические NgRx сторы с редьюсерами, эффектами и всеми вытекающими. Но в новых проектах есть signalStore от NgRx и как же всё стало удобнее. А за Cruzo понаблюдаю. Едва ли в ближайшее время буду его использовать, т.к. не хватает функционала, но наблюдать интересно. Наперёд отвечу, что именно лично мне в моих проектах нужно для начала, чего не хватает пока что тут:
работа со стилями. Я понимаю, описывать логику и структуру компонента - это уже половину дела, но нельзя опускать такой большой пласт как стили.
формы. Полноценная работа с валидацией. Можно, конечно, на сторонние зависимости откупиться и собрать своего Франкенштейна, по крайней мере с формами это возможно.
i18n. Зачастую это добавляется в самом начале, чтобы потом было не так больно переделывать. И оно есть почти всегда. Поэтому это довольно важная часть. К сожалению, сторонние библиотеки тут не помогут.
библиотека компонентов. Я видел несколько стандартных, но этого безумно мало.
Тогда неплохое начало. Но у меня все еще складывается ощущение, что не соблюден баланс меджу “простым” и “функциональным”. Невозможно простым и лаконичным набором команд описать сложную функциональность. Можно конечно всё запихнуть под условный вызов одной функции, но как только конфигурация начинает отличаться от стандартно задуманной заканчивается лаконичность.
Вообще, было бы интересно увидеть сравнение еще и в производительности одинаковых проектов на разных языках. Как я понимаю, Cruzo предназначен для не особо сложных проектов, но также себя позиционирует тот же $mol и еще пачка других (Vue, Ember и т.п.).
Я считаю, что важно выбрать нишу и в этой нише показать в чем превосходство над другими фреймворками, иначе есть банальный риск утонуть среди других.
Для мелких проектов может и подойдёт, но вот в чем же тогда разница с упомянутым реактом? Где тут роутинг, работа с формами и т.п.? Я пишу на ангуляре и выбираю его как раз за то, что там не нужны тонны зависимостей, чтобы реализовать приложение полностью. А с появлением сигналов и ресурсов со временем и от rxjs откажутся. Проект интересный, но я не вижу пока практического ему применения.
Было бы интереснее, если бы DateTime и прочее почерпнули из luxon. А то получается, что хотят, как с Intl, под одну гребёнку все завернуть, только в отличии от оного даты используются куда чаще и присутствует некая избыточность синтаксиса.
Честно говоря, не так и часто приходилось что-то именно пробрасывать из хоста в дочерние приложения. Целью было как раз наоборот, отделить использование стилей. А в современных фреймворках, когда они стали повсеместно использовать свои CSS переменные и появилась возможность их ложить не в Root, а в Shadow Root, все стало намного проще и прозаичнее. Изначально мы с Александром решали проблему как раз с изоляцией стилей, а вот этот вопрос в виде "а что если таки надо пробросить?" был бонусным и нашел свой ответ как раз в CSS переменных, поскольку среди техник изоляции Shadow DOM был неоспоримым лидером. Скелетон эффект достаточно просто реализуется в хостовом приложении, пока он грузит дочерние. В современном ангуляре так это стало сделать еще проще благодаря новым директивам. К тому же как раз за счет микрофронтендов и получается довольно быстрый первый отклик - изначально загружвется только ххостовое приложение, которое, как правило, весит очень мало и уже может показать базовые состояния и инициировать загрузку нужного микрофронтенда, который тоже будет весить суммарно с хостовым куда меньше полноценного монолита. Естественно, такой же оптимизации можно добиться и в пределах одного фреймворка и отложенной загрузки, но когда целью является создание системы, которая в перспективе будет иметь неизветное число суб-систем (например, какая-нибудь система управления организацией, где и сотрудники будут, и отчеты, и еще тонна всего), то хранить это в едином проекте - довольно рискованно и может быть большой порог вхождения. Для этой цели и есть микрофронтенды. Но, думаю, выбор архитектуры - это уже задача системного архитектора, т.е. вне контекста данного топика.
Создавать всегда свой UI Kit тоже дело хлопотное. Но что если можно склонировать готовое решение и подстроить его под себя? Не рассматривали shad cn? В частности, недавно под Angular вышел Zard UI - прямой наследник shad cn в нашей экосистеме.
Pokemon не развивается то? Я играл в него с 2016го года и забросил где-то в 2020. В том году вернулся в игру и офигел от количества контента. Сейчас, к слову, добавляют тоже много нового и полезного, что хотелось давно видеть в игре. Печально только то, что некоторые моменты закрыты пейволом. Ну и комьюнити, не везде конечно, но живо и активно. На последний крупный ивент за неделю до конца лета пришло в крупном городе недалеко от меня около 400 человек. Так что рано хороните, не смотря на то, что владелец у игры уже новый.
Поддерживаю. Почему-то о нём и не вспомнили, хотя тоже есть есть весь набор функций. Только поиск на десктопе хромает (этот баг уже давно не могут/не хотят чинить).
Продвинутые - это WeakMap, Intl, structuredClone и тому подобное. А тут перечислены базовые. Может в этом и была цель, чтобы в комментариях продвинутые собрать?
Конечно это так. Но раз выше шла речь про UI-кит, инструменты и знакомую среду, то, возможно, дойдет дело и до оптимизации. Это с одной стороны кажется, что там сложно, а по факту всего-то конфиг подкинуть в основном приложнии, которое будет говорить а что же оно отдает, и в дочернем веб компоненте, которое также будет говорить, что отдает оно. И вот при совпадении зависимостей у основного приложения и компонента дважды не будут тянуться повторящиеся библиотеки. Сейчас, может, и не важно, а потом - как знать.
Вы бы хоть где-то на это намекнули. В заголовке, во вступлении, в тексте статьи... И так то есть бесплатные, которым карта не нужна. Конечно, и качество там не очень, доступность хромает, но вот например https://render.com - есть бесплатный тариф.
Странно не увидеть в списке самый стандартный GithubPages, который для всяких сайтов-визиток просто идеален. Ну и в GitOps ещё можно добавить https://railway.app
Не припомню. Разве что стандартная штука для локализации от Ангуляра, но я не помню, чтобы ей часто вообще кто-то пользовался. transloco я в свое время стал использовать только из-за Scope, которые бы позволяли подгружать переводы с lazy модулями, а не все сразу.
Интересная статья. Как раз недавно добавлял нечто похожее в проект, но остановился на valibot, который по факту позиционируется “убийцей zod”. Интересно было бы посмотреть на сравнения и с ней тоже.
Я не автор оригинального комментария, но главным недостатком для меня, как для человека, занимающимся микрофронтендами, было то, что квазар был не готов в полной мере к тому, чтобы работать автономно и создавать бандл. В этой битве я выбрал Vuetify. Но опять же, Vue - не мой основной фреймворк, я пишу на ангуляре, может я не до конца углубился в квазар, либо же на тот момент он был и правда не готов к этому. Но как оюполноценная среда он действительно хорош.
Немного оффтопа. У меня до сих пор есть классические NgRx сторы с редьюсерами, эффектами и всеми вытекающими. Но в новых проектах есть signalStore от NgRx и как же всё стало удобнее. А за Cruzo понаблюдаю. Едва ли в ближайшее время буду его использовать, т.к. не хватает функционала, но наблюдать интересно. Наперёд отвечу, что именно лично мне в моих проектах нужно для начала, чего не хватает пока что тут:
работа со стилями. Я понимаю, описывать логику и структуру компонента - это уже половину дела, но нельзя опускать такой большой пласт как стили.
формы. Полноценная работа с валидацией. Можно, конечно, на сторонние зависимости откупиться и собрать своего Франкенштейна, по крайней мере с формами это возможно.
i18n. Зачастую это добавляется в самом начале, чтобы потом было не так больно переделывать. И оно есть почти всегда. Поэтому это довольно важная часть. К сожалению, сторонние библиотеки тут не помогут.
библиотека компонентов. Я видел несколько стандартных, но этого безумно мало.
Тогда неплохое начало. Но у меня все еще складывается ощущение, что не соблюден баланс меджу “простым” и “функциональным”. Невозможно простым и лаконичным набором команд описать сложную функциональность. Можно конечно всё запихнуть под условный вызов одной функции, но как только конфигурация начинает отличаться от стандартно задуманной заканчивается лаконичность.
Вообще, было бы интересно увидеть сравнение еще и в производительности одинаковых проектов на разных языках. Как я понимаю, Cruzo предназначен для не особо сложных проектов, но также себя позиционирует тот же $mol и еще пачка других (Vue, Ember и т.п.).
Я считаю, что важно выбрать нишу и в этой нише показать в чем превосходство над другими фреймворками, иначе есть банальный риск утонуть среди других.
Для мелких проектов может и подойдёт, но вот в чем же тогда разница с упомянутым реактом? Где тут роутинг, работа с формами и т.п.? Я пишу на ангуляре и выбираю его как раз за то, что там не нужны тонны зависимостей, чтобы реализовать приложение полностью. А с появлением сигналов и ресурсов со временем и от rxjs откажутся. Проект интересный, но я не вижу пока практического ему применения.
Так хвалят интерфейс, но нигде и скриншота не найти, чтобы оценить без установки то.
Было бы интереснее, если бы DateTime и прочее почерпнули из luxon. А то получается, что хотят, как с Intl, под одну гребёнку все завернуть, только в отличии от оного даты используются куда чаще и присутствует некая избыточность синтаксиса.
Честно говоря, не так и часто приходилось что-то именно пробрасывать из хоста в дочерние приложения. Целью было как раз наоборот, отделить использование стилей.
А в современных фреймворках, когда они стали повсеместно использовать свои CSS переменные и появилась возможность их ложить не в Root, а в Shadow Root, все стало намного проще и прозаичнее.
Изначально мы с Александром решали проблему как раз с изоляцией стилей, а вот этот вопрос в виде "а что если таки надо пробросить?" был бонусным и нашел свой ответ как раз в CSS переменных, поскольку среди техник изоляции Shadow DOM был неоспоримым лидером.
Скелетон эффект достаточно просто реализуется в хостовом приложении, пока он грузит дочерние. В современном ангуляре так это стало сделать еще проще благодаря новым директивам. К тому же как раз за счет микрофронтендов и получается довольно быстрый первый отклик - изначально загружвется только ххостовое приложение, которое, как правило, весит очень мало и уже может показать базовые состояния и инициировать загрузку нужного микрофронтенда, который тоже будет весить суммарно с хостовым куда меньше полноценного монолита. Естественно, такой же оптимизации можно добиться и в пределах одного фреймворка и отложенной загрузки, но когда целью является создание системы, которая в перспективе будет иметь неизветное число суб-систем (например, какая-нибудь система управления организацией, где и сотрудники будут, и отчеты, и еще тонна всего), то хранить это в едином проекте - довольно рискованно и может быть большой порог вхождения. Для этой цели и есть микрофронтенды. Но, думаю, выбор архитектуры - это уже задача системного архитектора, т.е. вне контекста данного топика.
Создавать всегда свой UI Kit тоже дело хлопотное. Но что если можно склонировать готовое решение и подстроить его под себя? Не рассматривали shad cn? В частности, недавно под Angular вышел Zard UI - прямой наследник shad cn в нашей экосистеме.
Pokemon не развивается то? Я играл в него с 2016го года и забросил где-то в 2020. В том году вернулся в игру и офигел от количества контента. Сейчас, к слову, добавляют тоже много нового и полезного, что хотелось давно видеть в игре. Печально только то, что некоторые моменты закрыты пейволом.
Ну и комьюнити, не везде конечно, но живо и активно. На последний крупный ивент за неделю до конца лета пришло в крупном городе недалеко от меня около 400 человек.
Так что рано хороните, не смотря на то, что владелец у игры уже новый.
Потому что иногда не знаешь, во что хочешь поиграть, а стор - он как каталог
Поддерживаю. Почему-то о нём и не вспомнили, хотя тоже есть есть весь набор функций. Только поиск на десктопе хромает (этот баг уже давно не могут/не хотят чинить).
Продвинутые - это WeakMap, Intl, structuredClone и тому подобное. А тут перечислены базовые. Может в этом и была цель, чтобы в комментариях продвинутые собрать?
Я спросил у Яндекса, где моя любимая?
Яндекс не ответил мне, качая головой...
Таймкоды субтитров и разделов слетят, прокрутку тоже никто не отменял
Конечно это так. Но раз выше шла речь про UI-кит, инструменты и знакомую среду, то, возможно, дойдет дело и до оптимизации. Это с одной стороны кажется, что там сложно, а по факту всего-то конфиг подкинуть в основном приложнии, которое будет говорить а что же оно отдает, и в дочернем веб компоненте, которое также будет говорить, что отдает оно. И вот при совпадении зависимостей у основного приложения и компонента дважды не будут тянуться повторящиеся библиотеки. Сейчас, может, и не важно, а потом - как знать.
И вот вы почти пришли к Module federation. Так встроить форму будет ещё дешевле за счёт того, что в родительском приложении уже будет готов ангуляр.
Вы бы хоть где-то на это намекнули. В заголовке, во вступлении, в тексте статьи... И так то есть бесплатные, которым карта не нужна. Конечно, и качество там не очень, доступность хромает, но вот например https://render.com - есть бесплатный тариф.
Странно не увидеть в списке самый стандартный GithubPages, который для всяких сайтов-визиток просто идеален.
Ну и в GitOps ещё можно добавить https://railway.app
Не припомню. Разве что стандартная штука для локализации от Ангуляра, но я не помню, чтобы ей часто вообще кто-то пользовался. transloco я в свое время стал использовать только из-за Scope, которые бы позволяли подгружать переводы с lazy модулями, а не все сразу.