Telegram Web Link
Forwarded from Типа про IT
Не знаю почему об этом не кричат на каждом углу, но IBM купила HashiCorp. Полностью и без остатка. Таким образом, IBM владеет RedHat, которая, в свою очередь владеет Ansible, и вот теперь HashiCorp, которая про Terraform, Nomad, Vault и так далее. А значит, IBM теперь владеет всеми актуальными инструментами для работы с облачной (и не только) инфраструктурой. Остальным заправляет Microsoft.

Короче говоря, рыночек порешал этот ваш opensource. Переезжаем на OpenTofu? Или ждём пока IBM не начнёт выкручивать яйца изменением лицензирования своих продуктов?
😢8👍5🔥3
А вот тут есть и другие полезные каналы про фронтенд.

https://www.tg-me.com/addlist/Z6Efi4jXwe9lODcy

Я подписан как минимум на половину каналов из папки.
👍20👎3
This media is not supported in your browser
VIEW IN TELEGRAM
+300 человек за один вечер.
Спасибо вам! 💜
29👎2🔥2
Forwarded from Effector news (Дима Zerꙫbias)
В open source вышло приложение, написанное на эффекторе

Часто возникает вопрос, можно ли где-то посмотреть примеры реальных, продуктовых приложений, написанных на эффекторе? Разумеется, большинство приложений — с закрытым исходным кодом и открытых примеров мало.

В 22 году два из мейнтейнеров проекта, @ZeroBias и @sergeysova работали в компании roke.to и разрабатывали фронтенд часть приложения. Компания не пережила падение FTX, но внезапно на днях решили открыть все наработки в open source, очень похвальное решение 👏

Код в приложении (даже двух, на самом деле) написан на момент 22 года, например там используется useStore вместо useUnit, но в целом это полноценный пример реального кода, которое разрабатывали в прод

Свободно для изучения 🤓

https://github.com/roke-to/roketo-ui

https://github.com/roke-to/roketo-business-ui
👍28🔥12🙈7😐3👎2
Вы можете подписаться на мои списки застаренных репозиториев на гитхабе.
https://github.com/sergeysova

Я регулярно нахожу новые инструменты и добавляю их в списки.

Когда нахожу силы и время, то собираю статьи и репозитории в виде рассылки.
https://news.sova.dev/

Скоро будет новый сезон подборок статей. Обычно я выкладываю их также здесь в Telegram для удобства.
👍18👎10🔥4🤔3😁2
Я уже очень давно не видел, чтобы кто-то верстал интерфейсы на таблицах…
🗿17👍9🤯6🤔21
Ещё один проект в Google Graveyard.

Когда они уже gmail убьют, чтобы Гуглом никто не пользовался?
😢12
Всем привет!
27 мая буду участвовать в круглом столе на конференции Podlodka React Crew. Вместе с Максимом Вишневским и Сергеем Самоховым обсудим архитектуру React-приложений, организацию компонентов и данных, React Compiler, реактивность в React и многое другое.

Также будут выступления по Feature-Sliced Design, миграции проектов и выбору стейт-менеджера.Для моих подписчиков промокод на билеты: react_crew_1_PHXAp9.
🔥20👍73😁2🤩1
Мне позвонил браузер! В каком мире мы вообще живем
😁31👍3😱3
Я уже не первый раз читаю в группах, что ChatGPT довольно тупой и ничего не умеет, даже 4o модель.

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

Но даже такие ограниченные возможности можно весьма неплохо применить при обработке больших объемов текста. Из самых простых кейсов:
1) может извлечь транскрипцию из видео, затем сгенерировать сценарий видео по транскрипции;
2) прочитать документацию open-source проекта и выявить устаревшие неактуальные параграфы и целые статьи;
3) составить расписание на неделю по технике time blocking, через Actions;
4) все что угодно на самом деле, так как можно подключить огромное хранилище данных в виде векторных эмбеддингов, а ChatGPT сам будет искать по нему и извлекать подходящие запросу данные;
5) можно подключить Actions, чтобы ChatGPT мог делать запросы по сети с разрешения пользователя;
6) можно преднастроить ChatGPT и опубликовать в GPTs Store, чтобы каждый раз не копипастить промпты;

Я всё это к чему, ChatGPT конечно ограничен в возможностях, но даже эти возможности довольно легко использовать для упрощения своей жизни, особенно если вы можете писать python/nodejs.

Так как, я использую нейронки в своей жизни для очень разных задач, буду чаще делиться своими юзкейсами.
🤖
👍383👎3🔥3
Приятных выходных!

Можно ожидать появления инстанциируемых моделей в effector. Основная цель — добавление API для создания инстансов моделей для динамичских списков. Получится, например, сделать классный менеджер форм с динамическими полями, а также обобщить написание кода.

API может выглядеть вот так:

const counterModel = model({
props: {},
create() {
const $counter = createStore(0)
const incremented = createEvent()

$counter.on(incremented, (counter) => counter + 1)
return { $counter, incremented }
}
})

const counter = spawn(counterModel)

sample({
clock: incrementClicked,
target: counter.props.incremented,
})


Я думаю, это API должно решить проблему усложнения проекта, когда существующий код внезапно нужно вызывать для элементов списка. Сейчас нужно переписывать на keyval или ему подобные решения, чтобы избежать создания моделей в рантайме.

API model/spawn будет решать этот кейс через создание шаблона модели, а уже затем при отправке в неё ивентов определять в какой именно инстанс прилетит апдейт. В общем, идея простая, но в частности вылезает очень много нестандартных кейсов.

Я всё еще буду продолжать настаивать на том, что создавать инстансы моделей в компонентах — плохая идея. А пока что динамика может быть таким escape hatch для SPA-only приложений.

Публичное обсуждение можно посмотреть в треде:
https://www.tg-me.com/effector_ru/337809

А внутренний документ с некоторыми деталями API:
https://effector.notion.site/Effector-models-5cca5c90410c4707ab1cdaea37e0cbae
🔥20👍6👎5🤔3😁1
Danila_Anisimov_Resume.pdf
98.7 KB
Начнем неделю с резюме разработчика!
Ищите в свою команду frontend-разработчика с образованием магистра машинного обучения и высоконагруженных систем?

Danila Anisimov – разработчик с опытом в создании веб-приложений и AI-решений на React и Next.js.
Крайне рекомендую почитать резюме, возможно именно этот разработчик отлично подойдет вашей команде.

Контакты: https://linkedin.com/in/danila-anisimov | https://github.com/ExLineP
21👎8🙈1
Forwarded from © Как его там… (Dmitry Remezov)
🚦Роутинг

Или как мы топчемся на месте.

Современная веб разработка приучила нас к тому, что "роут" - компонент на какому-то пути.
Все популярные решения (react-router, Next.js, Angular, Vue и пр.), каждый со своими фичами сбоку, обыгрывают именно этот концепт.
Если попробовать дать им общее определение, то будет что-то вроде "Роутинг - механизм связи URL, данных и интерфейса".

Достаточно ли этого?
Действительно ли роутинг в вебе это просто {path, element, loader, …}?
Для начала попробую сформулировать общее определение.

Роутинг в клиентских приложениях - механизм управления переходами между узлами пользовательских сценариев, состоянием этих узлов и их связью с внешним миром.

Покрывают ли это мейнстримные решения?
Безусловно, но настолько изолировано, ограничено и с привязкой к конкретному окружению, что мы не можем связать роутинг с остальной логикой без костылей, а всё, что не заложено в решение (а заложено только `.push("/another/path”)`), будет физически невозможно и придется реализовывать это самим.

Что такое роут?

Роутом, или, как я сформулировал выше, "узлом" может быть любой самодостаточный элемент пользовательского пути, например:
- Любая страница/лейаут
- Виджет выбора эмоджи
- Диалоговое окно
- Полноэкранный поиск (популярный нынче `⌘K`)
- Окно с выбором стикеров в телеграме в виде тултипа, открываемого при наведении

В приложенном коде я наметил возможную реализацию последнего примера, тултипа со стикерами в телеграме, на effector и atomic-router.

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

Неважно открыт тултип или нет, это просто подсказка в интерфейсе, но, когда в нём целый виджет, "неважная деталь реализации" становится ключевой, у виджета появляется роут и логика работы с ним.
И не имеет значения что это - тултип, страница или модалка, это просто способ связи роута и внешнего мира.

Внешний мир

То, что мы привыкли считать неотъемлемыми частями роутинга, - лишь частные случаи.
В мобильных приложениях и виджетах нет URL.
В тестах не нужны компоненты.
В коде большинства продуктов нет голых путей, все работают через какую-то абстракцию по типу .push(routes.product.edit({ id: ... })), ведь строки - неудобный и откровенно дырявый способ идентификации роутов.
Люди делают приложения, роутинг которых почти полностью построен на модалках.

В логике нет путей, в логике нет компонентов, всё это - внешний мир.

Расширяемость

В приложенных схемах я попробовал отразить разницу мейнстримных моделей и общей модели, выведу основные тезисы.

Ограниченная модель:
- Прибита к компонентам и к URL/файлам
- Нет явных сущностей роутов, вся работа через строки
- Любая "фича" - частный случай, а не системное решение (react-router тут явно лидирует)
- Реализует под капотом самопальную реактивную систему

Расширяемая модель:
- Строится поверх общей реактивной системы
- Дает базовые примитивы - явные сущности роутов и основные методы для построения логики
- Все "фичи" и сайд-эффекты (URL / компоненты / ...) реализуются поверх базовых примитивов
- Логика роутинга напрямую связана со всей остальной логикой

Ограниченная модель реализуется поверх расширяемой, но не наоборот.

Мораль

А нет её, в мейнстриме всё плохо, второй десяток лет с завидным упорством запрягаем старую клячу, надеюсь, мы всё же увидим прогресс.
А пока можете попробовать atomic-router.
👍25👎75🔥3
Если вы присутствовали на круглом столе, напишите свой отзыв, пожалуйста.

Ну и здесь можно продолжить дискуссию, написать свои вопросы/комментарии/мнение.

А ещё, если есть желание увидеться со спикерами.
Я в ближайшее время в Армении.
👎16👍125🤩5🤬3
Вместо Next.js я использую vike.dev для SSR проектов.

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

Столкнулся с проблемой: при клиентских переходах не запускается логика effector. При перезагрузке страницы, а именно запуске логики на сервере, всё ОК, но на клиенте при navigate(), пустота. Лишь в логах видно getPageContextFromHooks.

Пошел смотреть в репу:
https://github.com/vikejs/vike/blob/main/vike/client/client-routing-runwww.tg-me.com/getPageContextFromHooks.ts

А там куча комментов от разработчиков. В итоге, за пару минут чтения, а потом и исправления всё пофиксил.
Оказалось, что запуск логики нужно размещать в +onBeforeRender.ts, а не в +onRenderHtml.tsx.

Документация пока что не покрывает вопросы глубокой интеграции с СТМ. Хотя комментарии во внутреннем коде многое объясняют, за что спасибо разработчикам.
👎137👍35😁9😱7🤯6
2025/07/09 02:05:11
Back to Top
HTML Embed Code: