Сова пишет…
Типы для новой реализации
Исходный код функции на данный момент времени лежит здесь:
https://github.com/accesso-app/frontend/blob/8e8607bd245022586633510468c25cb9c53b9559/src/lib/contract/index.ts
https://github.com/accesso-app/frontend/blob/8e8607bd245022586633510468c25cb9c53b9559/src/lib/contract/index.ts
GitHub
frontend/src/lib/contract/index.ts at 8e8607bd245022586633510468c25cb9c53b9559 · accesso-app/frontend
React, effector, SSR. Contribute to accesso-app/frontend development by creating an account on GitHub.
Благодаря effector-reflect мне удалось убрать из кода основного компонента страницы все useStore/useEvent.
Сова пишет…
Благодаря effector-reflect мне удалось убрать из кода основного компонента страницы все useStore/useEvent.
Что это дало?
1. Теперь при изменении любого инпута ререндерится только компонент этого инпута, а не вся страница
2. Я могу назвать каждый компонент индивидуально исходя из его назначения:
вместо:
3. Экономится место в общей структуре страницы. Большую сложную страницу теперь гораздо проще осмотреть целиком, глаз не цепляется за “служебные” пропсы, здесь только визуальные.
“В погоне за декларативностью” мы изобрели компонент Branch, он принимает два child и if:
Первый child рендерится если условие в if истинно, второй если ложно, но его можно не передавать.
reflect позволяет прибиндить условие к Branch сразу же, дав ему имя:
После того, как я описал механику работы Branch, понятна ли структура страницы и смысл всех элементов (не учитывая время на привыкание)?
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 и готовимся анонсировать есть план по поддержке декларативного описания сложных динамических форм.
Метод выбирает компонент из cases соответствующий значению в сторе source, во время рендера привязывает сторы и ивенты к нему.
Оказалось, что похожим образом можно реализовать декларативную замену useList в виде list. Это всё похоже на движение от хуков к декларативности, при этом упрощая использование связки реакт-эффектор.
В формах, которые мы сейчас пишем в Redmadrobot и готовимся анонсировать есть план по поддержке декларативного описания сложных динамических форм.
Заметил, что часто новичкам в Effector хочется понять способ мышления при построении логики.
Предлагаю накидать мне в комментарии примеры логики или небольшие кусочки кода на ридаксе, а я разберу эти примеры кода на стриме, расскажу как мыслить при проектировании.
Предлагаю накидать мне в комментарии примеры логики или небольшие кусочки кода на ридаксе, а я разберу эти примеры кода на стриме, расскажу как мыслить при проектировании.
С подкастом «Сова говорит» все очень тяжело. Мой внутренний перфекционист страдает и кричит, ведь надо сделать хорошо, да еще и объективно. Судя по последнему выпуску, хорошо у меня получается с большим трудом.
Я начинал заниматься подкастом, чтобы выкладывать свои мысли и переживания в исходном виде, но фактически начал их перерабатывать и переписывать формулировки по 10 раз.
Сейчас я попробовал тот самый формат, о котором грезил еще пару лет назад. Записал 40 минут размышлений без профессиональной техники, монтажа и прописанного заранее текста.
https://anchor.fm/under-a-dome
Как вам такой формат?
Я начинал заниматься подкастом, чтобы выкладывать свои мысли и переживания в исходном виде, но фактически начал их перерабатывать и переписывать формулировки по 10 раз.
Сейчас я попробовал тот самый формат, о котором грезил еще пару лет назад. Записал 40 минут размышлений без профессиональной техники, монтажа и прописанного заранее текста.
https://anchor.fm/under-a-dome
Как вам такой формат?
По следам обсуждения в Чате для совят записал спич про http статусы в бизнес-логике.
https://anchor.fm/under-a-dome/episodes/HTTP---graphQL--protobuf-eqaqub
https://anchor.fm/under-a-dome/episodes/HTTP---graphQL--protobuf-eqaqub
Spotify for Podcasters
Транспорт, HTTP статусы, graphQL, protobuf by Под куполом
Нельзя использовать HTTP-статусы для логики. О том, что с этим делать я рассуждаю в выпуске.
Комментарии
Комментарии
Буквально только что разговаривали в Clubhouse о бандлерах и я напрочь забыл название сайта со сравнением их.
Вот глядите: https://bundlers.tooling.report/
Вот глядите: https://bundlers.tooling.report/
tooling.report
Overview | Tooling.Report
A quick and easy way to figure out what the best tool for your next project is, if it’s worth your time to migrate from one tool to another and how to adopt a best practice into your existing code base. Brought to you by web.dev
Ночью не мог уснуть из-за очистки дорог от снега и записал выпуск подкаста «Под куполом» о человеческом сознании.
https://anchor.fm/under-a-dome/episodes/ep-eqgr9l
Подкаст появился на Apple Podcasts и Google Podcasts.
https://anchor.fm/under-a-dome/episodes/ep-eqgr9l
Подкаст появился на Apple Podcasts и Google Podcasts.
Spotify for Podcasters
Каждую ночь мы умираем by Под куполом
Рассуждаю об идее сознания, существует ли, можно ли оцифровать, как доказать, что мир не появился в прошлый четверг.
Комментарии
Комментарии
Сова пишет…
Ночью не мог уснуть из-за очистки дорог от снега и записал выпуск подкаста «Под куполом» о человеческом сознании. https://anchor.fm/under-a-dome/episodes/ep-eqgr9l Подкаст появился на Apple Podcasts и Google Podcasts.
Яндекс.Музыка таки опубликовала тоже
https://music.yandex.ru/album/13932760
https://music.yandex.ru/album/13932760
Яндекс Музыка
Под куполом
Сугубо субъективный взгляд на вещи в формате ночных посиделок • Подкаст • 90 подписчиков
Хочу напомнить, что со мной всегда можно созвониться и получить консультацию по моим профильным темам: фронтенд, архитектура, React, Effector и миграция на новые технологии.
На данный момент мне удобнее всего получать оплату через ВК, но есть и другие варианты, о которых можем поговорить в ЛС.
Ссылка на ВК
Ссылка на BuyMeACoffee
На данный момент мне удобнее всего получать оплату через ВК, но есть и другие варианты, о которых можем поговорить в ЛС.
Ссылка на ВК
Ссылка на BuyMeACoffee
ВКонтакте
«Сова вещает»
Здесь выкладываю свои мысли об устройстве мира, статьи о разработке Frontend, подкаст о программировании и помогаю компаниям и разработчикам решать сложные задачи.
Я ужа достаточно давно исследую архитектуру современного фронтенда, мне интересно с каким эмодзи у вас ассоциируется идея и подход feature-slices?
Голосование в чате
Голосование в чате
Крутая статья погружающая в Rust.
Рекомендую всем, кто давно хотел изучить новый язык, но боялся.
https://fasterthanli.me/articles/a-half-hour-to-learn-rust
Рекомендую всем, кто давно хотел изучить новый язык, но боялся.
https://fasterthanli.me/articles/a-half-hour-to-learn-rust
fasterthanli.me
A half-hour to learn Rust
In order to increase fluency in a programming language, one has to read a lot of it. But how can you read a lot of it if you don't know what it means? In this article, instead of focusing on one or...
Давненько не писал сюда, а сейчас появился существенный повод.
Я уже давно рассказываю об архитектуре frontend-приложений и стараюсь явно показывать свои ошибки и опыт.
Весь этот опыт вылился в подход FeatureSlices, который на данный момент уже претерпел два серьезных изменения. Подход преследует простые цели — стандартизация структуры frontend-приложений. Конечно же, я не один работал над подобным подходом, как и ребята из команды feature-driven. Не так давно мы начали объединять усилия и опыт в одну общую команду и единый подход.
7 марта в 13:00 МСК прошёл первый публичный созвон-стрим, на котором мы постарались обсудить три основные темы:
1. Выбрать финальное название(главный кандидат сейчас — feature-sliced) и подобрать домен
2. Выяснить, что есть feature и entity в рамках методологии
3. Определить roadmap по ближайшим действиям
https://youtu.be/RQBslp8dngA
Я уже давно рассказываю об архитектуре frontend-приложений и стараюсь явно показывать свои ошибки и опыт.
Весь этот опыт вылился в подход FeatureSlices, который на данный момент уже претерпел два серьезных изменения. Подход преследует простые цели — стандартизация структуры frontend-приложений. Конечно же, я не один работал над подобным подходом, как и ребята из команды feature-driven. Не так давно мы начали объединять усилия и опыт в одну общую команду и единый подход.
7 марта в 13:00 МСК прошёл первый публичный созвон-стрим, на котором мы постарались обсудить три основные темы:
1. Выбрать финальное название(главный кандидат сейчас — feature-sliced) и подобрать домен
2. Выяснить, что есть feature и entity в рамках методологии
3. Определить roadmap по ближайшим действиям
https://youtu.be/RQBslp8dngA
YouTube
[feature-sliced] #1 — Committee Setup
На этой трансляции собрались первые члены основной команды feature-sliced, чтобы установить первые правила и определиться куда движется методология.
В рамках методологии feature-sliced я накатал небольшой текст.
Почитайте и напишите свой взгляд на ситуациях, может быть я что-то не учёл.
https://github.com/feature-sliced/wiki/discussions/43
Почитайте и напишите свой взгляд на ситуациях, может быть я что-то не учёл.
https://github.com/feature-sliced/wiki/discussions/43
GitHub
[ARCHIVED] Стимуляция к четкой формулировке задач · feature-sliced/documentation · Discussion #43
Дискуссия закрыта, см. выводы по #74 Из обсуждения в чате, я сделал вывод, что методология должна вынуждать разработчика четко сформулировать задачу которая решается фичами. Зачем? Во время разрабо...