Miroslav Jonaš

Hello generics, goodbye boilerplate!

Are you spending more time on code ceremony than business logic? Learn how TypeScript generics can eliminate boilerplate and let you focus on what truly matters.

Hello generics, goodbye boilerplate!
#1about 5 minutes

Understanding the prevalence of boilerplate in enterprise code

Boilerplate code is common in large, well-architected applications due to consistent patterns, but it can be significantly reduced.

#2about 5 minutes

Explaining the core concepts of Redux state management

The Redux pattern uses a central store, actions, reducers, and effects to manage application state predictably.

#3about 4 minutes

Walking through a typical asynchronous data-loading flow

An example application demonstrates the sequence of actions and state changes for both successful data fetching and error handling.

#4about 9 minutes

Introducing TypeScript generics to reduce action boilerplate

TypeScript generics allow for creating reusable, type-safe constructs like a base action class to eliminate repetitive code.

#5about 7 minutes

Creating a generic reducer to handle common state changes

A custom `createGroupReducer` function uses generics to automatically handle loading, success, and failure states for actions.

#6about 6 minutes

Abstracting NGRX effects using generic helper functions

Generic creator functions like `createSwitchMapEffect` can encapsulate the common logic of listening for an action and handling API call results.

#7about 3 minutes

Using generics for common data structures like pagination

A generic `Pageable` class can standardize the structure for paginated API responses across an entire application.

#8about 1 minute

Adopting a generic-first mindset to improve code quality

Consistently applying generics helps you see code duplication as an opportunity to create powerful, reusable abstractions.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.