Сова пишет…
3.09K subscribers
304 photos
35 videos
4 files
369 links
Frontend Senior Fullstack Backend Lead и прочие слова.
Изучаю самые современные технологии.
Обучаю frontend-разработчиков как стать сильнее.

Написать по коллаборациям и сотрудничеству: @sergeysova_assistant
Download Telegram
Ошибка при неправильной реализации контракта
Благодаря effector-reflect мне удалось убрать из кода основного компонента страницы все useStore/useEvent.
Сова пишет…
Благодаря effector-reflect мне удалось убрать из кода основного компонента страницы все useStore/useEvent.
Что это дало?
1. Теперь при изменении любого инпута ререндерится только компонент этого инпута, а не вся страница
2. Я могу назвать каждый компонент индивидуально исходя из его назначения:
<Email placeholder />
вместо:
<Input type=“email” value={email} onChange={emailChanged} placeholder />
3. Экономится место в общей структуре страницы. Большую сложную страницу теперь гораздо проще осмотреть целиком, глаз не цепляется за “служебные” пропсы, здесь только визуальные.

“В погоне за декларативностью” мы изобрели компонент Branch, он принимает два child и if:
<Branch if={true}>
<First />
<Second />
</Branch>

Первый child рендерится если условие в if истинно, второй если ложно, но его можно не передавать.

reflect позволяет прибиндить условие к Branch сразу же, дав ему имя:
const BranchIfEmailValid = reflect({
view: Branch,
bind: {
if: every({
stores: [$isEmailValid, $error.map((err) => err === null)],
predicate: true,
}),
},
});


После того, как я описал механику работы Branch, понятна ли структура страницы и смысл всех элементов (не учитывая время на привыкание)?
Увидел, что все популярные каналы рассказывают о какой-то одной теме.
Думаю пришло время писать сюда целенаправленно, а не вкидывать всё, что приходит в голову.
Какая тема наиболее интересна большинству? Для более узкой аудитории заведу отдельный канал.
Final Results
65%
Frontend, архитектура, боль
13%
Rust, эксперименты, postgres
1%
Выкладки о личном
21%
(Оставить как есть)
This media is not supported in your browser
VIEW IN TELEGRAM
Немного боли благодаря фронтенду
Сейчас реализовал наивную версию match для effector/reflect.

Метод выбирает компонент из cases соответствующий значению в сторе source, во время рендера привязывает сторы и ивенты к нему.

Оказалось, что похожим образом можно реализовать декларативную замену useList в виде list. Это всё похоже на движение от хуков к декларативности, при этом упрощая использование связки реакт-эффектор.

В формах, которые мы сейчас пишем в Redmadrobot и готовимся анонсировать есть план по поддержке декларативного описания сложных динамических форм.
Заметил, что часто новичкам в Effector хочется понять способ мышления при построении логики.

Предлагаю накидать мне в комментарии примеры логики или небольшие кусочки кода на ридаксе, а я разберу эти примеры кода на стриме, расскажу как мыслить при проектировании.
С подкастом «Сова говорит» все очень тяжело. Мой внутренний перфекционист страдает и кричит, ведь надо сделать хорошо, да еще и объективно. Судя по последнему выпуску, хорошо у меня получается с большим трудом.

Я начинал заниматься подкастом, чтобы выкладывать свои мысли и переживания в исходном виде, но фактически начал их перерабатывать и переписывать формулировки по 10 раз.

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

https://anchor.fm/under-a-dome

Как вам такой формат?
Ну что. Давайте потестируем ваш ClubHouse
Создаю организацию в Github, а там капча нового типа.

Прямо в сердце!
Буквально только что разговаривали в Clubhouse о бандлерах и я напрочь забыл название сайта со сравнением их.

Вот глядите: https://bundlers.tooling.report/
Хочу напомнить, что со мной всегда можно созвониться и получить консультацию по моим профильным темам: фронтенд, архитектура, React, Effector и миграция на новые технологии.
На данный момент мне удобнее всего получать оплату через ВК, но есть и другие варианты, о которых можем поговорить в ЛС.

Ссылка на ВК
Ссылка на BuyMeACoffee
Я ужа достаточно давно исследую архитектуру современного фронтенда, мне интересно с каким эмодзи у вас ассоциируется идея и подход feature-slices?

Голосование в чате
Давненько не писал сюда, а сейчас появился существенный повод.

Я уже давно рассказываю об архитектуре frontend-приложений и стараюсь явно показывать свои ошибки и опыт.
Весь этот опыт вылился в подход FeatureSlices, который на данный момент уже претерпел два серьезных изменения. Подход преследует простые цели — стандартизация структуры frontend-приложений. Конечно же, я не один работал над подобным подходом, как и ребята из команды feature-driven. Не так давно мы начали объединять усилия и опыт в одну общую команду и единый подход.

7 марта в 13:00 МСК прошёл первый публичный созвон-стрим, на котором мы постарались обсудить три основные темы:

1. Выбрать финальное название(главный кандидат сейчас — feature-sliced) и подобрать домен
2. Выяснить, что есть feature и entity в рамках методологии
3. Определить roadmap по ближайшим действиям

https://youtu.be/RQBslp8dngA