Marmicode
The Missing Ingredient for Angular Template Code Coverage and Future-Proof TestingBlog Post
Younes Jaaidi

The Missing Ingredient for Angular Template Code Coverage and Future-Proof Testing

by Younes Jaaidi • 
Nov 17, 2024 • 6 minutes

This article presents how turning on Ahead-Of-Time (AOT) compilation for your Angular tests enables accurate template code coverage, faster test execution, production-symmetry, and future-proof tests.

You Will Learn

Required Skills

Managing RxJS Traffic with Signals and SuspensifyBlog Post
Younes Jaaidi

Managing RxJS Traffic with Signals and Suspensify

by Younes Jaaidi • 
Apr 28, 2023 • 9 minutes

Angular provides useful tools to handle RxJS & Signals interoperability but handling pending status and errors can quickly get tricky. Let's see how a simple RxJS operator can simplify things and improve consistency.

You Will Learn

Required Skills

Beyond Angular Signals: Signals & Custom Render StrategiesBlog Post
Younes Jaaidi

Beyond Angular Signals: Signals & Custom Render Strategies

by Younes Jaaidi • 
Apr 7, 2023 • 8 minutes

While libraries and frameworks are getting better and better at tracking changes in a fine-grained way and propagating them to the DOM, we might notice that sometimes, the performance bottleneck resides in DOM updates. Let's explore how Angular Signals could allow us to overcome these performance bottlenecks with custom rendering strategies.

You Will Learn

Versatile Angular Style brings Modern Dev Tools to AngularBlog Post
Younes Jaaidi

Versatile Angular Style brings Modern Dev Tools to Angular

by Younes Jaaidi • 
Dec 7, 2022 • 12 minutes

As surprising as this might sound, Angular is one of the easiest frameworks to integrate with modern dev tools out of the box (e.g. Vite, Vitest, SWC, Playwright Component Testing)... but only if you follow the Versatile Angular Style.

You Will Learn

Angular Inject & Injection Functions - Patterns & Anti-PatternsBlog Post
Younes Jaaidi

Angular Inject & Injection Functions - Patterns & Anti-Patterns

by Younes Jaaidi • 
May 20, 2022 • 12 minutes

Since Angular 14, "inject" function can now be used in components, services, directives, pipes constructors. This allows both interesting and frightning injection patterns, let's dive into them.

You Will Learn

Required Skills

Testing Angular Components Using CypressBlog Post
Younes Jaaidi

Testing Angular Components Using Cypress

by Younes Jaaidi • 
Feb 18, 2021 • 6 minutes

Whatever framework you are using, and even without frameworks, component testing is a challenging topic as there is no one-size-fits-all approach. Jest and Cypress are gaining traction but do you also feel that something is missing in between? What if we could isolate and test our components in Cypress (with or without Storybook)?

You Will Learn

Required Skills

Spice Up your Caching with ConvoyrBlog Post
Younes Jaaidi

Spice Up your Caching with Convoyr

by Younes Jaaidi • 
Nov 16, 2020 • 5 minutes

Most web apps get their value from interacting with HTTP APIs. This is generally done using HTTP clients like the native fetch function, Axios or Angular's HttpClient. Once you set up an HTTP client on a web app then sooner or later, you will need to extend its capabilities in order to handle different topics like User Experience (e.g. pending requests indicator), performance (e.g. caching), resilience (e.g. automatic retry), and security (e.g. authentication). Luckily, most HTTP clients can be easily extended using interceptors so you won't have to wrap them or implement your own client. Even though implementing an interceptor can sound quick and easy, handling edge cases, testing and maintenance can get expensive. Wouldn't it be better if someone else could handle these issues for us?

Required Skills

End-to-End HTTP request cancelation with RxJS & NestJSBlog Post
Younes Jaaidi

End-to-End HTTP request cancelation with RxJS & NestJS

by Younes Jaaidi • 
Feb 20, 2020 • 6 minutes

Life is too short. When searching for something, we can’t afford to type a whole word or sentence in a search field, or filling all the fields then hitting our old keyboard’s half-broken enter key to finally be able to see the first results... or nothing at all because our search criteria were too restrictive. Don’t look at me like that! We can probably agree that most of us, if not all, are used to features like typeahead and live search results. We get frustrated every time we have to submit a search form.

You Will Learn

Required Skills

Boost Your Time to Market by Dancing the LimboVideo
Younes Jaaidi

Boost Your Time to Market by Dancing the Limbo

by Younes Jaaidi • 
Jul 5, 2019 • 33 minutes

Stale or long-lived branches, conflicts & huge code reviews can cause technical and human issues in your team. In this talk, Younes demonstrates some alternative and sometimes extreme approaches promoting single-branch development with techniques like Limbo, Timeboxed TDD and Test && Commit || Revert.

You Will Learn

Required Skills

Your Angular Module is a SCAM!Blog Post
Younes Jaaidi

Your Angular Module is a SCAM!

by Younes Jaaidi • 
Mar 12, 2019 • 4 minutes

Angular modules can bring some complexity to your app. Choosing the right modules architecture is tricky... but wait, do we really need modules?

You Will Learn

Required Skills

A New Syntax for Angular TemplatesBlog Post
Younes Jaaidi

A New Syntax for Angular Templates

by Younes Jaaidi • 
Mar 11, 2019 • 4 minutes

One of my favorite things about Angular is how the template is just a simple HTML file. This is really great; especially if you care about Collective Ownership. With some basic HTML knowledge, anyone can contribute to the application’s development: other teams, external web designers… or even the Client or Product Owner! Why not!? In other words, using HTML templates reduces the TTFC (Time To First Commit) which is the average time it takes for someone new in your team to make his first change.

You Will Learn

Required Skills