All programming roads lead to launching a product.

Either by ourselves or for a company, we program so that we can launch products. Learning how to launch an enterprise-grade product from the ground up changes everything.

Join us for a series on how to build enterprisey products!

Frontend Masters Logo

Let's Build Enterprisey Products

Hey there!

As we begin our programming journey, it's common to feel overwhelmed by the challenge of understanding how things work. But don't worry, as we progress, our focus shifts towards comprehending how things work together.

When it comes to enterprise development, the stakes are much higher! We need to assemble multiple moving pieces from various sources to create a system that can withstand the demands of an exceptional number of users.

Enterprise development is all about building systems that can bear the weight of a large number of users. What works at 1,000 users may not work at 100,000 users. As the scale changes, we have to think differently about our domain and consider the impact of improper coupling beyond a certain threshold. We must develop features in isolation without inadvertently causing problems for other teams. It is crucial to have a way to release a feature independently of all other features within the application.

We'd love to invite you to join us on a collaborative journey. We'll share with you the principles and techniques we have used to build enterprise applications since before JavaScript was considered a serious language. We believe that an engineer who knows how to develop and release a scalable product into the market will always have opportunities.

Let's do this together!

Enterprise Angular Logo

Enterprise Angular Workshop

We will start with a functional, albeit flawed, Angular application. Through a series of iterations, we will refactor the sample application to be more extensible and scalable. We will anchor our discussion around domain-driven design principles and then look at practical ways to orient our application around a business domain. We will learn how to organize our code and files within a monorepo to reduce coupling while promoting meaningful cohesion. By the end of the workshop, we will clearly understand how to shift the business logic into stand-alone libraries so that it can be reused within lightweight frontends that can ultimately be composed into a single, federated frontend.

We will also see how to properly segment your application layers to decouple your front end from your back end while increasing opportunities to write more effective tests.

Chapters

01: Domain Driven Design

Organizations run into huge problems when their codebase does not align with their business domain.

02: Monorepos and Tooling

Reduce coupling while promoting cohesion with monorepos.

03: Microfrontends

Microfrontends are a game changer for developing and deploying in parallel.

04: Reactive Architecture

Reactive architecture allows us to move business logic away from the component layer.

05: State Management

State management is one of the most challenging aspects of large scale development.

06: Standalone Components

Standalone components promotes reusability through a lightweight and portable approach.

07: Unit Testing Patterns

Unit tests are one of the most reliable markers of overall code quality and sanity.

08: E2E Testing Patterns

Automated E2E tests is basically a money printer hiding in plain sight.

09: Performance Tuning

The user experience is the ultimate benchmark and this is why performance tuning is so critical.

10: Deploying

Being able to quickly and easily deploy your application somehow still feels magical after all this time.

Prerequisites:

  • Solid understanding of JavaScript, HTML, and CSS
  • Solid understanding of Angular fundamentals
  • Current version of Node.js and NPM
  • GitHub account
  • AWS account for deployments