This media is not supported in your browser
VIEW IN TELEGRAM
Настроенные линтеры всегда дадут лишнюю минутку на отдых
Время идет очень быстро и новая версия typescript уже зарелизилась. Теперь можно использовать
using
и decorator metadata
https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/TypeScript
Announcing TypeScript 5.2 - TypeScript
Today we’re excited to announce the release of TypeScript 5.2! If you’re not familiar with TypeScript, it’s a language that builds on top of JavaScript by making it possible to declare and describe types. Writing types in our code allows us to explain intent…
Со дня последнего сообщения прошло уже почти 3 месяца, что говорит от том что автор этого канала решил не постить полезный контент. Хорошо майкрософт все это время не останавливался и готовил новую версию typescript 5.3. Из интересного - на 20% легче и type annotations https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/
Microsoft News
Announcing TypeScript 5.3
Today we’re excited to announce the release of TypeScript 5.3! If you’re not familiar with TypeScript, it’s a language that adds type syntax to JavaScript to bring type-checking. Type-checking can catch all sorts of issues like typos and forgetting to check…
Forwarded from В IT чудес не бывает (Maxim Shulga)
В этот раз тег #holywar сразу в заголовке: можем ли мерять продуктивность?
Один из моих любимых вопросов на собесе: в чем разница между производительностью и продуктивностью. Обычно обширное поле для рассуждений.
А эта короткая старая статья в свое время похоже заложила фундамент того, что я сейчас понимаю под эффективной работой и сеньорностью. Это понимаешь только спустя годы :)
There's No Such Thing As Software Productivity
Тезисы:
• Разработка ПО не является деятельностью, которая обязательно производит что-либо
• То что делают хорошие разработчики - они устраняют проблемы
• Ты не можешь измерить разницу продуктивности между хорошим и плохим разработчиком потому что там нет ничего, что можно измерить
• Если мы смогли решить проблему, вообще ничего не создавая, то все, что мы на самом деле производим - деньги на ветер
PS рубрика "листая дневничок": это я наткнулся на свою запись в блоге про эту статью.
PS2 А хорошо, до сих пор хорошо: "Добавить нечего. Надо просто вбить себе это directly в мозг! Лучше гвоздями." (с) Шульга
#metrics #it_философия
Один из моих любимых вопросов на собесе: в чем разница между производительностью и продуктивностью. Обычно обширное поле для рассуждений.
А эта короткая старая статья в свое время похоже заложила фундамент того, что я сейчас понимаю под эффективной работой и сеньорностью. Это понимаешь только спустя годы :)
There's No Such Thing As Software Productivity
Тезисы:
• Разработка ПО не является деятельностью, которая обязательно производит что-либо
• То что делают хорошие разработчики - они устраняют проблемы
• Ты не можешь измерить разницу продуктивности между хорошим и плохим разработчиком потому что там нет ничего, что можно измерить
• Если мы смогли решить проблему, вообще ничего не создавая, то все, что мы на самом деле производим - деньги на ветер
PS рубрика "листая дневничок": это я наткнулся на свою запись в блоге про эту статью.
PS2 А хорошо, до сих пор хорошо: "Добавить нечего. Надо просто вбить себе это directly в мозг! Лучше гвоздями." (с) Шульга
#metrics #it_философия
Radyology
There's No Such Thing As Software Productivity
Bill Caputo, through repeated conversations we've had, has convinced me of something very surprising. It was something that changed the way I think about the world, and how I do my job. There is no such thing as software productivity....
Forwarded from © Как его там… (Dmitry Remezov)
TypeScript Enums
TLDR: Используйте обычные объекты + as const / satisfies, забудьте про enum.
Енамы - один из немногих активно используемых атавизмов, оставшихся от экспериментов TS над расширением языка и одна из немногих его НЕ type-level фичей.
Область применения понятна - именованная группа констант-токенов, что же с ними не так и что делать?
Не нативная конструкция
TS давно изменил свою стратегию на "Мы не расширяем язык",
Контринтуитивный результат
В рантайме мы получаем специфичный отзеркаленный объект, из которого банально нельзя понять, что ключ, а что значение.
Mind blowing решение, удачи с
const enum просто не работают
Казалось бы, красивое решение - в рантайме инлайним значение и enum испарился, но, помимо того, что это не работает нигде, кроме tsc, у
Это мертворожденная фича.
enum - номинальная типизация, а ВЕСЬ TS - структурная
TS построен на структурной типизации с понятными бенефитами, но
Значения разных енамов не равны ни друг другу, ни литералам, ничему, кроме себя самих (да, изредка мы хотим такое поведение, но, блин, не в енамах).
Это накладывает окраску кода, хардкод, приведение типов и прочие приседания ради классического "шоб TS не ругался".
Обычные объекты + as const
Всё, что дают енамы, можно выразить через обычные объекты +
Всё (в 100 раз больше) 🥹
Можно не создавать лишнюю прослойку c токенами, а сразу писать конфиг.
Можно прозрачно работать как с ключами, так и со значениями.
Можно использовать все возможности TS и почти ничего не терять.
Не теряйте :)
P.S. Ложка мёда: благодаря номинальному дизайну енамов нам легко искать места использования😏
#typescript
TLDR: Используйте обычные объекты + as const / satisfies, забудьте про enum.
Енамы - один из немногих активно используемых атавизмов, оставшихся от экспериментов TS над расширением языка и одна из немногих его НЕ type-level фичей.
Область применения понятна - именованная группа констант-токенов, что же с ними не так и что делать?
Не нативная конструкция
TS давно изменил свою стратегию на "Мы не расширяем язык",
enum
(как и `namespace/experimentalDecorators`) - древний реликт вне современного TS.Контринтуитивный результат
В рантайме мы получаем специфичный отзеркаленный объект, из которого банально нельзя понять, что ключ, а что значение.
Mind blowing решение, удачи с
Object.keys/values
.const enum просто не работают
Казалось бы, красивое решение - в рантайме инлайним значение и enum испарился, но, помимо того, что это не работает нигде, кроме tsc, у
const enum
есть целый спектр фундаментальных дыр (`isolatedModules`, type import
, импорт из библиотек), что подробно описано в хендбуке самого TS: https://www.typescriptlang.org/docs/handbook/enums.html#const-enum-pitfalls.Это мертворожденная фича.
enum - номинальная типизация, а ВЕСЬ TS - структурная
TS построен на структурной типизации с понятными бенефитами, но
enum
, просто берет и работает по-другому!Значения разных енамов не равны ни друг другу, ни литералам, ничему, кроме себя самих (да, изредка мы хотим такое поведение, но, блин, не в енамах).
Это накладывает окраску кода, хардкод, приведение типов и прочие приседания ради классического "шоб TS не ругался".
Обычные объекты + as const
Всё, что дают енамы, можно выразить через обычные объекты +
as const / satisfies
!Всё (в 100 раз больше) 🥹
Можно не создавать лишнюю прослойку c токенами, а сразу писать конфиг.
Можно прозрачно работать как с ключами, так и со значениями.
Можно использовать все возможности TS и почти ничего не терять.
Не теряйте :)
P.S. Ложка мёда: благодаря номинальному дизайну енамов нам легко искать места использования
#typescript
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Отличная статья которая очень доступно показывает, как работает LLM он же Chat GPT https://ig.ft.com/generative-ai/
Ft
Generative AI exists because of the transformer
The technology has resulted in a host of cutting-edge AI applications — but its real power lies beyond text generation
После супер-продолжительного молчания, врываюсь в новый год с новым дизайном блога (кого это интересует O_o) и статьей про то как лучше работать с локаными mobx моделями в react.
RU: https://tyulenit.com/ru/blog/2025-01-17-usereactmodel/
EN: https://tyulenit.com/en/blog/2025-01-17-usereactmodel/
RU: https://tyulenit.com/ru/blog/2025-01-17-usereactmodel/
EN: https://tyulenit.com/en/blog/2025-01-17-usereactmodel/
Tyulenit
Использование локальных mobx сторов в React или нам не нужен useState
Вот и продолжение эпопеи с локальными моделями. Предыдущее решение содержало ряд неприятных недостатков и поэтому встречайте https://github.com/lexich/react-mobx-local-model решение, вообще без недостатков. Библиотека, которая решит все вопросы, особенно если это касается локальных
Ну и конечно небольшие заметки по этой теме.
RU: https://tyulenit.com/ru/blog/2025-01-29-react-mobx-local-model/
EN: https://tyulenit.com/en/blog/2025-01-29-react-mobx-local-model/
mobx
моделей в react
. Мы же все здесь для этого собрались? Правда? 🥹Ну и конечно небольшие заметки по этой теме.
RU: https://tyulenit.com/ru/blog/2025-01-29-react-mobx-local-model/
EN: https://tyulenit.com/en/blog/2025-01-29-react-mobx-local-model/
GitHub
GitHub - lexich/react-mobx-local-model
Contribute to lexich/react-mobx-local-model development by creating an account on GitHub.