ExtJS类命名规范咨询:模型、视图、控制器等不同类型类的命名规则
ExtJS 类命名官方约定规范
通用基础规则
- 所有类的顶级命名空间统一使用大驼峰格式,比如应用标识
MyAPP,禁止小写、下划线或特殊符号开头 - 类命名空间层级和项目目录结构完全一一对应,类名的每一段对应一个目录,最后一段类名和文件名完全一致,例如类
MyAPP.model.Person对应的文件路径固定为app/model/Person.js - 除特殊标识后缀外,所有类名统一使用大驼峰(UpperCamelCase)格式,禁止使用蛇形命名、短横线命名
不同类型类的专属命名规则
模型(Model)
官方默认约定不需要加
Model后缀,因为类已经归属在model命名空间下,足以明确类型属性
- 官方推荐写法:
MyAPP.model.Person,对应文件app/model/Person.js - 你遇到的
PersonModel写法属于部分团队的自定义内部规范,不属于官方推荐方案,会造成命名冗余
视图(View)
- 通用业务视图按所属模块+功能命名,不需要加冗余的
View后缀,例如用户列表视图MyAPP.view.user.UserList,对应文件app/view/user/UserList.js - 继承自特定ExtJS基础组件的视图类,可以加对应组件类型后缀方便快速识别,例如
UserForm(表单)、RoleGrid(表格)、PermissionTree(树)
控制器(Controller)
- 全局控制器:按业务模块命名,不需要加后缀,例如用户管理模块控制器
MyAPP.controller.UserManager,对应文件app/controller/UserManager.js - 视图控制器(ViewController,ExtJS 5.0+新增):和绑定的视图同名,加
Controller后缀,例如视图MyAPP.view.user.UserList对应的视图控制器为MyAPP.view.user.UserListController,对应文件app/view/user/UserListController.js
视图模型(ViewModel,ExtJS 5.0+新增)
- 和绑定的视图同名,加
Model后缀,注意和数据层的Model区分,它属于视图层配套类,例如视图MyAPP.view.user.UserList对应的视图模型为MyAPP.view.user.UserListModel,对应文件app/view/user/UserListModel.js
数据仓库(Store)
- 全局公共Store归属在
store命名空间下,按业务功能命名,不需要加Store后缀,例如用户列表StoreMyAPP.store.Users,对应文件app/store/Users.js - 绑定到特定视图的私有Store可以放在对应视图目录下,加
Store后缀区分类型
工具类/公共辅助类
- 一般归属在
util、helper或common命名空间下,按功能方向命名,可加Util、Helper后缀标识工具属性,避免和业务类混淆,例如日期工具类MyAPP.util.DateUtil、正则校验辅助类MyAPP.util.RegexHelper,对应文件app/util/DateUtil.js
特殊场景补充规则
- 仅内部使用不对外暴露的私有类,可在类名前加下划线前缀标识,例如
MyAPP.view.user._UserListItem - 常量类的属性统一全大写,用下划线分隔,例如
MyAPP.constant.RoleType.ADMIN = 'admin'
内容的提问来源于stack exchange,提问作者user5507535
相关产品推荐
相关产品推荐

