mastodon.world is one of the many independent Mastodon servers you can use to participate in the fediverse.
Generic Mastodon server for anyone to use.

Server stats:

8.4K
active users

#RxJS

2 posts2 participants0 posts today

От магии до понятной структуры: разбираемся, как работает Change Detection в Angular

В Angular любое изменение в компоненте, которое отображается на экране, является результатом работы механизма отслеживания изменений (Change Detection, CD). За этим процессом стоит Zone.js, который можно представить в роли дирижера, сообщающего компонентам о необходимости обновить DOM. Zone.js не запускает CD сам. Он лишь создает контекст, в котором Angular потом может его запустить. Его задача только уведомлять Angular о завершении асинхронных операций, после чего Angular решает, нужно ли проверять изменения. Чтобы понять важность такого подхода, нужно учитывать особенности JavaScript. В JavaScript асинхронные операции, такие как setTimeout или fetch, разрывают стек вызовов. Это значит, что callback-функция, выполняемая после завершения асинхронной операции, не имеет информации о контексте, в котором она была вызвана. Для фреймворка, который отслеживает изменения, это создает определенные трудности: как узнать, что асинхронная операция завершилась и, возможно, изменила данные? Заглянуть под капот

habr.com/ru/articles/925260/

ХабрОт магии до понятной структуры: разбираемся, как работает Change Detection в AngularВведение: Невидимый Дирижер и Измеримая Цена В Angular любое изменение в компоненте, которое отображается на экране, является результатом работы механизма отслеживания изменений (Change Detection,...

Как выжить в мире сложных интерфейсов в 2025-м: 7 работающих рецептов от React и CSS до дизайн-систем

Как говорил дядя Бен, большие продукты — это большая ответственность. И без сложных интерфейсов тут никуда: а с ними и исследования становятся труднее, и встречается больше препятствий на этапе кода — от нюансов реактивного программирования до риска утонуть в разнообразии CSS-спецификаций. Для

habr.com/ru/companies/ncloudte

ХабрКак выжить в мире сложных интерфейсов в 2025-м: 7 работающих рецептов от React и CSS до дизайн-системКак говорил дядя Бен, большие продукты — это и большая ответственность. И без сложных интерфейсов тут никуда. А с ними и исследования становятся труднее, и встречается больше препятствий на этапе кода...

Do you want to understand core concepts and operations of Reactive Programming nice and easy?

Dive into our tutorial, Rx Playground!
👉 sml.io/rxplayground

Rx Playground gives you:
✅ Interactive learning with real-time data flow
✅ Fun environment to experiment with Rx operators
✅ Beginner-friendly tutorial with advanced use cases

📚 Learn how operators like map, merge, switchMap, debounceTime, and more really work by seeing them in action.

Angular 20: Большое обновление для современного веба

Angular 20 — это мощное обновление, которое делает разработку веб-приложений быстрее, удобнее и современнее. Новые возможности шаблонов, стабильные сигналы, поддержка zoneless режима и интеграция с AI позволяют создавать высокопроизводительные приложения с минимальными усилиями. В этой статье разберём ключевые нововведения Angular 20 и покажем, как их использовать в ваших проектах.

habr.com/ru/articles/914934/

ХабрAngular 20: Большое обновление для современного вебаAngular 20 — это мощное обновление, которое делает разработку веб-приложений быстрее, удобнее и современнее. Новые возможности шаблонов, стабильные сигналы, поддержка zoneless режима и интеграция с AI...

Has anyone here worked with RxDB (rxdb.info) before? 🤔

(Have I asked this question beige? 😅)

I like the concept and it seems robust from what I’ve been reading on the docs, but something about it rubs me the wrong way.

The tracking during dev perhaps that’s not possible to turn off? The quite aggressive marketing of the premium version? The constant popups while reading the docs?

Unsure, but I’d like to hear from people who have used it, if there are any.

rxdb.infoRxDB - JavaScript Database | RxDB - JavaScript DatabaseRxDB is a fast, local-first NoSQL-database for JavaScript Applications like Websites, hybrid Apps, Electron-Apps, Progressive Web Apps and Node.js

[Перевод] Что новенького в Angular 19

Всем привет, с вами Максим Иванов , и сегодня мы поговорим о некоторых улучшениях, которые появились в последней версии Angular 19 , вышедшей в ноябре 2024. Публикация довольно запоздалая с этой точки зрения, но мы сегодня постараемся рассмотреть некоторые нововведения более детально. Как и всегда ребята из Google дарят нам что-то новое, что сделает наши приложения еще более быстрыми и эффективными. И в этом нам помогут модерновые реактивные примитивы, инкрементальная гидратация и многое другое.

habr.com/ru/articles/884208/

ХабрЧто новенького в Angular 19От переводчика Всем привет, с вами  Максим Иванов , и сегодня мы поговорим о некоторых улучшениях, которые появились в последней версии Angular 19 , вышедшей в ноябре 2024. Публикация довольно...

I've been pondering about creating EventSourcing, CQRS & DDD scaffolding from scratch in TypeScript.

There doesn't seem to be an OpenSource basic scaffolding for this using RxJS? ( I mean the basic bang like NgRx ).

DDD -> NgRx
- Command -> Action ( in imperative )
- Command Handler -> Effect
- Domain Event -> Action ( in past tense )
- Aggregate state -> a Store entry
- Aggregate state's apply -> Reducer

Did I get this right?

Having worked with #Angular in-depth for 2 years now, I can articulate what I don’t like about the #framework.

1. #RxJS is a terrible primitive to build most #CRUD software upon. #Promises are better for most things, and event listeners are fine.

2. Its #DI system encourages long-lived, easily-accessible Singletons that are serious “foot guns.”

3. Data management is painful. Resolvers are a worse DX than either #EmberJS’s Ember Data or #React’s TanStack Query.

Continued thread

Since it's related, here's the `removeEventListener` API I wish we had:

```javascript
const removeListener = window.addEventListener('something', () => { /* ... */ });

await someTime();

removeListener();
```

Benefits:
1. You only provide the handler once, so it works great with lambdas. You don't need to keep a reference to the handler just to remove it later.
2. You don't need to provide the event twice. It's additional information to hard-code and/or dynamically track.
3. You can't accidentally `removeEventListener` on a function which was not bound in the first place (which is a no-op that often indicates a bug such as `removeEventListener('something', foo.bind(this)`).

This design is basically a copy of the way #RxJS handles subscriptions, but I find this much more ergonomic and intuitive.