#blog Вышел итог опроса
Первое, что бросилось в глаза, так это то, что AI больше всего используется фронтенд разработчиками)
Выводы:
- в топе из моделей chatgpt;
- в топе из IDE Сursor, слышали такой?;
- GitHub Copilot в топе среди аcсистентов;
- DALL·E в топе по генерации картинок;
- больше всего AI используется для кодогенерации и поиска;
- в топе языков использования AI - javanoscript/typenoscript.
Смотрим отчет, чтобы узнать текущие тренды, подсмотреть новые инструменты, модели!
https://2025.stateofai.dev/ru-RU/
Stateofai 2025.Первое, что бросилось в глаза, так это то, что AI больше всего используется фронтенд разработчиками)
Выводы:
- в топе из моделей chatgpt;
- в топе из IDE Сursor, слышали такой?;
- GitHub Copilot в топе среди аcсистентов;
- DALL·E в топе по генерации картинок;
- больше всего AI используется для кодогенерации и поиска;
- в топе языков использования AI - javanoscript/typenoscript.
Смотрим отчет, чтобы узнать текущие тренды, подсмотреть новые инструменты, модели!
https://2025.stateofai.dev/ru-RU/
2025.stateofai.dev
State of AI 2025
🔥5
#blog
Сегодня предлагаю посмотреть интересную статью о современном
Ранее
Примеры использования современного
1. Назначение номеров колонок, шаблонов областей и значений
2. Доступ к атрибуту
3. Задержка анимации: Установка
5. Фоновые изображения: Установка фонового изображения на основе атрибута
Мини-фреймворк на основе
Почему стоит использовать современный
1. Использование JavaScript: Доступ к атрибутам через dataset.
2. Разделение содержимого и стиля: Улучшение читаемости HTML.
3. Снижение конфликтов CSS: Предотвращение случайного переопределения стилей.
Статья - https://ishadeed.com/article/modern-attr/
Сегодня предлагаю посмотреть интересную статью о современном
attr() в CSSРанее
attr() поддерживал только текстовые значения, но новый синтаксис позволяет указывать тип данных: attr(data-color type(<color>)). Поддержка пока весьма ограничена, но скоро это должно добраться до baseline.Примеры использования современного
attr() из статьи:1. Назначение номеров колонок, шаблонов областей и значений
grid-gap в CSS Grid2. Доступ к атрибуту
rows в textarea: Умножение значения rows на определённое значение для установки минимальной высоты3. Задержка анимации: Установка
animation-delay на основе атрибута data-delay
4. Изменение цветовой тени5. Фоновые изображения: Установка фонового изображения на основе атрибута
data-bg
6. Прогресс-бар: Установка цвета и прогресса на основе атрибутов data-color и data-progress.Мини-фреймворк на основе
attr()
- Использование атрибутов для создания утилитных классов, например, px для установки горизонтальных отступов.Почему стоит использовать современный
attr() вместо инлайн-стилей?1. Использование JavaScript: Доступ к атрибутам через dataset.
2. Разделение содержимого и стиля: Улучшение читаемости HTML.
3. Снижение конфликтов CSS: Предотвращение случайного переопределения стилей.
Статья - https://ishadeed.com/article/modern-attr/
Ishadeed
First Look at The Modern attr()
Exploring the modern attr() in CSS
1❤3
#blog Интересная статья, подсвечивающая текущие проблемы понимания DDD во frontend.
В частности автор приводит "некорректный" вопрос из Твиттера на тему того, как построить проект на Angular, используя архитектуру DDD.
Какие тезисы можно выделить?
- DDD — это подход, который вы применяете в рамках своего продукта, бизнес сегмента, всей организации. Это включает весь стек: Frontend, Backend, Базы данных, а также следующие действия: развертывание, мониторинг/наблюдаемость (DevOps) и т.д., и т.п.
- Вы не делаете DDD на Frontend отдельно, так как ваш Frontend не является отдельным продуктом.
- DDD - это прежде всего стратегические паттерны, а не тактические.
- Аггрегаты практически не нужны во фронте, т.к. не сохраняют данные, да и нет задачи соблюдения консистентности при их сохранении.
- Мнорепозиторий - это не про DDD.
- Фронтенд не является отдельным ограниченным контекстом.
https://www.angularspace.com/youre-misunderstanding-ddd-in-angular-and-frontend/
В частности автор приводит "некорректный" вопрос из Твиттера на тему того, как построить проект на Angular, используя архитектуру DDD.
Какие тезисы можно выделить?
- DDD — это подход, который вы применяете в рамках своего продукта, бизнес сегмента, всей организации. Это включает весь стек: Frontend, Backend, Базы данных, а также следующие действия: развертывание, мониторинг/наблюдаемость (DevOps) и т.д., и т.п.
- Вы не делаете DDD на Frontend отдельно, так как ваш Frontend не является отдельным продуктом.
- DDD - это прежде всего стратегические паттерны, а не тактические.
- Аггрегаты практически не нужны во фронте, т.к. не сохраняют данные, да и нет задачи соблюдения консистентности при их сохранении.
- Мнорепозиторий - это не про DDD.
- Фронтенд не является отдельным ограниченным контекстом.
https://www.angularspace.com/youre-misunderstanding-ddd-in-angular-and-frontend/
Angular Space
You're misunderstanding DDD in Angular (and Frontend)
Motivation
In the recent year or two I've seen lots of discussions around building Domain-Driven Design in Angular applications. My observation is that people discuss things that are orthogonal to DDD at best - or even totally derailed from what DDD is about…
In the recent year or two I've seen lots of discussions around building Domain-Driven Design in Angular applications. My observation is that people discuss things that are orthogonal to DDD at best - or even totally derailed from what DDD is about…
👍4❤2
#blog
По-пятничному короткая статья о статическом методе
- позволяет выявить Error без лишних действий и надежно
- поддержка пока не полная, в Safari и Opera еще не довезли
- есть ряд преимуществ над классической проверкой через
- может хорошо помочь в нормализации не-Error ошибок и приведению их к Error
статья - https://www.trevorlasn.com/blog/error-iserror-javanoscript
MDN - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/isError
По-пятничному короткая статья о статическом методе
Error.isError(), если кратко:- позволяет выявить Error без лишних действий и надежно
- поддержка пока не полная, в Safari и Opera еще не довезли
- есть ряд преимуществ над классической проверкой через
instanceof Error (примеры есть в статье)- может хорошо помочь в нормализации не-Error ошибок и приведению их к Error
статья - https://www.trevorlasn.com/blog/error-iserror-javanoscript
MDN - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/isError
trevorlasn.com
Error.isError(): A Better Way to Check Error Types in Jav...
Why the new Error.isError() method solves important cross-realm issues and provides more reliable error identification than instanceof
1
#blog Классная статья для аппологетов
Сейчас на слуху такая технология, как
По сути это мостик между LLM и сторонними ресурсами, например, вашим сайтом.
В статье описывается пример того, как локально поставить
- Ставим playwright, mcp server playwright
- Запускаем mcp server playwright.
- Логинимся в copliot, задаем ему вопросы в чат (как в статье), можно на русском.
Будут сложности при написании тестов локально, т.к. серверу LLM нужно будет как-то достучаться до вашего локального сайта, но, я думаю, это решаемо.
Правда, тесты написал он криво: при запуске не сработало где-то 60%.
https://timdeschryver.dev/blog/vibe-testing-with-playwright
Playwright и LLM.Сейчас на слуху такая технология, как
Model Context Protocol (MCP).По сути это мостик между LLM и сторонними ресурсами, например, вашим сайтом.
В статье описывается пример того, как локально поставить
Playwright MCP и с помощью него попросить Copilot написать тесты на ваш сайт.- Ставим playwright, mcp server playwright
- Запускаем mcp server playwright.
- Логинимся в copliot, задаем ему вопросы в чат (как в статье), можно на русском.
Будут сложности при написании тестов локально, т.к. серверу LLM нужно будет как-то достучаться до вашего локального сайта, но, я думаю, это решаемо.
Правда, тесты написал он криво: при запуске не сработало где-то 60%.
https://timdeschryver.dev/blog/vibe-testing-with-playwright
timdeschryver.dev
Vibe testing with Playwright
Playwright 🎭 has some AI sprinkles on top of it, and I wanted to explore them. This blog post uses the Playwright MCP server to help us write tests and uses the "copy as prompt" feature to help us solve failing tests.
1👏2
#blog В ngrx вышел новый эксперементальный плагин Events.
Он пока в экспериментальной версии, так что может измениться.
Его суть состоит в том, чтобы разнести логику из effect и reducer на группы и не делать из них god object.
- Создаем группы eventGroup из actions.
- Делаем для них свой effect.
- Делаем для них свой reducer.
- Диспатчим action из данной группы.
https://dev.to/ngrx/announcing-events-plugin-for-ngrx-signalstore-a-modern-take-on-flux-architecture-4dhn
https://www.angulararchitects.io/en/blog/the-new-event-api-in-ngrx-signal-store/
Он пока в экспериментальной версии, так что может измениться.
Его суть состоит в том, чтобы разнести логику из effect и reducer на группы и не делать из них god object.
- Создаем группы eventGroup из actions.
- Делаем для них свой effect.
- Делаем для них свой reducer.
- Диспатчим action из данной группы.
https://dev.to/ngrx/announcing-events-plugin-for-ngrx-signalstore-a-modern-take-on-flux-architecture-4dhn
https://www.angulararchitects.io/en/blog/the-new-event-api-in-ngrx-signal-store/
DEV Community
Announcing Events Plugin for NgRx SignalStore: A Modern Take on Flux Architecture
We are pleased to announce the introduction of the Events plugin for NgRx SignalStore, released as...
1🔥4👏1
#news Тем временем вышел Angular 20!
Что можно отметить:
- Deprecated NgIf, NgFor, and NgSwitch
- Улучшенная отладка с помощью Angular DevTools и партнерство с Chrome для создания пользовательских отчетов Angular непосредственно в Chrome DevTools
- Экспериментальная поддержка vitest
- Начиная с Angular v20, по умолчанию Angular CLI не будет генерировать суффиксы для компонентов, директив, служб и каналов.
https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301
https://github.com/angular/angular/releases
Что можно отметить:
- Deprecated NgIf, NgFor, and NgSwitch
- Улучшенная отладка с помощью Angular DevTools и партнерство с Chrome для создания пользовательских отчетов Angular непосредственно в Chrome DevTools
- Экспериментальная поддержка vitest
- Начиная с Angular v20, по умолчанию Angular CLI не будет генерировать суффиксы для компонентов, директив, служб и каналов.
https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301
https://github.com/angular/angular/releases
Medium
Announcing Angular v20
The past couple of years have been transformative for Angular, as we’ve unleashed major advancements like reactivity with Signals and the…
👏5
#blog
Chrome 138 beta вышел 28 мая 2025. Основные обновления:
CSS:
*
*
*
*
*
* Viewport Segments API — поддержка складных экранов.
API:
* WebCodecs: поворот и отражение видео.
* Защита от XSS — экранирование
* Integrity Policy — проверка всех скриптов.
* Стабильная квота хранения — не определишь приватный режим.
*
*
*
AI:
* Summarizer, Language Detector и Translator API — сжатие, определение языка и перевод через встроенные модели.
Другое:
* Web-приложения теперь работают на нескольких доменах.
* Поддержка Serial over Bluetooth на Android.
Полный текст: https://developer.chrome.com/blog/chrome-138-beta
Chrome 138 beta вышел 28 мая 2025. Основные обновления:
CSS:
*
stretch — растягивает элементы с учётом отступов.*
abs(), sign() — математика в стилях.*
env() — учитывает системный масштаб шрифта.*
sibling-index() и sibling-count() — стили по позиции в списке.*
progress() — анимации на основе промежуточных значений.* Viewport Segments API — поддержка складных экранов.
API:
* WebCodecs: поворот и отражение видео.
* Защита от XSS — экранирование
< и >.* Integrity Policy — проверка всех скриптов.
* Стабильная квота хранения — не определишь приватный режим.
*
pushsubnoscriptionchange — при повторном разрешении пушей.*
Clear-Site-Data теперь чистит prerender и prefetch.*
target_hint — указывает, где активировать prerender.AI:
* Summarizer, Language Detector и Translator API — сжатие, определение языка и перевод через встроенные модели.
Другое:
* Web-приложения теперь работают на нескольких доменах.
* Поддержка Serial over Bluetooth на Android.
Полный текст: https://developer.chrome.com/blog/chrome-138-beta
Chrome for Developers
Chrome 138 beta | Blog | Chrome for Developers
Discover what's coming to Chrome with the latest beta.
1
#blog
Интересные детали работы CSS Grid, о которых наверняка мало кто задумывался -
В случае с изображением, превышающим ширину колонки,
Для предотвращения "выпирания" колонок из-за длинного контента (например, URL без переноса) рекомендуется использовать
Также рассматриваются смешанные значения, например 20% 1fr, и дополнительные ключевые слова (
Статья - https://frontendmasters.com/blog/1fr-1fr-vs-auto-auto-vs-50-50/
Интересные детали работы CSS Grid, о которых наверняка мало кто задумывался -
1fr, 50% и auto это одно и то же? В статье разбирается специфика и плюсы/минусы каждого из этих подходов. Если кратко:50% 50% — колонки строго фиксируются по ширине, но при наличии gap общий размер сетки может превысить 100% ширины контейнера, вызывая горизонтальный скролл.auto auto — ширина колонок определяется содержимым. Если в одной из колонок больше текста или изображение, она становится шире другой.1fr 1fr — колонки делят доступное пространство поровну, игнорируя gap. Это самый предсказуемый и часто используемый вариант.В случае с изображением, превышающим ширину колонки,
50% приводит к переполнению, auto может расшириться неожиданным образом, а 1fr корректно выделяет пространство, если ограничить изображение с помощью max-width: 100%.Для предотвращения "выпирания" колонок из-за длинного контента (например, URL без переноса) рекомендуется использовать
minmax(0, 1fr).Также рассматриваются смешанные значения, например 20% 1fr, и дополнительные ключевые слова (
min-content, max-content, fit-content()), позволяющие гибко управлять шириной колонок.Статья - https://frontendmasters.com/blog/1fr-1fr-vs-auto-auto-vs-50-50/
👍1
#blog
Вышла новая версия ESLint — v9.29.0.Основные изменения:
1. Поддержка синтаксиса ECMAScript 2026 (Explicit Resource Management):
- Парсер
- Для включения — установитеpt 2026 (Explicit Resource Managementили "latest".
- Поддержка правилами ESLint пока не реализована.
2. Новый параметр allowProperties в правиле no-restricted-properties:
- Теперь можно запретить все свойства объекта, кроме указанных в списке allowProperties.
3. Поддержка TypeScript в ядре ESLint:
- Правила
- Для линтинга TypeScript-файлов требуется использовать парсерanagement):
- Парсер `espree
4. Новый метод SourceCode#isGlobalReference(node):
- Позволяет определить, является ли идентификатор глобальной переменной, заданной через
5. Другие изменения:
- CLI-опцияинтаксиса ECMAScript 202теперь удаляет подавления для несуществующих файлов.
- Функция
1. Поддержка синтаксисполучила поддержку второго параметра — имени конфигурации.
Статья: https://eslint.org/blog/2025/06/eslint-v9.29.0-released/
Вышла новая версия ESLint — v9.29.0.Основные изменения:
1. Поддержка синтаксиса ECMAScript 2026 (Explicit Resource Management):
- Парсер
espree теперь поддерживает using и await using, которые автоматически вызывают dispose для освобождения ресурсов.- Для включения — установитеpt 2026 (Explicit Resource Managementили "latest".
- Поддержка правилами ESLint пока не реализована.
2. Новый параметр allowProperties в правиле no-restricted-properties:
- Теперь можно запретить все свойства объекта, кроме указанных в списке allowProperties.
3. Поддержка TypeScript в ядре ESLint:
- Правила
no-restricted-globals и no-var теперь корректно обрабатывают TypeScript-синтаксис.- Для линтинга TypeScript-файлов требуется использовать парсерanagement):
- Парсер `espree
4. Новый метод SourceCode#isGlobalReference(node):
- Позволяет определить, является ли идентификатор глобальной переменной, заданной через
languageOptions.globals, комментарии /* global */ или ecmaVersion.5. Другие изменения:
- CLI-опцияинтаксиса ECMAScript 202теперь удаляет подавления для несуществующих файлов.
- Функция
1. Поддержка синтаксисполучила поддержку второго параметра — имени конфигурации.
Статья: https://eslint.org/blog/2025/06/eslint-v9.29.0-released/
eslint.org
ESLint v9.29.0 released - ESLint - Pluggable JavaScript Linter
A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.
🔥3
#blog Nx сделал интересную интеграцию с JetBrains AI Assistant.
Nx объединил свой MCP server с JetBrains AI Assistant.
Nx Console периодически отслеживает CI-запуски через Nx Cloud.
Когда задача не выполняется, Nx Console немедленно отправляет уведомление, чтобы вы могли изучить сбой и предлагает решение!
По сути мы получили autofix, как в lint).
Кстати, есть статья о том, как настроить MCP в Nx.
https://nx.dev/blog/jetbrains-ci-autofix
https://nx.dev/blog/building-mcp-server-with-nx
Nx объединил свой MCP server с JetBrains AI Assistant.
Nx Console периодически отслеживает CI-запуски через Nx Cloud.
Когда задача не выполняется, Nx Console немедленно отправляет уведомление, чтобы вы могли изучить сбой и предлагает решение!
По сути мы получили autofix, как в lint).
Кстати, есть статья о том, как настроить MCP в Nx.
https://nx.dev/blog/jetbrains-ci-autofix
https://nx.dev/blog/building-mcp-server-with-nx
nx.dev
Automatically Fix your CI Failures with JetBrains AI Assistant
Get instant CI failure notifications and AI-powered fixes directly in your JetBrains IDE with Nx Console.
🔥4
#blog Браузеры научились импортировать json.
Достаточно просто добавить к импорту with { type: "json" };
Например:
import astronomyPictureOfTheDay from "./apod.json" with { type: "json" };
Теперь не нужно делать какие-либо костыли в конфиге ts и это baseline доработка.
Был реализован данный proposal https://github.com/tc39/proposal-import-attributes
https://web.dev/blog/json-imports-baseline-newly-available?hl=en
Достаточно просто добавить к импорту with { type: "json" };
Например:
import astronomyPictureOfTheDay from "./apod.json" with { type: "json" };
Теперь не нужно делать какие-либо костыли в конфиге ts и это baseline доработка.
Был реализован данный proposal https://github.com/tc39/proposal-import-attributes
https://web.dev/blog/json-imports-baseline-newly-available?hl=en
GitHub
GitHub - tc39/proposal-import-attributes: Proposal for syntax to import ES modules with assertions
Proposal for syntax to import ES modules with assertions - tc39/proposal-import-attributes
🔥7
#blog
Начиная с Chrome 137, доступна новая CSS-функция
-
-
-
Синтаксис:
Примеры:
1. Медиа-запросы inline:
2. Проверка поддержки цвета OKLCH:
3. Стилизация по состоянию элемента:
В статье есть более развернутые примеры и сценарии использования.
Chrome Blog - https://developer.chrome.com/blog/if-article?hl=en
MDN - https://developer.mozilla.org/en-US/docs/Web/CSS/if
Начиная с Chrome 137, доступна новая CSS-функция
if(), которая позволяет задавать стили в зависимости от условий. Пока только в chromuim-семействе, но держим кулачки за расширение до baseline. Функция поддерживает три типа проверок:-
style() — запросы стиля-
media() — медиа-запросы-
supports() — проверка поддержки возможностей браузераСинтаксис:
property: if(condition-1: value-1; condition-2: value-2; else: value-3);
Примеры:
1. Медиа-запросы inline:
button {
width: if(media(any-pointer: fine): 30px; else: 44px);
}
Размер кнопки меняется в зависимости от типа указателя.2. Проверка поддержки цвета OKLCH:
background-color: if(Если браузер поддерживает OKLCH, будет использован более яркий цвет.
supports(color: oklch(0.7 0.185 232)): oklch(0.7 0.185 232);
else: #00adf3
);
3. Стилизация по состоянию элемента:
.card {
--status: attr(data-status type(<custom-ident>));
border-color: if(
style(--status: pending): royalblue;
style(--status: complete): seagreen;
else: gray
);
}
Различные стили в зависимости от значения атрибута data-status.В статье есть более развернутые примеры и сценарии использования.
Chrome Blog - https://developer.chrome.com/blog/if-article?hl=en
MDN - https://developer.mozilla.org/en-US/docs/Web/CSS/if
Chrome for Developers
CSS conditionals with the new if() function | Blog | Chrome for Developers
Learn about the new CSS if function, which enables a cleaner developer interface for dynamic styles like style queries and media queries.
👍2🔥2
#blog
На недавнем заседании комитета TC39 были одобрены девять предложений по развитию JavaScript, четыре из которых переведены на четвёртую стадию (Stage 4) и войдут в спецификацию ECMAScript (и вскоре будут в baseline). Среди них:
- Array.fromAsync — удобный метод для создания массивов из асинхронных итерируемых объектов без необходимости использовать цикл
- Error.isError — встроенный метод для корректной проверки, является ли значение объектом ошибки, включая кросс-доменные и пользовательские ошибки.
- using-декларация — новое ключевое слово
Кроме того, на других стадиях продвижения достигли:
- Immutable ArrayBuffer (Stage 3) — для безопасного обмена бинарными данными между потоками.
- Math.clamp и Seeded Pseudo Random Numbers (Stage 2) — улучшают математические возможности и воспроизводимость случайных чисел.
Статья: https://socket.dev/blog/tc39-advances-9-proposals
На недавнем заседании комитета TC39 были одобрены девять предложений по развитию JavaScript, четыре из которых переведены на четвёртую стадию (Stage 4) и войдут в спецификацию ECMAScript (и вскоре будут в baseline). Среди них:
- Array.fromAsync — удобный метод для создания массивов из асинхронных итерируемых объектов без необходимости использовать цикл
for await...of.- Error.isError — встроенный метод для корректной проверки, является ли значение объектом ошибки, включая кросс-доменные и пользовательские ошибки.
- using-декларация — новое ключевое слово
using (и await using для асинхронного кода) позволяет явно и надёжно управлять освобождением ресурсов (например, файловых дескрипторов, потоков), обеспечивая автоматическую очистку после выхода из блока.Кроме того, на других стадиях продвижения достигли:
- Immutable ArrayBuffer (Stage 3) — для безопасного обмена бинарными данными между потоками.
- Math.clamp и Seeded Pseudo Random Numbers (Stage 2) — улучшают математические возможности и воспроизводимость случайных чисел.
Статья: https://socket.dev/blog/tc39-advances-9-proposals
Socket
TC39 Advances Array.fromAsync, Error.isError, and Explicit R...
TC39 advances 9 JavaScript proposals, including Array.fromAsync, Error.isError, and Explicit Resource Management, which are now headed into the ECMASc...
👍3
#blog
Интернет в последнее время пестрит мнениями "Stack Overflow сдулся и больше неактуален (в эпоху ИИ)". Но в блог этого ресурса выпустили статью, Stack Overflow представил новую стратегию на конференции WeAreDevelopers 2025. Основная цель — стать самым важным источником информации для технических специалистов в эпоху искусственного интеллекта. Компания делает упор на проверенный человеком контент, чтобы заполнить пробел доверия к ИИ. 83% разработчиков используют ИИ, но 46% не доверяют его результатам.
Ключевые обновления:
- Запуск stackoverflow.ai— ИИ-поиск с опорой на проверенные ответы.
- Новые функции: Community Activity (отслеживание активности) и обновлённый Chat.
- Добавлены Coding Challenges — интерактивные задачи для развития навыков.
Для бизнеса:
- Knowledge Ingestion — интеграция данных из SharePoint, Confluence и других.
- Интеграции с Microsoft Graph, Backstage.io и Moveworks.
- Планируется запуск MCP-сервера для работы с ИИ-моделями.
Обновление бренда:
- Публичная платформа теперь — просто Stack Overflow.
- Корпоративные продукты объединены под брендом Stack Overflow Business.
- Сообщество участвует в выборе нового визуального стиля.
Stack Overflow продолжает развиваться, чтобы оставаться надёжным ресурсом для разработчиков в условиях роста ИИ и снижения качества онлайн-контента.
Читать тут - https://stackoverflow.blog/2025/07/10/a-new-era-of-stack-overflow/
Интернет в последнее время пестрит мнениями "Stack Overflow сдулся и больше неактуален (в эпоху ИИ)". Но в блог этого ресурса выпустили статью, Stack Overflow представил новую стратегию на конференции WeAreDevelopers 2025. Основная цель — стать самым важным источником информации для технических специалистов в эпоху искусственного интеллекта. Компания делает упор на проверенный человеком контент, чтобы заполнить пробел доверия к ИИ. 83% разработчиков используют ИИ, но 46% не доверяют его результатам.
Ключевые обновления:
- Запуск stackoverflow.ai— ИИ-поиск с опорой на проверенные ответы.
- Новые функции: Community Activity (отслеживание активности) и обновлённый Chat.
- Добавлены Coding Challenges — интерактивные задачи для развития навыков.
Для бизнеса:
- Knowledge Ingestion — интеграция данных из SharePoint, Confluence и других.
- Интеграции с Microsoft Graph, Backstage.io и Moveworks.
- Планируется запуск MCP-сервера для работы с ИИ-моделями.
Обновление бренда:
- Публичная платформа теперь — просто Stack Overflow.
- Корпоративные продукты объединены под брендом Stack Overflow Business.
- Сообщество участвует в выборе нового визуального стиля.
Stack Overflow продолжает развиваться, чтобы оставаться надёжным ресурсом для разработчиков в условиях роста ИИ и снижения качества онлайн-контента.
Читать тут - https://stackoverflow.blog/2025/07/10/a-new-era-of-stack-overflow/
stackoverflow.blog
A new era of Stack Overflow - Stack Overflow
👍2
#blog
Сегодня предлагаю посмотреть две короткие статьи про фичи Angular, которые лично я почему-то пропустил в своё время мимо ушей (и возможно я такой не один).
Первое: директива @empty. Не нужно писать
Второе: router-фича withComponentInputBinding(), которая позволяет биндить инпуты компонентов из параметров роутера (например id). Плюс в статье показан полезный хак с алиасингом импорта для лучшего разделения обычных input от роутинговых.
@empty - https://blog.devgenius.io/empty-in-angular-the-modern-way-to-handle-empty-states-820476e0e5a4
withComponentInputBinding() - https://learnwithawais.medium.com/this-one-line-change-makes-angular-route-param-binding-crystal-clear-f143faa51f7e
Сегодня предлагаю посмотреть две короткие статьи про фичи Angular, которые лично я почему-то пропустил в своё время мимо ушей (и возможно я такой не один).
Первое: директива @empty. Не нужно писать
@if (items.length === 0) после итерации @for в темплейте, именно для этого придуман @empty, который сделает всю работу за вас.Второе: router-фича withComponentInputBinding(), которая позволяет биндить инпуты компонентов из параметров роутера (например id). Плюс в статье показан полезный хак с алиасингом импорта для лучшего разделения обычных input от роутинговых.
@empty - https://blog.devgenius.io/empty-in-angular-the-modern-way-to-handle-empty-states-820476e0e5a4
withComponentInputBinding() - https://learnwithawais.medium.com/this-one-line-change-makes-angular-route-param-binding-crystal-clear-f143faa51f7e
Medium
@empty in Angular: The Modern Way to Handle Empty States
Empty states. They’re the subtle, often-overlooked parts of UI that matter more than we realize. That moment when your todo list is fresh…
👍3🔥1
#blog Вышел релиз Ngrx 20.
Новые функции, которые отмечают авторы:
- prependEntity - добавляет сущность в начало массива;
- upsertEntity - обновляет сущность;
- withFeature - позволяет работать со store абстрактно;
- withLinkedState - определяет новые сигналы состояния, которые автоматически вычисляются при изменении исходных сигналов;
- @ngrx/signals/testing - упрощенное тестирование.
https://dev.to/ngrx/announcing-ngrx-v20-the-power-of-events-enhanced-dx-and-a-mature-signalstore-2fdm
Новые функции, которые отмечают авторы:
- prependEntity - добавляет сущность в начало массива;
- upsertEntity - обновляет сущность;
- withFeature - позволяет работать со store абстрактно;
- withLinkedState - определяет новые сигналы состояния, которые автоматически вычисляются при изменении исходных сигналов;
- @ngrx/signals/testing - упрощенное тестирование.
https://dev.to/ngrx/announcing-ngrx-v20-the-power-of-events-enhanced-dx-and-a-mature-signalstore-2fdm
DEV Community
Announcing NgRx v20: The Power of Events, Enhanced DX, and a Mature SignalStore!
👍1
#blog
В связи со скорым уходом Angular animations (сейчас в этом разделе документации висит дисклеймер с советом о переходе на нативные CSS анимации), в версии Angular v20.2.0-next.2 представили новые фичи
- динамический биндинг анимаций
- возможность добавлять несколько анимаций
- использование event listeners
- host binding анимаций
Статья: https://netbasal.medium.com/simplifying-animations-with-angulars-new-native-api-9584b4db316b
В связи со скорым уходом Angular animations (сейчас в этом разделе документации висит дисклеймер с советом о переходе на нативные CSS анимации), в версии Angular v20.2.0-next.2 представили новые фичи
animate.enter и animate.leave. Заточены они под нативные CSS анимации, но упрощают взаимодествие с ними. Среди очевидных плюсов:- динамический биндинг анимаций
- возможность добавлять несколько анимаций
- использование event listeners
- host binding анимаций
Статья: https://netbasal.medium.com/simplifying-animations-with-angulars-new-native-api-9584b4db316b
Medium
Simplifying Animations with Angular’s New Native API
The Angular team created @angular/animations over eight years ago, before modern CSS features like transform and @keyframes were widely…
1👍5❤3
#blog Слышал ранее, но не доходили руки проверить, как в Chrome мокать ответ сервера.
Вот наткнулся на подробную статью о том, как это сделать.
Возможности:
- позволяет переопределять тело ответа от сервера;
- позволяет переопределять HTTP и Websocket заголовки в ответе сервера как для отдельных end point-ов, так и для всех разом через Apply to: *.
Недостатки:
- не позволяет переопределить тело и заголовки запроса;
- не позволяет подменять статус-код ответа;
- не позволяет подменять Websocket-сообщения.
Так что вывод таков: необязательно поднимать свой мок сервер или ставить сниффер).
https://habr.com/ru/companies/sberbank/articles/923888/
Вот наткнулся на подробную статью о том, как это сделать.
Возможности:
- позволяет переопределять тело ответа от сервера;
- позволяет переопределять HTTP и Websocket заголовки в ответе сервера как для отдельных end point-ов, так и для всех разом через Apply to: *.
Недостатки:
- не позволяет переопределить тело и заголовки запроса;
- не позволяет подменять статус-код ответа;
- не позволяет подменять Websocket-сообщения.
Так что вывод таков: необязательно поднимать свой мок сервер или ставить сниффер).
https://habr.com/ru/companies/sberbank/articles/923888/
Хабр
Подмена входящего трафика: скрытые, но крайне полезные фичи браузера Chrome
Всем доброго дня! Я Святослав Ященко, работаю в СберТехе, лидирую команду QA Platform V Kintsugi — это графическая консоль для сопровождения PostgreSQL и Postgres-like СУБД. Развивается вместе с СУБД...
1🔥2
#blog
На 109-м заседании комитет TC39, отвечающий за развитие языка JavaScript, продвинул 11 предложений по различным стадиям стандартизации ECMAScript. Два из них достигли Stage 4 и войдут в следующую официальную версию языка:
* Math.sumPrecise(iterable) — обеспечивает точное суммирование чисел, избегая потери точности из-за округления.
* Методы Uint8Array: toBase64(), fromBase64(), toHex(), fromHex() — добавляют встроенные средства для работы с base64 и шестнадцатеричными строками.
На Stage 3 вышли:
* Iterator.concat(...) — упрощает объединение итераторов.
* Upsert для Map/WeakMap — позволяет безопасно устанавливать значения по умолчанию.
* Immutable ArrayBuffer — добавляет неизменяемые буферы для безопасной и эффективной работы с памятью.
На Stage 2:
* Intl Era/Month Code — поддержка эр и кодов месяцев в формате дат.
* Сохранение конечных нулей в Intl.NumberFormat — улучшает точность форматирования чисел.
* Import Bytes — возможность импорта бинарных файлов как Uint8Array.
Статья: https://socket.dev/blog/tc39-advances-11-proposals-for-math-precision-binary-apis-and-more
На 109-м заседании комитет TC39, отвечающий за развитие языка JavaScript, продвинул 11 предложений по различным стадиям стандартизации ECMAScript. Два из них достигли Stage 4 и войдут в следующую официальную версию языка:
* Math.sumPrecise(iterable) — обеспечивает точное суммирование чисел, избегая потери точности из-за округления.
* Методы Uint8Array: toBase64(), fromBase64(), toHex(), fromHex() — добавляют встроенные средства для работы с base64 и шестнадцатеричными строками.
На Stage 3 вышли:
* Iterator.concat(...) — упрощает объединение итераторов.
* Upsert для Map/WeakMap — позволяет безопасно устанавливать значения по умолчанию.
* Immutable ArrayBuffer — добавляет неизменяемые буферы для безопасной и эффективной работы с памятью.
На Stage 2:
* Intl Era/Month Code — поддержка эр и кодов месяцев в формате дат.
* Сохранение конечных нулей в Intl.NumberFormat — улучшает точность форматирования чисел.
* Import Bytes — возможность импорта бинарных файлов как Uint8Array.
Статья: https://socket.dev/blog/tc39-advances-11-proposals-for-math-precision-binary-apis-and-more
Socket
TC39 Advances 11 Proposals for Math Precision, Binary APIs, ...
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScr...
👍5
#blog Интересный трюк с ленивой загрузкой шрифтов!
В статье используют ленивую загрузку шрифта через createElement('link') и свойства css font-display: swap.
В итоге это позволяет сразу показывать дефолтные шрифты и постепенно их менять на целевые, избегая проблемы FOIT.
Также это повышает метрики: LCP,FID.
Мне кажется, крайне полезный трюк - нужно брать на заметку.
https://angular.love/lazy-loading-fonts-in-angular-how-to-speed-up-content-rendering
В статье используют ленивую загрузку шрифта через createElement('link') и свойства css font-display: swap.
В итоге это позволяет сразу показывать дефолтные шрифты и постепенно их менять на целевые, избегая проблемы FOIT.
Также это повышает метрики: LCP,FID.
Мне кажется, крайне полезный трюк - нужно брать на заметку.
https://angular.love/lazy-loading-fonts-in-angular-how-to-speed-up-content-rendering
Angular.love
Lazy loading fonts in Angular - how to speed up content rendering? - Angular.love
Angular.love - a place for all Angular enthusiasts created to inspire and educate.
👍5