- 变量:小驼峰 (例:userName)
- 常量:全部大写,单词间以下划线连接 (例:NAV_MENU)
- 私有变量:下划线开头 (例:_userName)
- 类名:大驼峰 (例:UserName)
- 枚举:大驼峰
- 组件指令选择器:小写短横线连接 (例:app-demo)
- 管道:名小驼峰,类名大驼峰
-
文件结构及文件名
小写短横线连接(例:hr-list)使用点来分隔描述性名字和类型,模式为feature.type.ts 【 如.service.ts、.component.ts、.pipe.ts、.module.ts、.directive.ts】或者其他少量的自定义类型
单个组件所有文件放同一文件夹下,不同类型(指令、管道、服务)以文件夹分开
最佳实践,推荐写法
一个函数行数不要超过75行(单一职责原则),一个方法应该作为整体去完成一件事情,如果其中有多个操作,那么我们可以抽取这些方法,形成独立的函数,使得他们独自负责各自职责,再去调用他们,因为长方法难以阅读、理解以及维护。他们容易产生bug,因为改变其中一部分很可能影响方法内的其他逻辑。这也使得代码重构更加难以进行。
- 一个文件代码行数不要超过400行,单组件文件非常容易阅读、维护,并能防止在版本控制系统里与团队冲突,并且可以让代码更加可复用、更容易阅读,减少出错的可能性
- 以.state.service.ts结尾的文件来定义数据层(用来做数据请求隔离,以及非交互的业务比如增删改查),一般一个文件对应一个对象实体(若业务逻辑实在复杂也可拆分为几个文件并放置在同一文件夹下)
- DRY原则(Don’t Repeat Yourself)
- 一个小模块独立一个路由模块,且懒加载(注意要避免直接导入惰性加载的模块)
- 封装公用组件注意解耦
- 将组件的表现层逻辑放到组件类而非模板里,可以增强测试性、维护性和重复使用性。
- 尽量避免使用 any 类型
- 避免使用无意义的变量名
- 避免使用无意义的类型值来赋值或比较(使用枚举值代替)
- 避免对于据有某些特定值的string类型定义为 string(使用string的枚举类型代替, 如 ‘apple’|’banana’ 替代 string)
-
后台
字段统一,避免前端重复取值
- 排序页数避免1,2,3数字
- 不使用魔法值