Angular Architecture and Best Practices

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.


Dan Wahlin

Course Length

4 Days


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

Private Onsite/Online Pricing for Development Teams

Class pricing is based on the number of class days and number of students in class. We normally allow up to 24 students per class.

The course pricing includes student access to an electronic version of the course manual, lab manual, sample code and lab code. Courses can also be customized if you'd like to run a shorter or longer version of the course.

If you'd like more information on pricing or want to schedule a class for your development team please contact us and we'll be happy to provide addition details.

Contact Us

Public Classes

We don't offer public classes or one-on-one classes for individuals. For public classes we partner with Interface Technical Training and they offer instructor-led classes in Phoenix, AZ or online through their RemoteLive technology.

Training Courseware

Contact Us about licensing our courseware (slides, course manual, lab manual and code) for your own training courses.


Join Our Development Newsletter!