有一条好的软件设计原则叫CoC(Convention over Configuration),即惯例优于配置原则,详见:wiki
项目需要一个好的命名规范,这样可以大大降低学习成本以及查找成本,通过对文件名以适当的形式命名,可以非常快速的知道这个文件的类型,作用以及用来实现的功能。在本项目开发的过程中,主要参考了两个命名规范:一个是github上关于angularjs的规范,一个是google自己的angularjs规范,一般他们都叫style guide:
https://github.com/mgechev/angularjs-style-guide
https://google.github.io/styleguide/angularjs-google-style.html
下面具体说一下,对于angularjs项目主要有两种:1)如何命名文件名,2)如何命名angularjs各种模块,当然了还有许多更详细的方面,有兴趣的请仔细阅读上面给出的两个参考。
(一)文件名
总体原则:英文全部小写,用‘-’进行单词分割,这样比较利于人眼阅读,比如:disk-creation.html,add-disk-dialog.html。其实最好全用名词性短语起名,但是英语水平有限,用动宾短语形式也可以接受。
还有就是一个文件代表一个angularjs模块,尽量不要在一个文件里写多个模块,比如在一个文件里写多个controller,这样非常不好查找,不利于后来新人快速学习。
- controller模块以“.controller”结尾,例如server.controller.js,add-disk.controller.js
- service模块以“.service”结尾,例如:server.service.js
- module模块以“.module”结尾,例如app.module.js,app-hardware.module.js
- 路由文件以“.routes”结尾,例如hardware.routes.js,这里看项目对路由是如何处理的,根据自己项目需要
- directive模块以“.directive”结尾,例如menu-list.directive.js,如果一个文件里写了多个小directive,用复数(directives)形式结尾
- filter模块以“.filter”结尾,同理多个filter写在一个文件的用filters结尾
- 压缩过的模板文件用“.templates”结尾,例如app.templates.js
- Controller名称以Ctrl结尾,开头单词大写,因为angularjs中的Controller是个类概念,在使用的时候会被实体化,所以遵循类的命名范式。例如ServerCtrl,ServerCreationCtrl
- Service名称以Srv结尾,开头单词小写,因为angularjs中的Service是个单例概念,不需要被实例化。例如serverSrv
- Directive没有做强制要求,能描述功能就可以,但其实开头应该加上项目名称简写的前缀,这样在使用的时候非常容易区别到底是自己写的还是导入第三方库的directive,例如项目叫console,应该以cs开头命名,就像angularjs内置的directive都以ng打头一样
- Filter没有强制要求,可以参考上面的两个style里有啥说法
- Module的名称,本项目中都以小写命名了,并且用点分割父子关系,比如hardware子模块叫app.hardware
- Utils,这里所谓的Utils还是Service,就是叫习惯了,所以有些通用的功能需要封装的,就叫Utils了。比如httpUtils,domUtils。当然了文件名还是以“.service.js”结尾,如果觉得会有困扰,根据自己的需求,可以改成Srv结尾
module.controller('diskCreationCtrl',['$scope','$uibModalinstance',function($scope,$uibModalinstance){}])还是用$inject形式,就仁者见仁智者见智的问题了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。