Сова пишет…
3K subscribers
373 photos
37 videos
5 files
441 links
Download Telegram
Продолжаю эстафету

Вбиваем промпт и скидываем в комменты

Based on what you know about me from our previous conversations, please draw a picture how in your opinion my life could look like


Странно, что меня нет в кадре, видимо отдыхаю где-то на улице… давно пора.

https://t.me/bearlogin_dev/320
👍13👎7🔥3😁1😡1
Сначала люди в интернетах пишут, что Ruby умер и вообще только легаси на нем.

А потом вижу проект этого года на Ruby on Rails и всё еще радуюсь, как приятно на нем было писать.

https://github.com/maybe-finance/maybe
👍10❤22👎1
В ноябре 2021 я купил предзаказ.
Атмосфера крайне приятная, персонажей озвучили, прокачали удобство.

Легенда. И баги на старте прям как в первой трилогии.
👍44👎43😁12❤5🙈1
React-hooks не отделяют логику от UI

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

Почему? Возьмём useEffect. Этот хук будет вызываться дважды в strict mode, потому что он связан с жизненным циклом компонента. И это не баг, а фича React, спорная конечно, но в результате, любая бизнес-логика внутри такого хука становится заложником жизненного цикла React.

И это только самый наглядный пример! Наверняка вы сами можете привести еще десяток менее очевидных примеров. Чего стоит только каскад ререндеров из-за необходимости указывать dependencies между разными useEffect. Приходится городить решения поверх особенностей реакт и выглядит это совсем не просто.

Из-за этой привязки к React, тестирование также превращается в проблему. Приходится оборачивать тесты в условный act(), или же мокать хуки и поведение React – и всё это только потому, что бизнес-логика не отделена от компонентов.

Можно решить "по-старинке": вынести логику в обычные функции или классы, а хуки использовать только как мост между React и бизнес-логикой. Но тогда мы сталкиваемся с новой проблемой – нужно самостоятельно продумывать реактивность и управление состоянием.

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

Используйте инструменты по назначению!
👍42💯10🔥7😐5
Astro 5 + Vite 6

Из самого интересного:

Content Layer
Позволяет динамически грузить данные для страничек из любых источников. Например из notion или вообще через fetch() откуда угодно. Что круто, так это кеширование.
Когда я трогал beta версию, можно было руками перезапустить выгрузку данных, а потом быстро рендерить уже загруженную инфу.

Server Islands
Пререндерим всё статическое в .html, а динамику из бд можем грузить и рендерить на сервере. Причем только для небольших частей интерфейса.
Нормально реализованные идеи Next.js, без привязки к React!

astro:env
Ну и самая ожидаемая мной фича — безопасное извлечение переменных и секретов.
Описываем все переменные в виде zod-схемы, а затем импортируем из astro:env/server или astro:env/client.
Секреты доступны только на сервере из astro:env/server, а вот переменные окружения доступны в любом окружении при импорте из astro:env/client.

Очень рекомендую почитать релиз ноутс и официальный гайд по Env vars.

SVG Components
В экспериментальном режиме Astro поддерживает импорт SVG как компонентов Astro.
Но не спешите грустить, есть разные варианты взаимодействия. Можно как инлайнить, так и бандлить SVG в спрайты.
👍26❤3
Сова пишет…
Личные консультации по effector, react и FSD! За почти 10 лет коммерческого опыта в веб-разработке, я насобирал внушительный опыт в разных технологиях. Хотя специализируюсь я в React + Effector, готов помочь решить очень разнообразные задачи и ответить на…
Давно не писал о том, что я делаю когда ко мне обращаются за помощью на личных консультациях.

С 2022 года провел 60+ часов консультаций, не очень много, по разным причинам, но это всегда интересное времяпровождение для меня.

Из интересного по моим логам:

Построение структуры фронтенд проектов.
Обсжудаем цели продукта, особенности команды, скопившееся легаси, технический стек, наличие свободного ресурса и исходя из этого строим план модернизации.
Иногда это введение инструментов контроля качества кода, иногда новые практики в команде, чаще настройка CI/CD, реже изменение архитектуры и дата-флоу.

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

React, Effector, FSD, Atomic-Router, Next.js
Конечно же, в основном приходят с вопросами по моему основному стеку. Как реализовать сложную задумку, какой архитектурный подход может лучше сработать, какие практики стоит рассмотреть, да и вообще взгляд на решение со стороны.
Я не часто использую Next.js, но приходится в нем разбираться, иногда запрашивая у клиента время на исследование.

Менторинг, личное развитие, управление временем.
Кроме технических штук, за 12+ лет работы в коммерции, пришлось перепробовать кучу разных практик по управлению своим временем, а также временем команды. Это тоже опыт, который можно из меня вытащить на консультациях.
Построить трек из списка навыков, необходимых современному разработчику, проверить собственные скиллы (я регулярно нанимаю людей в разные компании, могу поднатаскать), найти слабые места и придумать как их прокачать.

Может у вас есть задачи для меня, которые я еще не делал?
Или что-то из списка выше откликается?

В любом случае, приходите @sovasergey
👍255❤3👎2
OpenAI зафигачили новую нишу Pro клиентов за $200 в месяц

Как скоро самые мощные модели у конкурентов будут стоить >$100?
🤯25😁2
difftastic

Это тулза для сравнения исходников через AST-деревья, вместо построчного и посимвольного.

По умолчанию, git воспринимает исходники как строки текста, поэтому перемещение, добавление врапперов или переименования выглядят слишком глобально.
Иногда тяжело понять, поменялась целиком строка или только пару переменных в ней, git подсветит всю строку.

Да, в git есть разные режимы сравнения, как и в VSCode/WebStorm, но они также не учитывают семантику языка.
difftastic исправляет этот недочет.
Его также можно настроить для использования по умолчанию.

Пока что главный минус — отсутствие плагина для VSCode/WebStorm. Но как минимум стоит попробовать его, чтобы понять разницу.


brew install difftastic



# ~/.gitconfig
[alias]
dl = -c diff.external=difft log -p --ext-diff
ds = -c diff.external=difft show --ext-diff
dft = -c diff.external=difft diff
[difftool]
prompt = false
[difftool "difftastic"]
cmd = difft "$MERGED" "$LOCAL" "abcdef1" "100644" "$REMOTE" "abcdef2" "100644"
[pager]
difftool = true
[diff]
external = difft
tool = difftastic
6👍31❤7🔥6🤔1
В nodejs завозят поддержку SQLite

https://nodejs.org/api/sqlite.html
1🔥40🤷‍♂9✍4❤2👍1
Ну действительно NEW MERGE EXPERIENCE ✨
😐17🤔7😁2
Раз уж и сюда засунули Wrapped 2024

Что у вас?
🤩6
Две игры вышли в 2024 году:
STALKER Heart of Chornobyl — 153GB
Sons of the Forest — 9GB

Графоний и оптимизации сами сравнить можете.
Сталкер на днях получил крупный патч размером 120GB.
😁26👎7🤯7👍2
Я участвую в программном комитете Podlodka React Crew!

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

https://docs.google.com/forms/d/e/1FAIpQLSdkD0nx4U0IEoQbVnS6_FmRVJfpbiWCYsTbLkexZShTKVscJw/viewform

Кстати, среди проголосовавших до 17:00 по МСК 26 декабря ребята разыграют билет на новый сезон!
🔥22👍10👎3
Всех с наступающим и наступившим!
❤43🎉26🎄8👎5👍3
Раньше, я всем советовал Spark Mail App.

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

Из каждой дырки торчит кнопка AI, которая открывает модалку с покупкой подписки.
Очень-очень много багов. Даже сайдбар багует так, что иной раз помогает только перезагрузка приложения или даже переустановка.

Мне очень нравилось это приложение большим количеством кастомизации, синхронизацией между девайсами, а также поддержкой кучи провайдеров.

Есть например, SuperHuman, так он только Google и Outlook поддерживает, еще и ТОЛЬКО по подписке, что кринж.

У меня 5 email'ов от разных провайдеров, мне не подходит пользоваться web-приложениями КАЖДОГО провайдера.

Apple Mail не имеет даже малую часть кастомизации Spark.

Эх, это было лучшее приложение, но его убили((
Какие альтернативы?
🤷‍♂5👍3👎3
Сова пишет…
Если вы пользуетесь Godaddy, лучше мигрировать настолько быстро насколько возможно
Вброшу еще немного инфы

Чуваки из godaddy настолько безумны, что банят тупо всех, даже своих старых клиентов
1🙈7❤2😁2🌚2🔥1