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".