DEV Community

Cover image for Episode 23/35: DDD with Nx, Cypress 13, Protractor EoL
ng-news for This is Angular

Posted on

Episode 23/35: DDD with Nx, Cypress 13, Protractor EoL

The "Nx Live" show with host Zack DeRose discussed with Manfred Steyer Domain-Driven Design in Nx. Cypress 13, with its new feature, Test Replay, was published. Protractor has finally reached its "End of Life".

DDD in Nx

Zack DeRose had Manfred Steyer as his guest at the "Nx Live" show. It was an engaging discussion about Domain Driven Design. They covered what DDD is all about, how it fits into Nx and - that's always one of the hardest parts - how the folder/library structure and the dependency rules should look.

One of the main takeaways was that finding the right balance between decoupling and the DRY principle is an art.

Cypress 13

Cypress is a testing framework we can use for E2E and component testing. Last week, Cypress was released in version 13. It comes with a new feature called "Test Replay". It provides detailed information about a failed test run in the CI.

That feature is exclusively available in the Cypress Cloud, the commercial product of Cypress.

Before Test Reply, we had to find out the root cause of our tests via a recorded video and a screenshot.

Announcing Cypress 13 with Test Replay!

Cypress 13 is here, featuring Test Replay! Interact with tests as they occurred during Continuous Integration (CI).


Protractor EoL

Protractor, the Selenium-based E2E tool from Angular, has finally reached its end of life. If you are still using it, please move to something else. You can still download it, but it doesn't receive security fixes or other updates.

Angular is partnering with Cypress, WebDriverIO, Puppeteer, and Nightwatch. You can, of course, also use another E2E framework, like Playwright.

Signal's algorithm

And a "Schmankerl" for those who like to read source code. The algorithm behind the Signal received a change. For further information, check the PR on GitHub:

refactor(core): switch signals to a refcounting algorithm #51226

This commit switches the signals library from a bidirectional symmetric dependency graph using weak references, to a bidirectional asymmetric graph which uses strong references. This is made possible with a reference counting algorithm which only tracks producer -> consumer references for effect-like "live" consumers, preventing memory leaks.

The new algorithm should be simpler and faster than the previous implementation as weak references are fairly slow to create and traverse. A tradeoff is that non-live consumers must now poll their producers when read, as they cannot rely on dirty notifications.

Top comments (0)