✨ Нативные Observable уже в Chrome
В Chrome 135 появился Observable API — удобный способ обработки асинхронного потока событий. Это не просто альтернатива RxJS, а полноценная интеграция в Web API.
Главное преимущество — интеграция с EventTarget: метод when() возвращает Observable, который представляет собой улучшенную версию addEventListener().
С ним обработка событий в DOM выглядит так:
Больше подробностей можно прочитать здесь, а RxJS 8 теперь будет двигаться вперед с учетом этих изменений.
👉 https://dev.to/this-is-angular/ng-news-2515-native-observables-3ea7
В Chrome 135 появился Observable API — удобный способ обработки асинхронного потока событий. Это не просто альтернатива RxJS, а полноценная интеграция в Web API.
Главное преимущество — интеграция с EventTarget: метод when() возвращает Observable, который представляет собой улучшенную версию addEventListener().
С ним обработка событий в DOM выглядит так:
el.when('click').subscribe(console.log)
Больше подробностей можно прочитать здесь, а RxJS 8 теперь будет двигаться вперед с учетом этих изменений.
👉 https://dev.to/this-is-angular/ng-news-2515-native-observables-3ea7
🔥33👍31😱5
✨ RxJS для новичков
Хотите укротить асинхронность в JavaScript, но тонете в терминах вроде mergeMap и forkJoin?
Эта статья в трех частях раскроет секреты реактивного программирования, чтобы вы с нуля начали писать оптимизированный код для сложных приложений.
👉 https://habr.com/ru/articles/890862/
Хотите укротить асинхронность в JavaScript, но тонете в терминах вроде mergeMap и forkJoin?
Эта статья в трех частях раскроет секреты реактивного программирования, чтобы вы с нуля начали писать оптимизированный код для сложных приложений.
👉 https://habr.com/ru/articles/890862/
👍9🔥3🤣2
✨ Angular proxyConfig
Когда Angular-приложение на локалке не может достучаться до бэкенда из-за ошибок CORS, большинство новичков теряются. Но есть элегантное решение — proxyConfig, он действует как обратный прокси: перехватывает запросы фронтенда и перенаправляет их на нужный сервер, как будто все происходит с одного домена
В статье рассказывается, как настроить proxyConfig через proxy.conf.json, как проксировать разные эндпоинты и даже обрабатывать WebSocket-соединения.
👉 https://dev.to/this-is-angular/angulars-proxyconfig-unlock-a-senior-level-technique-used-by-only-10-of-developers-4j1b
Когда Angular-приложение на локалке не может достучаться до бэкенда из-за ошибок CORS, большинство новичков теряются. Но есть элегантное решение — proxyConfig, он действует как обратный прокси: перехватывает запросы фронтенда и перенаправляет их на нужный сервер, как будто все происходит с одного домена
В статье рассказывается, как настроить proxyConfig через proxy.conf.json, как проксировать разные эндпоинты и даже обрабатывать WebSocket-соединения.
👉 https://dev.to/this-is-angular/angulars-proxyconfig-unlock-a-senior-level-technique-used-by-only-10-of-developers-4j1b
👍23🔥9🐳2❤🔥1
✨ Пробуем Junie от JetBrains на реальной задаче
Мечтали об AI-ассистенте, который сам пишет код? JetBrains выкатили Junie. Кажется, будущее уже здесь: даешь задачу, а он сам разбирается.
Но готов ли этот "электронный джун" заменить настоящего? Автор статьи проверил это на практике, и результаты оказались... весьма неожиданными.
👉 https://habr.com/ru/articles/904876/
Мечтали об AI-ассистенте, который сам пишет код? JetBrains выкатили Junie. Кажется, будущее уже здесь: даешь задачу, а он сам разбирается.
Но готов ли этот "электронный джун" заменить настоящего? Автор статьи проверил это на практике, и результаты оказались... весьма неожиданными.
👉 https://habr.com/ru/articles/904876/
🤮15👍5😁3
✨ Ваш AI халтурит? Пора освоить промпт-инжиниринг
Продолжаем разговор про AI-агентов, вроде Junie. Вчерашняя статья показала интересную картину, не так ли?
Если вы не хотите, чтобы ваш новенький AI-помощник в ответ на просьбу написать тесты:
- начал заменять UI-компоненты заглушками
- или скрывал падающие тесты с помощью expect(true).toBe(true)
...то пора кое-что осознать. Проблема не только в сырости инструментов, а в том, как мы с ними обращаемся.
"Электронный джун", как и его человеческий прототип, без четких инструкций, границ и критериев успеха начинает креативить.
Будущее не за теми, кто использует AI, а за теми, кто умеет им управлять.
Поэтому, пока не поздно:
- начинайте учиться писать промпты
- задавать ограничения
- итеративно улучшать запросы
- составлять промпты с помощью других промптов
- разберитесь с MCP
Подборка материалов:
- стратегии составления промптов от Гугла
- выжимка из 4000 исследований по промпт-инжинирингу
- приемы по составлению промптов в Cursor
Продолжаем разговор про AI-агентов, вроде Junie. Вчерашняя статья показала интересную картину, не так ли?
Если вы не хотите, чтобы ваш новенький AI-помощник в ответ на просьбу написать тесты:
- начал заменять UI-компоненты заглушками
- или скрывал падающие тесты с помощью expect(true).toBe(true)
...то пора кое-что осознать. Проблема не только в сырости инструментов, а в том, как мы с ними обращаемся.
"Электронный джун", как и его человеческий прототип, без четких инструкций, границ и критериев успеха начинает креативить.
Будущее не за теми, кто использует AI, а за теми, кто умеет им управлять.
Поэтому, пока не поздно:
- начинайте учиться писать промпты
- задавать ограничения
- итеративно улучшать запросы
- составлять промпты с помощью других промптов
- разберитесь с MCP
Подборка материалов:
- стратегии составления промптов от Гугла
- выжимка из 4000 исследований по промпт-инжинирингу
- приемы по составлению промптов в Cursor
🤮8🤡8👍7❤3🤝1
✨ Отказ от привычки использовать Enum
Вы активно используете enum в своих TypeScript-проектах? А что, если мы скажем, что этот привычный инструмент не так безобиден, как кажется, и может создавать проблемы, о которых вы даже не подозреваете?
Главные претензии к enum: они добавляют лишний код в ваш бандл, имеют неочевидные различия между числовыми и строковыми вариантами, а также позволяют "слияние объявлений" (declaration merging), что может привести к непредсказуемому поведению.
В качестве альтернативы автор предлагает использовать обычные объекты с as const. Благодаря возможностям вывода типов в TypeScript, тип, представляющий все возможные значения из такого объекта, можно получить автоматически прямо из его структуры.
👉 https://www.angularspace.com/breaking-the-enum-habit-why-typescript-developers-need-a-new-approach/
Вы активно используете enum в своих TypeScript-проектах? А что, если мы скажем, что этот привычный инструмент не так безобиден, как кажется, и может создавать проблемы, о которых вы даже не подозреваете?
Главные претензии к enum: они добавляют лишний код в ваш бандл, имеют неочевидные различия между числовыми и строковыми вариантами, а также позволяют "слияние объявлений" (declaration merging), что может привести к непредсказуемому поведению.
В качестве альтернативы автор предлагает использовать обычные объекты с as const. Благодаря возможностям вывода типов в TypeScript, тип, представляющий все возможные значения из такого объекта, можно получить автоматически прямо из его структуры.
👉 https://www.angularspace.com/breaking-the-enum-habit-why-typescript-developers-need-a-new-approach/
🤡19👍7🤣3🔥1🥴1🤓1
✨ Магия анимаций в Angular
Хотите, чтобы ваши Angular-приложения ожили с плавными анимациями, как в лучших веб-приложениях? View Transition API позволяет легко делать простые и эффектные анимации элементов на странице.
Статья раскрывает, как подружить этот API с Angular и создавать wow-эффекты.
👉 https://www.angularspace.com/angular-animation-magic-unlock-the-power-of-the-view-transition-api/
Хотите, чтобы ваши Angular-приложения ожили с плавными анимациями, как в лучших веб-приложениях? View Transition API позволяет легко делать простые и эффектные анимации элементов на странице.
Статья раскрывает, как подружить этот API с Angular и создавать wow-эффекты.
👉 https://www.angularspace.com/angular-animation-magic-unlock-the-power-of-the-view-transition-api/
🥰12🤯2👍1
✨ Создание full-stack приложения с использованием AnalogJS
Задумывались, почему у Vue есть Nuxt, у React – Next.js, а у Angular нет своего «секретного оружия»?
Встречайте AnalogJS – мета-фреймворк, который приносит всю мощь современных инструментов (SSR, SSG, файловый роутинг и многое другое) в экосистему Angular.
В статье шаг за шагом раскрывается, как на нем собрать полноценное приложение для поиска аниме.
👉 https://www.angularspace.com/build-a-full-stack-application-with-analogjs/
Задумывались, почему у Vue есть Nuxt, у React – Next.js, а у Angular нет своего «секретного оружия»?
Встречайте AnalogJS – мета-фреймворк, который приносит всю мощь современных инструментов (SSR, SSG, файловый роутинг и многое другое) в экосистему Angular.
В статье шаг за шагом раскрывается, как на нем собрать полноценное приложение для поиска аниме.
👉 https://www.angularspace.com/build-a-full-stack-application-with-analogjs/
👍7🔥3
✨ Ты неправильно понимаешь DDD в Angular (и на фронтенде)
Вы уверены, что DDD в frontend-разработке — это про красивую структуру кода? Многие разработчики ошибаются, считая, что Domain-Driven Design сводится к техническим трюкам.
Агрегаты и транзакции? Забудьте, это не задача фронтенда. Главное понять, как бизнес зарабатывает деньги и решает задачи пользователей.
Статья разоблачает мифы о DDD, показывая, что это не про фронтенд в отрыве от реальности, а про глубокое погружение в бизнес.
Узнайте, как использовать DDD правильно и не загубить проект, следуя модным трендам.
👉 https://www.angularspace.com/youre-misunderstanding-ddd-in-angular-and-frontend/
Вы уверены, что DDD в frontend-разработке — это про красивую структуру кода? Многие разработчики ошибаются, считая, что Domain-Driven Design сводится к техническим трюкам.
Агрегаты и транзакции? Забудьте, это не задача фронтенда. Главное понять, как бизнес зарабатывает деньги и решает задачи пользователей.
Статья разоблачает мифы о DDD, показывая, что это не про фронтенд в отрыве от реальности, а про глубокое погружение в бизнес.
Узнайте, как использовать DDD правильно и не загубить проект, следуя модным трендам.
👉 https://www.angularspace.com/youre-misunderstanding-ddd-in-angular-and-frontend/
👍13🔥4
✨ State of Web Dev AI 2025
Знакомы со State of JS? Недавно вышло исследование State of Web Dev AI 2025, которое ответило на вопросы: какие инструменты действительно полезны, сколько времени и ресурсов разработчики тратят на нейросети и с какими трудностями сталкиваются.
Авторы опросили более 4 тысяч разработчиков, как активных пользователей, так и скептиков.
Интересный факт: более половины опрошенных уже интегрировали нейросети в свои рабочие процессы и отметили рост производительности.
👉 https://2025.stateofai.dev/
Знакомы со State of JS? Недавно вышло исследование State of Web Dev AI 2025, которое ответило на вопросы: какие инструменты действительно полезны, сколько времени и ресурсов разработчики тратят на нейросети и с какими трудностями сталкиваются.
Авторы опросили более 4 тысяч разработчиков, как активных пользователей, так и скептиков.
Интересный факт: более половины опрошенных уже интегрировали нейросети в свои рабочие процессы и отметили рост производительности.
👉 https://2025.stateofai.dev/
🤮6🤡5
✨ C# vs Angular
DI — это не просто тренд, а фундаментальный принцип, который делает приложения гибкими, модульными и готовыми к любым изменениям. А изучение его открывает глаза на универсальные архитектурные идеи, которые вы сможете применять где угодно.
Узнайте больше о том, как одинаковые идеи работают в Angular и C#.
👉 https://habr.com/ru/articles/903636/
DI — это не просто тренд, а фундаментальный принцип, который делает приложения гибкими, модульными и готовыми к любым изменениям. А изучение его открывает глаза на универсальные архитектурные идеи, которые вы сможете применять где угодно.
Узнайте больше о том, как одинаковые идеи работают в Angular и C#.
👉 https://habr.com/ru/articles/903636/
👍5🤮3
✨ Архитектура от тестов
Вы когда-нибудь задумывались, почему одни проекты поддерживать легко, а другие превращаются в кошмар? Секрет прост: если ваш код легко тестировать, он автоматически становится понятным, гибким и готовым к будущим изменениям.
Новая статья раскрывает, как мышление "от тестов" делает вашу архитектуру кристально ясной.
👉 https://habr.com/ru/articles/907994/
Вы когда-нибудь задумывались, почему одни проекты поддерживать легко, а другие превращаются в кошмар? Секрет прост: если ваш код легко тестировать, он автоматически становится понятным, гибким и готовым к будущим изменениям.
Новая статья раскрывает, как мышление "от тестов" делает вашу архитектуру кристально ясной.
👉 https://habr.com/ru/articles/907994/
👍9🥰2😁2🔥1
✨ Фронтенд — новый легаси: Как мы проспали event-driven революцию
В статье объясняется, почему фронтенд все еще живет в эпохе jQuery, хотя на бэкенде уже давно правят Pub/Sub-паттерны с RabbitMQ и Kafka.
P.S. Все изложенное — лишь мнение автора статьи. У предложенного решения есть свои недостатки, но идея интересная и вполне может вызвать обсуждение.
👉 https://habr.com/ru/articles/906800/
В статье объясняется, почему фронтенд все еще живет в эпохе jQuery, хотя на бэкенде уже давно правят Pub/Sub-паттерны с RabbitMQ и Kafka.
P.S. Все изложенное — лишь мнение автора статьи. У предложенного решения есть свои недостатки, но идея интересная и вполне может вызвать обсуждение.
👉 https://habr.com/ru/articles/906800/
🤮15🙉8💩6👍3👎1🔥1
✨ Как ESLint помогает управлять архитектурой проекта
Импорты из устаревших библиотек, UI-компоненты в бизнес-логике, фичи, завязанные на низкоуровневом API... Знакомые проблемы?
Борис Ермаченко рассказал, как ESLint может автоматически следить за соблюдением архитектурных границ с помощью трех инструментов:
- import/no-restricted-paths — для запрета импортов на уровне директорий
- no-restricted-imports — для блокировки устаревших библиотек
- eslint-plugin-boundaries — позволяет описывать архитектурные слои и следить за их границами
👉 https://habr.com/ru/companies/psb/articles/905398/
Импорты из устаревших библиотек, UI-компоненты в бизнес-логике, фичи, завязанные на низкоуровневом API... Знакомые проблемы?
Борис Ермаченко рассказал, как ESLint может автоматически следить за соблюдением архитектурных границ с помощью трех инструментов:
- import/no-restricted-paths — для запрета импортов на уровне директорий
- no-restricted-imports — для блокировки устаревших библиотек
- eslint-plugin-boundaries — позволяет описывать архитектурные слои и следить за их границами
👉 https://habr.com/ru/companies/psb/articles/905398/
👍18🔥3❤2
✨ Angular 19.2: Шаблонные литералы в [class] — более чистая альтернатива [ngClass]?
Слышали, что в Angular 19.2 с помощью шаблонных литералов можно реализовать генерацию динамических классов и стилей?
Как это работает?
Вместо громоздких [ngClass] или множества [class.x] вы просто пишете:
Это позволяет лаконично и понятно управлять классами, особенно когда их имя зависит от переменной.
👉 https://push-based.io/article/angular-19-2-template-literals-in-class-a-cleaner-alternative-to-ngclass
Слышали, что в Angular 19.2 с помощью шаблонных литералов можно реализовать генерацию динамических классов и стилей?
Как это работает?
Вместо громоздких [ngClass] или множества [class.x] вы просто пишете:
<div [class]="`btn-${variant}`"></div>
Это позволяет лаконично и понятно управлять классами, особенно когда их имя зависит от переменной.
👉 https://push-based.io/article/angular-19-2-template-literals-in-class-a-cleaner-alternative-to-ngclass
👍24🔥6
✨ Продвинутые методы использования TypeScript в реальных проектах
Вы когда-нибудь сталкивались с ситуацией, когда даже идеальный код превращается в хаос из-за громоздких типов?
На примере простой системы "умного дома" демонстрируется, как связать события с их данными и сделать невозможными ошибки несоответствия.
👉 https://habr.com/ru/companies/timeweb/articles/906842/
Вы когда-нибудь сталкивались с ситуацией, когда даже идеальный код превращается в хаос из-за громоздких типов?
На примере простой системы "умного дома" демонстрируется, как связать события с их данными и сделать невозможными ошибки несоответствия.
👉 https://habr.com/ru/companies/timeweb/articles/906842/
👍3🗿1
✨ Почему мы используем Typescript в своих проектах и каковы его расширенные возможности?
Ни для кого не секрет, что в крупных проектах, где код постоянно растет, а состав команд меняется, TypeScript — это не просто модный тренд, а инвестиция в чистый, безопасный и понятный код.
В статье разбираются ключевые преимущества TypeScript, наглядно демонстрируются его расширенные возможности и объясняется, как он помогает справляться с вызовами масштабных проектов.
👉 https://habr.com/ru/companies/nlmk/articles/893270/
Ни для кого не секрет, что в крупных проектах, где код постоянно растет, а состав команд меняется, TypeScript — это не просто модный тренд, а инвестиция в чистый, безопасный и понятный код.
В статье разбираются ключевые преимущества TypeScript, наглядно демонстрируются его расширенные возможности и объясняется, как он помогает справляться с вызовами масштабных проектов.
👉 https://habr.com/ru/companies/nlmk/articles/893270/
👍6🔥1🤡1
✨ MCP + Playwright: Революция в тестировании?
Представьте, что вы нажимаете кнопку и ваши E2E‑тесты уже написаны за вас.
С Playwright MCP Server больше не нужно часами вручную описывать каждый шаг пользователя, с его помощью вы получаете готовые варианты, которые остается только немного доработать. Это огромный шаг к повышению продуктивности.
В статье автор делится своим опытом его использования, и оценивает качество сгенерированных тестов.
👉 https://timdeschryver.dev/blog/vibe-testing-with-playwright
Представьте, что вы нажимаете кнопку и ваши E2E‑тесты уже написаны за вас.
С Playwright MCP Server больше не нужно часами вручную описывать каждый шаг пользователя, с его помощью вы получаете готовые варианты, которые остается только немного доработать. Это огромный шаг к повышению продуктивности.
В статье автор делится своим опытом его использования, и оценивает качество сгенерированных тестов.
👉 https://timdeschryver.dev/blog/vibe-testing-with-playwright
👍9🤮5
✨ TypeScript: стоит ли усложнять типы?
Система типов в TypeScript настолько мощная, что может заменить целый язык программирования. Но стоит ли усложнять типы ради надежности кода, или лучше остаться в зоне комфорта?
Эта статья поможет найти золотую середину.
👉 https://habr.com/ru/companies/lanit/articles/908642/
Система типов в TypeScript настолько мощная, что может заменить целый язык программирования. Но стоит ли усложнять типы ради надежности кода, или лучше остаться в зоне комфорта?
Эта статья поможет найти золотую середину.
👉 https://habr.com/ru/companies/lanit/articles/908642/
👍4🔥1
✨ Гайд на полиморфизм. Основные идеи
Многие считают, что полиморфизм связан исключительно с ООП, но пора разрушить миф. Он присутствует в самых разных языках и парадигмах, помогая коду быть гибким и универсальным.
Читай статью, чтобы наконец-то разложить по полочкам этот фундаментальный концепт, который на деле гораздо глубже, чем принято думать.
👉 https://habr.com/ru/articles/910194/
Многие считают, что полиморфизм связан исключительно с ООП, но пора разрушить миф. Он присутствует в самых разных языках и парадигмах, помогая коду быть гибким и универсальным.
Читай статью, чтобы наконец-то разложить по полочкам этот фундаментальный концепт, который на деле гораздо глубже, чем принято думать.
👉 https://habr.com/ru/articles/910194/
❤2👍1🔥1