Angular Architecture and Best Practices

Angular Architecture and Best Practices
Instructor: Dan Wahlin

Course Length: 4 Days

Course Description

A lot of questions typically come up as developers write application code. For example, are you following established best practices? How easy will it be to maintain and refactor the application in the future? If you're starting a new application from scratch, what application architecture should be used? These types of questions are common when building any type of application especially when you're focused on meeting a deadline. While there's a lot of information out there about the core concepts of Angular, very little focuses on architectural concepts, best practices, and how to solve some of the more challenging tasks that come up.

The Angular Architecture and Best Practices course will provide guidance to help you think through the process of building a solid application architecture that is easy to refactor and maintain. Some of the topics covered include component communication techniques, state management, code organization, general best practices, performance considerations, and more.

This course provides a combination of instructor-led training combined with hands-on architecture to evaluate an existing application at your company, create a seed project that can be used for future projects, or start the analysis and work on a new project.


Existing knowledge of Angular and TypeScript is required.


This course is designed for Angular developers looking to take their development skills and knowledge to the next level.

Course Outline

  1. Planning the Application Architecture
    • Architecture Considerations
    • Architecture Planning Template
    • The Angular Style Guide
  2. Organizing Features and Modules
    • Organizing Features and Modules
    • Core and Shared Modules
    • Preventing Reimport of Core
    • Reviewing Module Organization
    • Custom Libraries
  3. Structuring Components
    • Container and Presentation Components
    • Passing State with Input and Output Properties
    • Change Detection Strategies
    • ngOnChanges: Reference vs. Value
    • Cloning Techniques
    • Component Inheritance
  4. Component Communication
    • Component Communication Techniques
    • RxJS Subjects
    • Creating an Event Bus Service
    • Creating an Observable Service
    • Unsubscribing from Observables
  5. State Management
    • The Need for State Management
    • State Management Options
    • Using Services
    • Using Ngrx
    • Using ngrx-data
    • Using Observable Store
    • Reviewing State Managmeent Options
  6. Additional Considerations
    • Interfaces, Classes, and Enums
    • Functions versus Pipes
    • Adding a Memo Decorator
    • HttpClient and RxJS Operators
    • Using Interceptors


Join Our Development Newsletter!