dev:angular_dev_best_practices
This is an old revision of the document!
Evergreen Angular Development Best Practices
Work in progress. Loose collection of practices to review with developers so we can agree on UI developer guidelines.
- Run 'ng build --prod' before committing.
- This ensures the templates also compile successfully.
- Run 'ng lint' before committing.
- This does more than check style, it also warns when an import pulls in too much code, among other things.
- use camelCase variables when possible for consistency. (Note fields on IDL objects don't apply).
- Design for screen width of 1350 pixels.
- This is somewhat arbitrary, but seems to cover most laptops and smaller (non-mobile) screens without being too limiting.
- Browser dev tools can show the width of the current browser window.
- Use 2-space indentation in HTML files
- Use 4-space indentation in Typescript and CSS files.
- Avoid column widths in code that extend well beyond 80-100 characters
- Use Bootstrap utility classes when possible instead of writing custom CSS.
- These are especially useful for margins and padding.
- Use console.debug() for debugging. Use console.log() sparingly. Excessive logging can impact UI speed.
- Make resources deep-linkable where possible (/eg2/path/to/thing/id)
- Give form inputs ID values with linked i18n labels
- <label for="patron-name" i18n>Name</label><input id="patron-name" …/>
- Beware repeatable components have unique form input IDs (extend id with incrementor, random(), etc.)
- Give images, buttons, etc. meaningful title attributes
Unit Tests
- Files named *.spec.ts are automatically treated as unit test files.
- Unit test files should live in the same directory as the code they are testing.
- e.g. idl.service.ts and idl.spec.ts are in the same directory.
- See Open-ILS/src/eg2/src/app/core/*.spec.ts files unit test examples of core services.
- The highest priority for unit test implementation are shared *.service.ts files since changes to these files have the broadest impact.
dev/angular_dev_best_practices.1548096186.txt.gz · Last modified: 2022/02/10 13:34 (external edit)