Skip to content

Technical Discussion Records

See About for information on Architectural Decision Records and Technical Discussion Records.

Chunking And Lazy Loading

To facilitate frequent updates to code which is enabled by CI/CD, we will use the following guidelines. Chunking and Structuring Compiled Angular Applications

Components

Standalone Components

Components must be standalone. No longer build Angular applications using the NgModule style. For more information see Use Standalone Components

Inline Styles and Templates

Prefer using inline-styles and templates. See Prefer Inline Templates and Inline Styles

Use Signal-Based State

No state in a component should be "raw" variables that need to be tracked by Angular's Zone-based change detection. Use Signals, or, if not possible (yet) Observables can be used. See Use Signal Based State

Prefer Logic-Free Components

Components statistically have the most "churn" in Angular apps. In order to facilitate this, Prefer Logic Free Components

Project Structure

Prefer to organize your application's source code around business-facing features as opposed to technical concerns.

Since Angular applications are a tool to manipulate (and provide) the Document Object Model, the DOM is a hierarchy, and our Angular components mirror that hierarchy.

The root of almost all Angular applications is the app-root (the ApplicationComponent). We will call this the "Application".

Services and Service Registration

See Services and Service Registration