✨ История одного бага
Редкие баги, которые воспроизводятся раз в сто попыток — настоящая головная боль. Они появляются в самый неподходящий момент, исчезают при попытке показать коллегам и возвращаются снова, когда код уже попал в продакшн.
Ростислав Терехов рассказал историю о легаси проекте на Angular 11, в котором контент приложения иногда смещался влево за навигационную панель, и поделился подробным расследованием причин этой проблемы.
👉 https://habr.com/ru/articles/935972/
Редкие баги, которые воспроизводятся раз в сто попыток — настоящая головная боль. Они появляются в самый неподходящий момент, исчезают при попытке показать коллегам и возвращаются снова, когда код уже попал в продакшн.
Ростислав Терехов рассказал историю о легаси проекте на Angular 11, в котором контент приложения иногда смещался влево за навигационную панель, и поделился подробным расследованием причин этой проблемы.
👉 https://habr.com/ru/articles/935972/
❤7👍4🔥3
✨ Профессиональная обработка ошибок в TypeScript
Ошибки в приложениях неизбежны, но подход к их обработке кардинально влияет на качество кода.
Традиционный throw/try-catch в языках с непроверяемыми исключениями может скрывать возможные ошибки от сигнатур функций, что усложняет их отслеживание и делает поток выполнения менее очевидным.
Функциональный подход с типами вроде Result<Ok, Error> явно описывает возможные ошибки в типах возврата, что упрощает анализ и обработку ошибок, хотя и может увеличить многословность кода.
👉 https://habr.com/ru/companies/piter/articles/935278/
Ошибки в приложениях неизбежны, но подход к их обработке кардинально влияет на качество кода.
Традиционный throw/try-catch в языках с непроверяемыми исключениями может скрывать возможные ошибки от сигнатур функций, что усложняет их отслеживание и делает поток выполнения менее очевидным.
Функциональный подход с типами вроде Result<Ok, Error> явно описывает возможные ошибки в типах возврата, что упрощает анализ и обработку ошибок, хотя и может увеличить многословность кода.
👉 https://habr.com/ru/companies/piter/articles/935278/
🔥3👏2👍1👎1
✨ Поиск на RxJS и Taiga UI
Когда портал компании растет, одного источника поиска может быть недостаточно.
Антон Марченко поделился опытом создания гибкого поискового компонента, который работает с множественными источниками данных одновременно. Главная фишка — возможность динамически добавлять новые поисковые сервисы через конфиг.
👉 https://habr.com/ru/companies/tbank/articles/936794/
Когда портал компании растет, одного источника поиска может быть недостаточно.
Антон Марченко поделился опытом создания гибкого поискового компонента, который работает с множественными источниками данных одновременно. Главная фишка — возможность динамически добавлять новые поисковые сервисы через конфиг.
👉 https://habr.com/ru/companies/tbank/articles/936794/
👍8💩6🔥2❤1🤡1
✨ Для чего нужны enum в TypeScript
Если вы только начинаете изучать TypeScript, enum — один из базовых инструментов, которые стоит освоить. Он позволяет создать фиксированный набор значений с защитой от случайных изменений на уровне типизации.
Хотя в статье и говорится, что его изменить нельзя, но технически enum можно модифицировать, например, через Object.defineProperty.
👉 https://habr.com/ru/articles/936650/
Если вы только начинаете изучать TypeScript, enum — один из базовых инструментов, которые стоит освоить. Он позволяет создать фиксированный набор значений с защитой от случайных изменений на уровне типизации.
Хотя в статье и говорится, что его изменить нельзя, но технически enum можно модифицировать, например, через Object.defineProperty.
👉 https://habr.com/ru/articles/936650/
👍4✍1👏1👌1🤡1
✨ 5 полезных utility-типов в TypeScript
Часто стандартных возможностей TypeScript не хватает для решения специфических задач.
Статья показывает, как с помощью кастомных utility types можно элегантно решать повседневные проблемы: от управления состоянием асинхронных операций до создания типобезопасных URL.
👉 https://www.angularspace.com/5-typescript-utility-types-you-cant-live-without/
Часто стандартных возможностей TypeScript не хватает для решения специфических задач.
Статья показывает, как с помощью кастомных utility types можно элегантно решать повседневные проблемы: от управления состоянием асинхронных операций до создания типобезопасных URL.
👉 https://www.angularspace.com/5-typescript-utility-types-you-cant-live-without/
👍3👎2🎉2🔥1