Typesafe & Sound – Telegram
Typesafe & Sound
1.24K subscribers
6 photos
46 links
Типы, фронтенд, DX и программирование в целом. Occasional music
Download Telegram
Никита также написал офигенную статью
Читаю "45 татуировок менеджера"
Boy, oh, boy, that did not fucking age well

П.С. Теперь вот эти исполнители приказов убивают людей и оправдывают войну

П.П.С. Книжка вообще хорошая, но вот этот эпиграф проверку временем не выдержал...
👎16👍7🤔2
Пару-тройку месяцев назад я посмотрел вот этот видос https://youtu.be/PZ7lDrwYdZc
Сначала я вообще его не хотел смотреть ибо очень скептически отношусь к таким заявлениям про в 40 раз лучше
Но в рамках очередного праздного шатания по ютубу всё-таки согласился
Подумал что видос в целом неплохой и можно что-то из него извлечь

Первое с чего я начал это стал читать non-fiction (не художественную литератуту) после обеда
Таким образом я наконец-то дочитал "45 татуировок менеджера" и решил что раз это так клёво работает то надо бы и книжку прочитать

Сегодня я скажу что у меня прямо поменялась жизнь, я стал гораздо более продуктивен и при этом менее застрессован. Но раз уж мы тут о программировании, то вот уже три недели я каждый workday уделяю время огромной задаче по миграции react-pixi на react 18 (до этого было урывками и неконсистентно)
https://github.com/inlet/react-pixi/pull/338
А работы там была куча

* Как минимум просто разобраться как это сделать, что надо менять, а что нет
Сильно помогло чтение кода react-three-fiber и его миграции https://github.com/pmndrs/react-three-fiber/pull/1630/files

* Переехать на storybook потому что это пока вроде единственный тул который умеет стори рендерить новым реактом (подскажите в комментах если есть еще, я еще смотрел на docusaurus)
Также он поддерживает MDX, а так как раньше был docz (который уже скорее мертв чем жив) который его юзал то это сильно облегчает миграцию

* Пофиксить тонну тестов ибо оно всё поломалось. Я знаю по какой причине всё поломалось (надо всё обертывать в act, например вот https://github.com/inlet/react-pixi/pull/338/commits/f82bee25e48da31f2c9c1f8b3f70f17adf10a463), но непонятно почему это работало раньше
Энивей, react-three-fiber опять выручил и я смотрел на устройство @react-three/test-renderer и его миграции
https://github.com/pmndrs/react-three-fiber/pull/1891/files

Сейчас там уже осталось обновить стори и доки, а так уже почти (да, я понимаю что от "уже почти" до готово еще может быть долгий путь) работает. Такие дела
👍8🔥3
Почему я хочу сплит клаву
👍7😁4🔥2
https://devblogs.microsoft.com/typenoscript/announcing-typenoscript-4-9-rc/#the-satisfies-operator
это прямо пушка-бомба
не могу уже вспомнить конкретно но регулярно наталкивался на подобный кейс, хочется и получить какие-то гарантии и не мешать выводу типов делать свою работу
приходилось костылить дженерики не по делу
🔥6👍2
https://devblogs.microsoft.com/typenoscript/announcing-typenoscript-4-9-rc/#unlisted-property-narrowing-with-the-in-operator
но это еще круче
вспоминаю как несколько лет назад рассказывал что unknown это прикольно, но всё равно приходится делать всякие ужимки если ты хочешь проверить его нормально как объект
теперь наконец-то можно сузить до объекта а потом довыяснить поля!
👍8🔥5
как-то пропустил что в 4.8 появилась вот такая штуковина
https://www.typenoscriptlang.org/docs/handbook/release-notes/typenoscript-4-8.html#exclude-specific-files-from-auto-imports
последнее время был такой кейс, есть враппер над sentry, и есть файл который умеет этот враппер лениво инициализировать как динамический модуль
публичные контракты намеренно одинаковые для облегчения их расширения, примерно вот в таком стиле
export const sentryCaptureLinkedException: typeof import("./SentryWrapper").sentryCaptureLinkedException =
(...args) => sentryWrapper?.sentryCaptureLinkedException(...args);

ну и тс при написании назойливо предлагает не тот импорт который надо
частично порешали через eslint, но всё равно неудобно
"no-restricted-imports": [
"error",
{
paths: [
{
name: "./SentryWrapper",
message: "Please use SentryLazy",
},
],
},
],


штука в 4.8 зарешала
👍5🔥21