Effector news
772 subscribers
90 photos
361 links
Новости о релизах экосистемы effector, обзор типовых задач
Download Telegram
eslint-plugin-effector 0.15.0

- новое правило require-pickup-in-persist, чтобы предотвратить проблему с неочевидным восстановлением значений сторов в effector-storage при использовании скоупов с 23й версии эффектора
- добавлена поддержка Node.js 22, которая перешла в Active LTS
🔥6
@grlt-hub/app-compose

Front-end приложения состоят из множества компонентов, и самая сложная часть — это связи между ними.

Компоненты приложения зависят друг от друга как явно, так и неявно, что особенно усложняет управление, когда нужно включить или отключить их по фича-тоглу. При этом необходимо уметь контролировать всю систему в явном виде, чтобы гарантировать её корректную работу и прогнозируемость поведения.

@grlt-hub/app-compose автоматически управляет порядком запуска компонентов приложения, обеспечивая их корректное взаимодействие. Вам не нужно думать о том, в каком порядке их запускать или как настроить явный доступ одного компонента к другому — всё становится прозрачным и управляемым.

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

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

Хотите упростить модульную архитектуру? Попробуйте @grlt-hub/app-compose.

https://grlt-hub.github.io/app-compose/

https://github.com/grlt-hub/app-compose

Автор @binjospookie
10🔥165👍22
Forwarded from Viktor Pasynok
Вышла версия 1.4.0

В конфиг compose.up добавил опциональный onFail чтобы можно было обрабатывать ошибки поднятия контейнеров

import { compose, createContainer } from 'app-compose';

const dependency = createContainer({
id: 'dependency',
start: () => {
throw new Error('Error in dependency start');
},
});

const feature = createContainer({
id: 'feature',
dependsOn: [dependency],
start: () => ({ api: null }),
});

await upFn([dependency, feature], { onFail: console.error });

// { id: 'dependency', error: Error('Error in dependency start') }
// { id: 'feature', error: Error('Strict dependency failed') }
🔥64❤‍🔥1
effector-react 23.3.0

Добавлена поддержка react 19
10👍19🔥7🎉3
вышла @withease/i18next версии 24 с поддержкой i18next версии 24

https://withease.effector.dev/i18next/

Гайд по миграции: https://www.i18next.com/misc/migration-guide
🔥13
effector 23.3.0

- Улучшены сообщения об ошибках для skipVoid и store without sid: теперь по стектрейсу видно в каком сторе произошло исключение, что помогает быстрее найти и исправить его поведение
- Добавлена поддержка произвольного количества аргументов в колбэк scopeBind. Автоматически позволяет передать в reflect bind колбэки с числом аргументов больше одного
- Исправлено поведение clearNode в большом ряде ситуаций при работе с withRegion


Мы продолжаем активную работу над моделями и новым мажорным релизом. Данный минорный релиз потребовался чтобы позволить разрабатывать MVP моделей поверх 23 версии не углубляясь в эффективную реализацию. Разработка будет проходить в этом репозитории. Stay tuned!
🔥17👍16
🚀 app-compose v2🚀

Мы уже рассказывали о v1, а теперь готовы представить вторую версию, в которой учли ваш фидбек и добавили новые фичи для ещё большего контроля и прозрачности.

Что нового в app-compose v2?

- domain для каждого контейнера — добавляет контекст и упрощает группировку.
- Стадии запуска — управляйте приоритетом запуска контейнеров, задавая порядок.
- Строгие зависимости по умолчанию — теперь подключение обязательных зависимостей становится ещё проще.
- Команда diff — показывает, какие контейнеры должны были запуститься и что фактически запустилось.
- Новый функционал graph:
— Визуализация системы на уровне контейнеров.
— Анализ зависимостей: кто зависит от кого (включая транзитивные связи).

Документация стала ещё проще:
Добавили аналогии с готовкой, чтобы быстрее понять, как работает app-compose.
💡 А ещё появились интерактивные песочницы — от теории сразу к практике!

app-compose v2 — ещё больше контроля, ещё меньше боли при работе с зависимостями 🎉
5🤔3
Forwarded from Сова пишет…
В виду популяризации нейросетей, а также инструментов разработчиков с AI, я добавил в effector.dev несколько подходов, которые облегчат работу.

Стоит начать с коллекции всей документации в виде единого файла. Передаете любую ссылку из списка ниже в ваш ChatGPT/Gemini/Grok и задаете вопросы.
Изначальная задумка отсюда:
https://scalabledeveloper.com/posts/llms-txt-with-astro/

В effector доступно несколько документов:
https://effector.dev/docs/llms.txt
https://effector.dev/docs/llms-full.txt

А также я сделал отдельно локализованные версии:
https://effector.dev/en/llms-full.txt
https://effector.dev/ru/llms-full.txt
https://effector.dev/uz/llms-full.txt
Не вся документация переведена полностью, поэтому недостающие статьи дополняются английским исходником.

Из этих файлов вычищены внутренние ссылки, ID-заголовков, а также вырезан некоторый кастомный markdown синтаксис. Это уменьшает количество токенов.
5🔥2463👍1
Вакансия на эффекторе
фулл-тайм
удаленка
$4000 USDT

Мы разрабатываем web игру в формате Telegram Mini/Web App.
Проект уже готов на 70%, нужно постараться в короткие сроки вкатиться в код и продолжить на том же стеке. С онбордингом, само собой, поможем.

Стэк:
• typescript
• react + vite + tailwind
effector на высоком уровне
• опыт разработки telegram web apps

Плюсом будет:
• Опыт работы с canvas (на проекте много 2d графики)
• Опыт в разработке веб игр (не кликеры)

Мы предлагаем:
• работу из любой части мира, рабочее время +- мск
• по большей части гибкий график, самостоятельное распределение задач и времени
• зп до $4000 со старта, в зависимости от навыков
• выплаты в USDT
• рост зп по мере развития проекта

Писать @sbeben
🔥19
Forwarded from Сова пишет…
В документацию effector.dev подъехал ПР

Теперь в навигации есть красивый переключатель разделов, спасибо @senzujuju

https://github.com/effector/effector/pull/1232
🔥184
@effector/reflect 10.0.0

Релиз с фиксами типов 🪖

⬆️ Эффектор-Ивенты с void`-типом пейлоада теперь можно прокидывать во всякие `onClick - за фикс спасибо @kireevmp!

⬆️Починили совместимость с компонентами Mantine UI

В этой библиотеке очень хитрая реализация полиморфных компонентов, котоая ломалась сама об себя, если пытаться прокинуть её в reflect

В этом обновлении типы изменены так, чтобы быть совместимыми с Mantine UI, но есть ньюанс:
https://reflect.effector.dev/docs/reflect#typescript-and-polymorphic-types-caveat

TL;DR - нужно явно указывать в компонентах Mantine, какой тег должен использоваться, без этого полиморфизм типов Mantine всё равно оказывается несовместим с reflect


const ReflectedMantineButton = reflect({
view: MantineButton<'button'>, // <- notice explicit component type in the "<...>" brackets
bind: {
children: 'foo',
onClick: (e) => {
clicked(e.clientX);
},
},
});


⬆️Добавлена поддержка Реакт-19 (но и Реакт-18 тоже ещё поддерживается в этом релизе)

Тут также потребовались изменения в типах


💔Мажорное изменение - вывод типов для .prepend больше не поддерживается

Теперь, если вам нужен какой-либо маппинг пейлоада - просто пробрасывайте обычный коллбэк

onChange: (event) => changed(event.target.value)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥112
Вакансия на эффекторе

Frontend Developer в быстрорастущий AI продукт (70% MoM)

О нас:
BigMotion.ai — Сервис для создания видео с помощью AI
Мы разрабатываем решения для автоматизированного создания контента для соцсетей и генерации видео с участием виртуальных AI-персонажей.

Территориально и официально находимся в EU, наш основной рынок - США и Европа

Сейчас мы в поиске Frontend инженерa для разработки новых фичей и сервисов

Требования
- Обязательно: Плотный опыт работы в связке TypeScript, React, Effector
- Опыт работы с Feature Sliced Design (FSD)
- Понимание принципов SOLID

Будет плюсом
- Опыт работы с mantine.dev
- Опыт работы с Firebase/Supabase
- Опыт работы с высоконагруженными системами

Технический стек
- JavaScript (TypeScript)
- React/Effector/Mantine
- Feature Sliced design (FSD)
- OpenAPI
- Node.js
- Amazon AWS
- Cloudflare
- Supabase

Основные задачи
- Разработка новых фичей (frontend, написание бизнес-логики на Effector)
- Поддержка разработанных фичей (улучшения или фикс багов)
- Большим плюсом будет погруженность и участие в развитии продукта, предложение улучшений ☄️

Условия
Зарплата: 1400$ - 3000$ (В зависимости от грейда)
Формат работы: Удаленно
Занятость: Full-time или part-time с переходом на full-time
Оплата: выплата в любую страну на ИП, карту или альтернативными способами
- Регулярный пересмотр зарплаты в зависимости от результатов
- Минимум бюрократии, возможность напрямую влиять на продукт и его развитие

Команда
- 2x Front-end инженера
- 2x Full-stack инженера
- 1x Backend инженер
- 1x Prompt Engineer
- Сильный маркетинг отдел, включая Head of User Acquisition, прошлый проект которого вырос 0 до $500к MRR за 6 месяцев.

Если вас заинтересовало, делитесь своими резюме/ссылками на Linkedin/GitHub с @andykozik

———

От комитета эффектора: мы иногда выкладываем вакансии на эффекторе в канал. Обещаем часто не публиковать, денег за это не берем, наша цель — рост сообщества, всё делаем ради вас ♥️
👍12🔥65🤔4👎2
@effector/next 0.7.1

Патч-релиз:
🛠 Расширили рейндж поддерживаемых версий Реакта до ^19.0.0

Реакт-18 также продолжает поддерживаться
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥6
Ищем middle+/senior фронт разработчика в команду, которая занимается разработками видео-сервисов

Наш стек:
- SolidJS (React)
- TypeScript
- Effector, RxJS;
- Lingui, Linaria, Webpack, Rspack, ArkUI и тд

Что нужно делать:
- Разрабатывать и поддерживать клиентскую бизнес-логику (написание бизнес-логики на Effector);
- Принимать участие в проектировании нового функционала;
- Анализировать и увеличивать производительность;
- Заниматься адаптивной и кросс-браузерной вёрсткой;
- Обеспечивать и улучшать качество существующей кодовой базы.

Какой опыт и знания нужны:
- Знание SolidJS или React для создания пользовательских интерфейсов;
- Опыт разработки и построения архитектуры современных web-приложений от 4-х лет;

Будет плюсом, если:
- Имеете опыт работы с Effector;
- Имеете опыт работы с Feature Sliced Design (FSD).
- Работали с Media Source Extensions (MSE);
- Работали с HLS/DASH;
- Работали с видео/аудио;
- Писали различные утилиты для webpack, npm-пакеты и тд.

Если вас заинтересовало, пишите - @Sashaithr
🔥9👎21🤬1
UPD
Йоу, йоу!

Ищем фронтендера в команду Space307.

Мы — международная финтех-компания полного цикла. В нашей команде 280+ сотрудников в области разработки и маркетинга.
За 10 лет мы прошли путь от стартапа до компании, которая запускает масштабные продукты на международный рынок.

Чем предстоит заниматься:
> Разрабатывать и поддерживать внутренние продукты компании
> Прорабатывать задачи совместно с UX-специалистами и бэкенд-разработчиками
> Разрабатывать функционал и обеспечивать высокое качество кода
> Участвовать в проектировании архитектуры приложений
> Проводить и проходить code review.

Мы ждём, что ты:
> Имеешь от четырёх лет коммерческого опыта в продуктовой компании и от одного года коммерческого опыта работы с Effector
> Обладаешь опытом применения Feature-Sliced Design (FSD)
> Уверенно владеешь TypeScript и понимаешь SemVer
> Работаешь с React и знаешь как добиваться минимального количества рендеров
> Пишешь юнит-тесты
> Самостоятельный, но чувствуешь когда лучше спросить совет
> Можешь работать в продуктовой команде единственным фронтенд-разработчиком или с напарниками.

Стек:
> TypeScript, React, Effector, Vitest, grlt-hub

Что тебя ждёт в Space307:
> Удалёнка без границ. Работай откуда угодно, начинай день, когда удобно — до 12:00 (GMT+3).
> Достойная зарплата. Следим за рынком и делаем всё, чтобы спейсовцы были оценены справедливо. Оплата: мы договариваемся об удобном формате для кандидата в зависимости от его локации.
> Много движа. Мастер-классы, тимбилдинги, тусовки, корпоративы — выбирай, что по душе.
> Поддержка твоего здоровья. Компенсация спорта, инвентаря и возможность оформить медицинскую страховку
> Рост и развитие. Обучение, конференции — за наш счёт.
> Иностранные языки и хобби для души. Прокачивай навыки и занимайся любимым делом.
> Настоящая команда. Честный фидбэк, поддержка и общий драйв.

📌 Откликайся на вакансию по ссылке
📩 Или пиши напрямую Даше
👍4👎1🔥1
atomic-router v0.12

- Экспортирован тип HistoryRouter
- Минимальная версия Node.JS поднята до v18.x

atomic-router-react v0.12

- Минимальная версия Node.JS поднята до v18.x
- Минимальная версия atomic-router теперь v0.12.0
- Удален atomic-router-react/scope, так как effector-react теперь работает со Scope из коробки
- Добавлен параметр replace в Link — <Link replace>
- Добавлена поддержка React 19

P.S.
С точки зрения поведения брейкингов не было.
Все найденные баги репортите в репозитории пожалуйста.
В ближайшее время занимаюсь фиксами всех уже найденных.
🔥16
effector 23.4.0

Babel/SWC plugin

- Добавлена поддержка hmr. Большое спасибо @movpushmov и @kireevmp за реализацию 🔥
- Добавлена поддержка опции transformLegacyDomainMethods для выключения трансформации методов доменов
- Добавлена опция forceScope чтобы проставлять forceScope в реакт-хуки автоматически
- Пакет effector-action добавлен в дефолтные factories
- Добавлена поддержка tagged template фабрик (например как patronum format)

Типизация

- Исправлен ряд проблем в типах split. Огромное спасибо @den_churbanov за то что улучшил эти необъятные типы 💪
- Добавлена пропущенная опция skipVoid для domain.createStore

Рантайм

- Улучшена поддержка поля name в sample, теперь его можно задавать в любых сэмплах и видеть имя связи в patronum debug с опцией trace
12🔥22👍532👎1
Forwarded from Сова пишет…
Релиз получил название Atlas
🤔3
Видео: Effector + Next.js

Участник сообщества сделал видео по интеграции эффектора и next js 🔥

Рассмотрел такие темы как установка SID, создание фабрик, получение данных на строне серевера(SSR), серверные функции, Suspense

Все благодарности автору @domosedov 👍
🔥40❤‍🔥1👍1
Всем привет!

@movpushmov осенью выступает на HolyJS с докладом «Почему вам (скорее всего) нужен эффектор». Поговорим о том, почему во фронтенде всё сложнее управлять состоянием и какие трудности это создаёт.

Покажет, чем Effector отличается от других инструментов и как он помогает проще решать даже запутанные задачи. Будем рады видеть вас на докладе!
🔥41👎6😍3❤‍🔥21
@effector/next@0.7.2

🔧 - Починили работу сторов с кастомными сериализаторами в @effector/next

Спасибо @domosedov за баг-репорт! ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6