Сова пишет…
3.14K subscribers
345 photos
37 videos
5 files
417 links
Frontend Senior Fullstack Backend Lead и прочие слова.
Изучаю самые современные технологии.
Обучаю разработчиков как стать сильнее — https://frontend.vision.

По коллаборациям и сотрудничеству пишите в сообщения канала!
Download Telegram
Всем привет!
Я уже устал заниматься думскроллингом и постоянно висеть на волоске от нервного срыва. Спасают меня от всего этого два направления: люди и увлечения. С людьми понятно — общаюсь с друзьями, высмеиваем ситуацию, говорим на отвлеченные темы и так далее.

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

Я думаю, многие из вас столкнулись с нехваткой простого человеческого общения в наши времена. Я хочу объединить два спасающих нервы увлечения в одно. Давайте соберемся на стрим в Telegram, прям здесь и поболтаем о технологиях, почти как в старые времена. Дадим сами себе немного времени восстановить силы.

Чтобы задумка реализовалась, мне нужно 2-3 участника помимо меня, а также слушатели и комментаторы. Я с удовольствием приглашу поднявших руки людей и озвучу вопросы из чата. Попробуем провести стрим прям в Telegram
🔥29👍117🤯1
Live stream scheduled for
This media is not supported in your browser
VIEW IN TELEGRAM
Начинаем уже совсем скоро. Кто хочет ввалиться и поболтать, поднимайте лапку.

Прошу не обсуждать политические конфликты. Но может быть их последствия для IT и фронтенда в частности.
Live stream started
Live stream finished (40 minutes)
Сова пишет…
Типы для новой реализации
Продолжаем решать вопрос соединения разделенных модели и страницы в единую работающую стабильно машину.

contract() решал довольно важную задачу, которую можно разделить на 2 фазы: проверка соответствия типов и рантайм соединение.

Как было:
Компонент внутри файла объявлял свой персональный набор сторов и ивентов.
При этом у модели свой набор юнитов, но типы и собственно сами юниты должны совпадать у компонента и модели.

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

Конечно, кажется, что можно просто переложить все общие юниты модели и компонента формирующие собой контракт в отдельный файл, и из него импортировать. Так контракт будет лежать отдельно, но модель и компонент не будут напрямую друг от друга зависеть, к тому же можно будет легко проектировать его заранее, при том, что модификация контракта вызовет сложности, все как надо.

За исключением зависимых сторов:
// contract.ts
export const $loading = createStore(true)

// model.ts
$loading = combine(...)


Проблема появляется, когда нужно отдать в компонент стор собираемый из других сторов. Придется написать forward в модели, что по сути лишний бесполезный код, который придется дополнительно поддерживать. Необходимо решение, которое может обеспечить проверку типизации, рантайм соединение и при этом не будет вынуждать писать лишний код.
🔥4👍1
Сова пишет…
Продолжаем решать вопрос соединения разделенных модели и страницы в единую работающую стабильно машину. contract() решал довольно важную задачу, которую можно разделить на 2 фазы: проверка соответствия типов и рантайм соединение. Как было: Компонент внутри…
Одна из готовых идей — объявлять контракт в виде отдельной сущности, которая может жить самостоятельно, но при этом в рантайме проверяет присоединены ли все указанные поля, вкупе типизацией и защитой от глупых ошибок.

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

Но главная идея избавить разработчиков о необходимости думать о деталях соединения компонента и модели, лишь о том как реализовать задачу бизнеса.
👍5🔥5
Сегодня я увидел статью первого награждения OSScars и меня это крайне вынесло!

Пришлось записать выпуск подкаста, куда включить релиз React18.

https://anchor.fm/under-a-dome/episodes/react18--OSScars-e1gk80e
👍6
Какой контент вы здесь ожидаете?

У меня есть желание постить сюда очень много разного контента, но я впадаю в паралич выбора и в итоге пишу довольно мало. Так уж сложилось, что мне нравится постить то, что полезно и нравится окружающим.

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

Но публичный канал и сообщество помогает гораздо лучше. Мне нужно, чтобы каждый, кто читает это сообщение выделил 3 минуты и написал, что интересно читать в этом канале, прямо в комментариях к посту.

Только не разводите флейм и полемику, выскажите своё мнение, свои интересы, даже если они внезапно радикально отличаются от большинства постов здесь 😊

Спасибо, что читаете и поддерживаете в эти времена! 🧡
1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Я один не знал, что Github теперь позволяет в один клик создать ветку для issue?
👍81
Не пропускайте пачку полезных инструментов и интересных новостей, которые я для вас собрал!

На самом деле, подобная занятость помогает мне держаться подальше от тревожности в эти времена.

news.sova.dev/issues/12-1036554
👍13
В связи с мержем моего ПРа в forest, я написал небольшую статью о том как работает spec и почему вообще такое API пришлось внедрять.

https://dev.to/effector/classlist-api-in-forest-4pm9
👍4
Мне очень интересно наблюдать за этой спецоперацией между рекламодателями и браузерами. Одни пытаются идентифицировать пользовательскую сессию, другие всячески им мешают.

Крайне сильно напоминает войну между авторами вирусов и антивирусами, одни изобретают, другие переизобретают.

Неужели в нашем человечестве всегда будет место людям, которые хотят хакнуть окружающий мир хоть каким-то образом? Как должно измениться наше общество, чтобы война и кража ушли далеко за пределы привычного?

https://t.me/pauline_dev/64
👎3👍21
Сегодня записал и опубликовал выпуск, который готовил уже давно.
Расскажу о том, как же мне живется последние пару месяцев, что помогает справляться и какие практики я нашел для себя

https://anchor.fm/under-a-dome/episodes/ep-e1hig0j
👍3
Буквально, это я последнюю неделю
👍75
effector meetup 3
Открываем набор докладчика. Осталось всего одно место.
Приносите свой доклад к нам в чат.

Если доклада еще нет, но очень хочется появиться на онлайн сцене нашего митапа, приносите своё желание или набор тем, программный комитет поможет составить доклад и расставить в нем акценты.

Митап планируется на середину июня, на онлайн площадке. Если соберется достаточно желающих, соберем вас в оффлайн точке и устроим трансляцию со снеками и afterparty (или придумаем еще что интересное, вдруг кто-то пожелает рассказать свой доклад оффлайн).

Чат для потенциальных докладчиков: https://t.me/+Wh-0z27uTUFlZDMy
👍2
Как же я кринжанул с этих ребят.
На страничке ts-node написано “Thus it is not recommended for production”. Плюс к этому в каждой второй статье где пишут про ts-node кричат “Не надо юзать в проде!”.

Эти же ребята запускали свое Node.js приложение через ts-node в проде. То есть компилировали все все файлики во время запуска приложения. А когда начали бандлить вебпаком, то получили ускорение старта в 80% и написали статью.

Наверное это очень хороший пример, почему все таки стоит прислушиваться к рекомендациям, они не просто так появились.
👍4🔥3