dev:angular_dev_best_practices
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
dev:angular_dev_best_practices [2019/01/21 13:43] – prevent wiki autoconversion of double-dash rjs7 | dev:angular_dev_best_practices [2022/02/10 13:34] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 4: | Line 4: | ||
Loose collection of practices to review with developers so we can agree on UI developer guidelines. | Loose collection of practices to review with developers so we can agree on UI developer guidelines. | ||
+ | ==== Code quality ==== | ||
* Run %%'ng build --prod' | * Run %%'ng build --prod' | ||
Line 9: | Line 10: | ||
* Run 'ng lint' before committing. | * 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. | * This does more than check style, it also warns when an import pulls in too much code, among other things. | ||
+ | * Make sure that 'ng xi18n' runs before committing (some i18n syntax errors are not caught by ng build) | ||
* use camelCase variables when possible for consistency. | * use camelCase variables when possible for consistency. | ||
- | * 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 2-space indentation in HTML files | ||
* Use 4-space indentation in Typescript and CSS files. | * Use 4-space indentation in Typescript and CSS files. | ||
* Avoid column widths in code that extend well beyond 80-100 characters | * Avoid column widths in code that extend well beyond 80-100 characters | ||
+ | * Avoid subscribing to Observables within other subscriptions (nested subscriptions). | ||
+ | |||
+ | ==== UI ==== | ||
+ | |||
+ | * 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 Bootstrap utility classes when possible instead of writing custom CSS. | * Use Bootstrap utility classes when possible instead of writing custom CSS. | ||
* https:// | * https:// | ||
Line 24: | Line 30: | ||
* <label for=" | * <label for=" | ||
* Beware repeatable components have unique form input IDs (extend id with incrementor, | * Beware repeatable components have unique form input IDs (extend id with incrementor, | ||
- | * Give images, buttons, | + | |
+ | | ||
+ | * Test keyboard navigation with tab, shift+tab, arrow keys, and other keys as appropriate. Make sure that all buttons, | ||
+ | * The [[https:// | ||
+ | * Don't add Bootstrap' | ||
+ | * Make sure that your screens have an < | ||
Line 33: | Line 44: | ||
* e.g. idl.service.ts and idl.spec.ts are in the same directory. | * e.g. idl.service.ts and idl.spec.ts are in the same directory. | ||
* See Open-ILS/ | * See Open-ILS/ | ||
- | * The highest priority for unit test implementation are shared *.service.ts files since changes to these files have the broadest impact. | + | * The highest priority for unit test implementation are shared *.service.ts files, followed by shared components, |
dev/angular_dev_best_practices.txt · Last modified: 2024/09/15 13:03 by sandbergja