✨ Вы не знаете CSS
Считаешь себя мастером CSS? А что, если твои знания проверят вопросы с реальных собеседований?
Эта статья — настоящий тест на прочность: от базовых трюков до редких фишек, которые заставят задуматься даже профи. И это только первая часть, вторая уже ждёт тебя. Пройди их и стань круче.
👉 https://habr.com/ru/companies/ruvds/articles/883284/
Считаешь себя мастером CSS? А что, если твои знания проверят вопросы с реальных собеседований?
Эта статья — настоящий тест на прочность: от базовых трюков до редких фишек, которые заставят задуматься даже профи. И это только первая часть, вторая уже ждёт тебя. Пройди их и стань круче.
👉 https://habr.com/ru/companies/ruvds/articles/883284/
👍5🔥2
✨ Rspack в Angular
Устали от медленных сборок и ограничений? У сообщества Angular наконец появилась реальная альтернатива. Rspack — высокопроизводительный сборщик на Rust, который обеспечивает почти полную совместимость с Webpack и при этом работает значительно быстрее.
В этом посте рассказывается о том, как обстоят дела с интеграцией Rspack в Angular, а также недавно в блоге NX вышла статья о создании новых приложений с помощью Rspack и миграции существующих.
👉 https://edbzn.dev/state-of-rspack-in-angular/
Устали от медленных сборок и ограничений? У сообщества Angular наконец появилась реальная альтернатива. Rspack — высокопроизводительный сборщик на Rust, который обеспечивает почти полную совместимость с Webpack и при этом работает значительно быстрее.
В этом посте рассказывается о том, как обстоят дела с интеграцией Rspack в Angular, а также недавно в блоге NX вышла статья о создании новых приложений с помощью Rspack и миграции существующих.
👉 https://edbzn.dev/state-of-rspack-in-angular/
🔥14🥰2
✨ Почему вы никогда не выучите все фреймворки
Чувствуешь, что отстаешь от новых технологий? Каждый месяц — новый Vite, Svelte или Bun, а ты все еще дебажишь свой старый проект. Это нормально!
В статью, вы узнаете, как перестать гнаться за новинками и получать удовольствие от процесса разработки.
👉 https://habr.com/ru/articles/902276/
Чувствуешь, что отстаешь от новых технологий? Каждый месяц — новый Vite, Svelte или Bun, а ты все еще дебажишь свой старый проект. Это нормально!
В статью, вы узнаете, как перестать гнаться за новинками и получать удовольствие от процесса разработки.
👉 https://habr.com/ru/articles/902276/
👍8🔥4👎1
✨ Язык мироздания — теория групп и теория категорий
Что, если бы программирование было не просто ремеслом, а способом читать саму структуру мироздания? Представь, что за привычным reduce или map скрываются древние математические смыслы, которыми пользуются физики и философы. Эта статья — не просто про абстрактную математику.
Это попытка заглянуть в грамматику Вселенной, где монады превращаются в инструменты понимания всего.
Конечно, философские интерпретации, такие как красота Вселенной, являются субъективными фантазиями автора, но если вы хотите ознакомиться с теориями групп и категорий, это неплохое вступление.
👉 https://habr.com/ru/articles/879808/
Что, если бы программирование было не просто ремеслом, а способом читать саму структуру мироздания? Представь, что за привычным reduce или map скрываются древние математические смыслы, которыми пользуются физики и философы. Эта статья — не просто про абстрактную математику.
Это попытка заглянуть в грамматику Вселенной, где монады превращаются в инструменты понимания всего.
Конечно, философские интерпретации, такие как красота Вселенной, являются субъективными фантазиями автора, но если вы хотите ознакомиться с теориями групп и категорий, это неплохое вступление.
👉 https://habr.com/ru/articles/879808/
🗿14🤡4👍3⚡1
✨ Создание доступных форм
Вы уверены, что ваши формы удобны для всех?
Правильно реализованные формы работают лучше со скринридерами, клавиатурной навигацией и вспомогательными технологиями, что улучшает UX не только для пользователей с ограниченными возможностями, но и для всех остальных.
👉 https://www.angulararchitects.io/en/blog/accessible-angular-forms/
Вы уверены, что ваши формы удобны для всех?
Правильно реализованные формы работают лучше со скринридерами, клавиатурной навигацией и вспомогательными технологиями, что улучшает UX не только для пользователей с ограниченными возможностями, но и для всех остальных.
👉 https://www.angulararchitects.io/en/blog/accessible-angular-forms/
👍5❤2
✨ Нативные 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