1、项目全称编码规范承建方全称目录1命名规范11.1 常量命名11.2 变量命名11.2.1 域类变量11.2.2 局部变量21.2.3 静态变量21.3 方法参数命名21.4 方法命名31.5 类命名41.6 包命名51.7 配置Bean命名61.8 文件命名61.9 数据表命名71.10 数据项命名71.11 外键命名91.12 索引命名92注释规范93编码规范101.1 开发环境101.2 编码风格111.3 接口规范111.4 目录规范121.4.1 源文件目录121.4.2 Web资源文件目录141.5 Ul前台编写规范151.6 JAVA编写规范181.7 JAVA集合类规范191.8
2、 Ajax应用规范191.9 JSP编写规范191.10 JS编写规范20文件名命名规范20命名空间(NameSpace)格式21命名规范22书写规范23对象创建说明23全局变量241.11 SQL编写规范251.12 编码最佳实践264异常规范265 日志规范265.1 系统日志265.2 业务日志276 Maven依赖构建规范286.1 Maven依赖287流程规范287.1 流程说明287.2 相关工具287.3 文档规范298版本管理规范298.1 文档规范298.2 代码规范301命名规范总原则:名称中不能以、飞等特殊字符开头和结尾;命名尽可能遵循术语表,尽可能符合标准的英文单词或缩
3、写,缩写在术语表中需有说明;命名尽可能做到见名知意,含义清晰准确,同时注意避免产生二义性;1.1 常量命名A常量统一大写;程序中的固定数字、字符串等,必须用常量来表示,并能正确表达其含义;常量尽可能写在相应的常量类中;【例子】STATUS_OF_START,STATUS_OF_END开始状态,结束状态PATTERN_OF_URL_FILTER1.2 变量命名自定义类型变量命名尽可能尽量保持和类名相同,只是首字母小写;【例子】UserRoleuserRole;当针对接口命名变量时,去掉变量前缀L其他规则不变;【例子】IUserServiceUserService;除了循环内部,竟可能避免使用单个
4、字符做变量;【例子】For(inti=0;ilength;i+).;1.2.1 域类变量以小写字母开头,单词之间以大写母分割;标识复数时尽可能以T结尾,当W无法表述时则以相应的集合类型做结尾;如果出现同类型的多变量声明,则应加业务单词前缀限定,避免直接在变量后加数字的方式区分;【例子】ListusersMappersonMapGradeExamgradeExam,GradeExamFefGradeExam1.2.2 局部变量以小写字母开头,单词之间以大写母分割;标识集合时应以相应的类型做些结尾,或者特殊类型的变量,通常使用其类型作为后缀,过长的特殊类型允许使用缩写;【例子】UserUserAr
5、rayListUserListMapuserMap;对于相同类型的多变量声明,加业务含义前缀限定【例子】Useruser;UsercheckedUser;1.2.3 静态变量静态变量统一大写;如果是一组静态变量,名称的开头应有类型限定词,词之间用下划线分割;【例子】ACTION_OF_ADD,ACTION_OF_UPDATE1.3 方法参数命名以小写字母开头,单词之间以大写母分割其他规则同局部变量避免出现使用argO,argl.argN类似的参数列表,参数命名需明确1.4 方法命名方法命名采用动宾结构+修饰词,其中动宾结构需要体现该方法的主要功能;【例子】getProduct(Stringid
6、)单个产品getProducts(Stringid,.)按照参数列表取多个产品,优先级高getProductList(Stringid9.)同上,如果s表述不了,采用此方式getProductArray(Stringid,.)按照参数歹U表取得产品数组getProductMap(Stringid,.)按照参数列表取得产品MAPgetProductWithName(Stringname)卞艮据名称取得产品getProductA11()非getAHProduct()取得所有产品getProductPage()普通的产品分页获取方法getProductPageWith*(.)特殊的产品分页获取方法动
7、词说明:对于Service层或DAO层的方法名称,使用get*已经能够涵盖所有的业务方法,所以自定义方法中尽可能避免使用find*或其他的动词方式;属性方法需遵需getset原则;【例子】Stringname;属性getName().setName(Stringname).对于表现层的主业务实体明确的Action层的常用业务方法定义;例子ProductActionlist()管理实体列表input()编辑实体(新增、修改)save。保存实体delete。删除实体enable。启用实体disable。禁用实体ajaxMethod()处理ajax交互的方法Action中result说明: 统一采用
8、小写方式 对于主业务方法,默认值为success,input,reload,list,error 如果上述不能满足则在基本值后加业务限定词【例如】IiStiteminputsubjectreloadsubject 如果Action中除了出业务实体外还存在其他业务实体的业务方法,则在基本方法后面加上相关名称;【例子】IistProductItem Service层和DAO层的常用业务方法定义;【例子】save*SaveEntity保存实体delete*deleteEntitydeleteEntitys删除实体get*getEntitygetEntityWith*取得实体getEntityPage
9、取得实体分体1.5类命名以大写字母开头,由多个单词组成的类名,各单词以大写字母分割; ACtiOn层的类命名必须以*Action结尾UserAction SerViCe层的类命名必须以*Service结尾UserService Dao层的类命名必须以*DA0结尾UserDAO vo层的类命名必须以*V0结尾UserVO model层的类命名User util层的类命名尽量以*Util结尾,根据需要可允许*Helper,*Holder形式的类名存在StringUtilModelHelperSpringContextHolder特殊说明对于model层实体命名; model包中实体bean与数据库
10、中的表名尽可能保持一致,如果数据库表名包含下划线,则在bean名中要予以摘除; 如果上述不能满足则按照术语表命名进行即可,必须保证实体名称在整个系统中的唯一性;接口命名以T开头IUSerSerVice,实现类名以ImpI结尾UserServiceImpl;补充说明:对于基础业务服务平台的对上数据服务及子系统中的对外接口需要遵循接口和实现类方式;1.6包命名 包的划分需要依据并且符合产品的业务架构划分,来源于产品线定义; 包的命名全部使用小写的ASCn字母,采用有意义的英文单词或术语表中的缩写,尽可能避免使用下划线或数字等其它字符;顶级包名com.unitever”,例如: com.unitev
11、er.framework(fe品的框架包) COm.unitever.base(产品的基础平台包) COm.unitever.子产品(子产品顶级包的命名)“子包”命名要遵循以下命名规则:common公共文件存储包common.util工具包common.helper辅助包component组件包core核心包annotation注解包constant常量包external对外提供接口包extemal.impl实现类包名service业务服务包dao数据库访问包webweb.actionmodelmodel.hbmvoil8n管理Web应用相关的包页面转发包领域模型相关的bean包管理与mode
12、l对应的hibernate映射文件包业务层之间的数据传递对象包国际化的资源文件包1.7 配置Bean命名考虑到模块化开发,在定义公共对象时,可能会存在重复定义的情况,例如,好几个模块都定义某第三方的代理工厂类时,这时为了避免命名冲突要求需要加上模块编码限定;转为Spring中配置文件的bean的id命名,尽可能按照类型名首字符小写方式;1.8 文件命名对于struts配置文件中CRUD业务的result文件命名: 列表方法对应entity.jsp 新增和修改方法对应于entity-input.jsp 尽可能避免出现数字配置文件的命名: spring:除了ApplicationContext.x
13、ml外,功能组件配置按照ApplitionContext-function-function.xml命名;【例子】applicationContext-cxf-client.xmlapplicationContext-cxf-server.xml 业务模块的按照applicationContext-module-function.xml命名【例子】application-ex-schedule.xml struts配置文件:除了主struts.xml外,各模块的配置统一用注解方式;如果注解方式不能满足,按照配置文件方式配置例子struts2-ex.xml 国际化资源文件按照如下格式编写:【例子
14、module-zh.propertiesmodule-en.properties全局资源文件为:global_zh.propertiesglobal_en.properties1.9 数据表命名表命名参照术语表,名称要求精炼地体现业务含义,尽可能避免出现2个以上的单词,单词长度尽可能短,表现同一业务含义的多个单词之间不必以_分割;【例子】XX_USERACCOUNT表名采用单数形式,统一大写;子系统的命名参照术语表;长度最大为30,禁止使用双引号【数据表名命名规则】 单业务表命名:子系统简写一表名 中间表命名:子系统_表1_表2system_table1_table2 数据表的OWner应该
15、是具体的设计人(VSS帐号),不应该是dbo或none1.10 数据项命名数据项命名中除了外键字段尽可能避免出现下划线,命名需参照术语表,统一小写,尽可能避免出现两个以上的单词,不需要包含表的名称信息;【例如】StUdent的名称nameStudentNamex尽可能避免系统保留字;单个业务实体表的主键必须为id;引用列命名采用id_引用表,如果是父子关系则为id_parent,按照重要程度顺序排列表其他字段前面;基本业务实体表必须具备修改人,修改时间,创建人,创建时间,删除标志字段;如果数据项是一个标志位,则尽可能提供缺省值;主键采用32为UUlD;长度最大为30,禁止使用双引号【允许使用的
16、数据类型】类型范围Sqlserver数据类型Oracle数据类型MySqI数据类型字符型长度固定charcharchar可变字符型长度不固定varcharvarchar2varchar32位整型-2,147,483,6482,147,483,647intintegerint日期型yyyy-mm-ddchar(10)char(10)char(10)日期时间型(精确到秒)yyyy-nm-ddhh_mm_sschar(19)char(19)char(19)日期时间型(精确到毫秒)yyyy-nm-ddhh_mm_ss_SSSchar(23)char(23)char(23)布尔型0(表示false)1(
17、表示true)char(l)char(l)char(l)大文本textdobtext【表模板参考】用于数据库文档编写数据项名称类型(精度)说明idchar(32)id_表名称char(32)关键字段ft(添加时间)char(19)。为有效,1为删除It(最后修改时间)char(19)fu(添加的用户)char(32)Iu(最后修改的用户)char(32)1.11外键命名外键名统一大写,格式为FK_外键表指向表;为了避免PDM中引用线太多,制订了如下规则进行控制,这些规则仅应用于外键的编码(CoDE)上:【例子】表A(TA)指向表(TB)外键NAME外键CODE模块内重要模块内非重要模块外重要模
18、块外非重要FK_TA_TBFK_TA_TB_11FK_TA_TB_12FK_TA_TB_21FK_TA_TB_22数据表中的外键约束必须建立,以保证数据的完整性;长度最大为30,禁止使用双引号1.12索引命名索引名统一大写普通索引格式为IND_SyStem_表名_字段名【例子】IND_EX_SSCORE_COURSE是为ra_sscore的id_course创建索引唯一索引格式为UNLsystem表名_字段名长度最大为30,禁止使用双引号2注释规范JaVa注释按作用分为两种:实现注释:对代码作用的解释,其表现形式又分为行注释和段注释。行注释:对一行代码的解释说明,以“”开头,结束属性的放在行结
19、尾,其他独占一行;【例子】publicStringname;行注释内容段注释:当需要描述的信息一行不能表述清楚时用段注释,一般放在所描述信息的前面,形式如下:【例子】*段注释内容*文档注释:对类公共方法、变量等信息的描述,以方便其他编程或维护人员对该类的了解及应用,通常以javadoc文档的形式提供给外界【例子】* main方法* paramargs参数*publicstaticvoidmain(Stringargs)注释应用规范: 接口中的方法和变量,参数需要写注释加以说明 SerViCe层业务方法需要写注释描述方法的职能 工具类中的公共方法需要写注释描述其功能 复杂逻辑计算过程的关键代码片
20、段处需要有注释说明 同一段代码片段被多人维护,每次修改需要写注释说明 变量命名时词不达意或会造成困惑的需要写注释加以说明3编码规范3.1 开发环境开发平台WindowsXPJDK版本Jdkl.6TOMCAT版本Tomcat6.0.18开发IDE工具MyEcIipseEnterpriseWorkbench9.OMl设计工具PowerDesigner9.5,RationalRose2003,MindjetManager9axureRP源码管理SVN文档管理MicrosoftVisualSourceSafe2005,ms-office2007数据库MicrosoftSQLServer2008r2系统
21、文件编码TF-83.2 编码风格代码风格主要包括缩进、空格、对齐、行距、词间距,注释等,总原则为: 缩进应为4个空格,不要在源文件中保留Tab字符。 变量应集中定义,定义的顺序为常量静态类变量,方法之间不应存在变量定义。 “厂应跟在类名、方法名、判断条件的后面,T应独占一行。 类体方法体代码块应该保持层次结构,关系密切的行对齐且不应存在无意义的空行等。 为了可维护性,类的大小应控制在2000行以内,超过部分要进行适当拆分,方法尽可能控制在100行以内代码风格统一进行管理,在初次导入工程时,需要为工程指定格式化模板文件,编写代码时,eclipse会自动按照上述要求来格式化代码片段。格式化模板文件
22、为cleanup-profile.xml和formatter-profile.xml33接口规范接口统一评审 子系统间的业务调用需要遵循接口-实现模式进行 除相互依赖的子产品,其他的接口调用都从基础平台获取 Web服务的业务调用需要遵循接口-实现模式进行 接口定义需要参考业务架构,职能定义必须清晰,同一业务职能的接口不应在一个以上地方分散出现 接口中的方法和参数需要有详细使用说明 子系统外部接口、基础业务平台对外接口、业务组件和控间的接口必须有专门的文档说明3.4目录规范结合业务架构,本着基础服务层和应用层分离的原则,将基本的公共的服务提取到基础服务平台,具体的业务归纳到相应的子产品线,实现基
23、础服务平台与子产品系统及子产品系统之间进行分离,以满足按需装配的需求,下面就具体相关目录结构进行说明3.4.1 源文件目录源文件夹产品项目分类包含开发框架、业务平台、子产品:1 .开发框架:提供核心API、工具、基础组件及服务的支撑。2 .业务平台:提供与业务相关的支撑服务及基础业务模块3 .子产品:存放与子产品相关的源文件4 .4.2Web资源文件目录开发框架、业务平台、子产品项目的WebaPP目录如下:开发框架业务平台子产品3.5UI前台编写规范规范目的为提高团队协作效率,便于后台人员添加功能及前端后期优化维护,输出高质量的文档,特制订此文档.本规范文档一经确认,开发人员必须按本文档规范进
24、行前后台页面开发.本文档如有不对或者不合适的地方请及时提出,经讨论后决定可以更改此文档.基本准则符合web标准,语义化html,结构表现行为分离,兼容性优良.页面性能方面,代码要求简洁明了有序,尽可能的减小服务器负载,保证最快的解析速度.目录结构规范1、其中COmmon一般只存放公用的css、images、jsjspui(前端组件)以及其他必须的公用前端文件。结构图如下:2、在example中存放所有示例文件,产品发布不包含此目录。3、PlatfOniI目录下存放开发平台相关业务组件。结构图如下:4、产品主题目录themes下存放各类主题,开发人员以默认主题default为主,结构图如下:(注
25、各组件样式命名规则如下图所示COm.hzth.组件名.css)5、国际化相关文件目录规划另定6、前端人员所有html,jsp测试页面均放在example目录下的test目录中。html书写规范1 .文档类型声明及编码:统一为html5声明类型;(注:独立的JSP页面中类型声明必须放在页面的第一句),编码统一为,书写时利用IDE实现层次分明的缩进;2 .非特殊情况下样式文件必须外链至.之间;非特殊情况下JaVaSCriPt文件最好外链至页面底部;3 .引入样式文件或JaVaSCriPt文件时,须略去默认类型声明,写法如下:.4 .引入JS库文件,文件名须包含库名称及版本号及是否为压缩版,比如j
26、query-1.4.1.min.js;引入插件,文件名格式为库名称+插件名称,比如jQuery.cookie.js;5 .所有编码均遵循xhtml标准,标签&属性&属性命名必须由小写字母及下划线数字组成,且所有标签必须闭合,包括br(),hr()等;属性值必须用双引号包括;6 .充分利用无兼容性问题的html自身标签,比如span,em,strong,OPtgrOUP,label,等等;需要为html元素添加自定义属性的时候,首先要考虑下有没有默认的已有的合适标签去设置,如果没有,可以使用须以“data为前缀来添加自定义属性,避免使用data:”等其他命名方式;7 .语义化html,如标题根据
27、重要性用h*(同一页面只能有一个hl),段落标记用p,列表用ul,内联元素中不可嵌套块级元素;8 .尽可能减少div嵌套,如class=box欢迎访问XXX,您的用户名是用户名完全可以用以下代码替代:欢迎访问XXX,您的用户名是用户名;9 .书写链接地址时,必须避免重定向,例如:href=11Uaolun,即须在URL地址后面加上“10 .在页面中尽量避免使用StyIe属性,即StyIe=.J;11 .必须为含有描述性表单元素(input,textarea)添加label,如姓名:须写成:labeIfor=name姓名:12 .能以背景形式呈现的图片,尽量写入CSS样式中;13 .重要图片必须
28、加上疝属性;给重要的元素和截断的元素加上title;14 .给区块代码及重要功能(比如循环)加上注释,方便后台添加功能;15 .特殊符号使用:尽可能使用代码替代:比如(>)&空格()&()等等;16 .书写页面过程中,请考虑向后扩展性;17 .class&id参见CSS书写规范.css书写规范1 .编码统一为utf-8;(eclipse中创建的css文件默认是GBK编码,要求变成UTF-8);2 .共用css文件base.css由我书写,每个页面请务必都要引入,此文件包含reset及公用样式,此文件不可随意修改;3 .class与id的使用:id是唯一的并是父级的,class是可以重复的
29、并是子级的,由于id在后台用得比较多,为了避免冲突,建议不用id作为样式选择器。特殊情况除外。CIaSS可用在重复使用率高及子级中;4 .class命名:样式名称避免使用中文拼音,尽量使用简易的单词组合;总之,命名要语义化,简明化.5 .css属性书写顺序,建议遵循布局定位属性-自身属性-文本属性-其他属性.此条可根据自身习惯书写,但尽量保证同类属性写在一起.属性列举:布局定位属性主要包括:margin&padding&float(包括clear)&position(相应的top,right,bottom,left)&display&visibility&OVerfIOW等;自身属性主要包括:
30、width&height&background&border;文本属性主要包括:font&color&text-align&text-decoration&text-indent等;其他属性包括:list-style(列表样式)&vertical-vlign&cursor&z-index(层叠顺序)&ZOOm等.我所列出的这些属性只是最常用到的,并不代表全部;6 .书写代码前,考虑并提高样式重复使用率;7 .充分利用html自身属性及样式继承原理减少代码量,比如:这儿是标题列表2011-03-15定义ul.listlipositionrelativeul.listHspanposition:a
31、bsolute;right:O即可实现日期居右显示8 .样式表中中文字体名,请务必转码成UniCOde码,以避免编码错误时乱码;9 .背景图片请尽可能使用SPrite技术(注:前端开发人员处理),减小http请求,考虑到多人协作开发,sprite按模块制作;10 .使用table标签时(尽量避免使用table标签),请不要用widthheightcellspacingCellpadding等table属性直接定义表现,应尽可能的利用table自身私有属性分离结构g表现,如thead,tr,th,td,tbody,tfoot,colgroup,scope;(cellspaing及Cellpadd
32、ing的css控制方法:tableborder:0;margin:0;border-collapse:collapse;tableth,tabletdpadding:0;,base.css文件中我会初始化表格样式)11 .用png图片做图片时,要求图片格式为png-8格式,若png-8实在影响图片质量或其中有半透明效果,请为ie6单独定义背景:(注:针对前端设计人员)Jbackgroundmone;J:ilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizmgMethod=crop,src=,imgbg.png,);12 .必须
33、为大区块样式添加注释,小区块适量注释;13 .代码缩进与格式:建议单行书写,可根据自身习惯,后期优化我会统一处理;JavaScript书写规范1图片规范1 .所有页面不参与主题更换影响的元素类图片均放入common目录下images文件夹,测试用图片放于example目录下的testimages文件夹;2 .图片格式仅限于gifIlpngjpg;3 .命名全部用小写英文字母H数字Il_的组合,其中不得包含汉字H空格Il特殊字符;尽量用易懂的词汇,便于团队其他成员理解;另,命名分头尾两部分,用下划线隔开,比如ad_leftOl.gifHbtn_submit.gif;4 .在保证视觉或果的情况下选
34、择最小的图片格式与图片质量,以减少加载时间;5 .尽量避免使用半透明的Png图片(若使用,请参考CSS规范相关说明);6 .运用CSSSPrite技术集中小的背景图或图标,减小页面http请求,但注意,请务必在对应的SPritePSd源图中划参考线,并保存至images目录下.注释规范1. html注释:注释格式,J只能在注释的始末位置,不可置入注释文字区域;2. css注释:注释格式*这儿是注释*;3. JavaScript注释,单行注释使用这儿是单行注释:多行注释使用*这儿有多行注释*开发及测试工具约定测试工具:前期开发仅测试FireFOx&IE8&IE7&Safari&IE6,后期优化时
35、加入OPera&Chrome;建议测试顺序:FireFox-IE8-IE7-Safari,-Opera-Chrome-IE6建议安装firebug及IETabPlus插件.其他规范1 .开发过程中严格按分工完成页面,以提高CSS复用率,避免重复开发;2 .减小沉冗代码,书写所有人都可以看的懂的代码.简洁易懂是一种美德.为用户着想,为服务器着想.3.6JAVA编写规范尽量避免调用使用Deprecated注解的方法;import类名需要明确,不允许按通配符进行import;importCOm.hzth.core.config.ConstantsNimportcom.hzth.core.*;x不允许
36、出现声明了变量却不被使用; 不需要的代码块必须去除,保持代码的清洁; 尽可能去掉代码中的TODOAuto-generatedmethodstub语句; 类的属性,静态变量声明尽可能集中放置,尽可能避免出现属性,变量散落在文件各处; Action层、Service避免出现SQL或Hql语句; Action层避免直接调用DAO层方法; 尽可能避免request,response对象直接出现在Service和DAO层; 类的包命名定义尽可能遵循包的职能定义(如有包定义缺失可以补充); 对于可变的路径名,参数变量尽可能避免写死,应该通过配置方式解决; 尽可能避免循环体嵌套或考虑是否有替代算法; 对于复
37、杂的逻辑处理应该先写单元测试用例; 为了防止Sql注入,在使用hibernate或编写SQL时尽可能使用:Var或?方式绑定参数值;3.7 JAVA集合类规范允许使用的集合CollectionListArrayListLinkedListSetHashSetLinkedHashSetMapHashMapLinkedHashMap3.8 Ajax应用规范总原则:通过应用AjaX技术提升用户的WEB体验,同时满足用户业务需求,不背离用户的使用习惯,并且需要保证应用程序的稳定性和健壮性;对于页面内容(或分页列表)局部更新,建议尽可能使用AjaX方式更新数据;对于表单提交场景,需要根据实际需要(比如表
38、单提交后页面需要跳转等场景不适合ajax)进行相应Ajax技术应用;对于表单域的数据实时联动,建议尽可能应用AjaX技术动态加载数据;对于部分用户互动场景(比如快速回复等),可以考虑应用ajax技术提升用户体验;基于性能考虑,对于页面大量元素构造的场景尽可能避免使用ajax技术,而应使用Java来替代JS;3.9 JSP编写规范 JSP页面首行必须设置为 JSP页面注释必须用,不允许使用 JSP页面必须设置Page指令,指定页面内容类型或编码,编码目前统一采用UTF-8;AJSP页面不允许使用import=四. JSP页面不允许出现JAVA代码; 页面跳转刷新方式都以AjaX方式进行,特殊情况
39、除外 页面DOM.id必须增加$作28日口前缀 各页面通用的引入标签、公共属性、公用的CSS及JS文件可写在一个单独的文件中,在页面头部包含进来; 所有标签有封装的必须使用封装标签,原生标签、S2标签会存在验证问题 所有会引起用户数据删除、在编辑数据丢失的操作都需要弹出确认窗口确认(调用统一JS方法) 页面表格都统一采用数据表格,批量操作按钮、添加按钮放在表头,其他行级操作按钮放到行尾或查看编辑页面里面 考虑到换肤功能,CSS及关联的JS的引用路径需要可配置; 书写的CSS、JS、JSP、模板文件等等都需要做浏览器验证,初步保证IE和火狐正常使用 使用标签时统一采用小写方式; 页面的资源路径定
40、位避免使用湘对路径,应根据Web应用的“根目录进行定位; 为了避免脚本注入,JSP页面的值输出尽可能使用jstl的c:OUt方式;3.10 JS编写规范3.10.1 文件名命名规范3.10.1.1公共js文件(组件、工具等)第三方文件名:层级结构.功能名.版本Ljs例如:jquery.ui-1.0.jsjquery-1.6.2.jsjsMap.js非第三方文件名:Com.ue所属包.文件名.js例如:com.ue.page.jscom.ue.page.drag.jscom.ue.cmpt.cmptName.js说明:在第三方基础上修改的按需决定是否改名。好处:1 .方便文件移动,避免命名冲突;
41、2 .方便根据代码定位文件地址;3 .格式规范统一。文件名命名规则:小写开头,允许大小写字母、数字、中划线,非第三方文件名建议采用驼峰命名法,文件名避免过短(长度少于4),避免过长(长度大于40),做到见名知意。特殊情况讨论决定。公共JS文件会在页面头部统一引入,非特殊情况不需要再单独引入。3.10.1.2离散js文件(模块内页面所需)模块内页面对应的离散js文件不做包结构要求,可直接使用:文件名木的方式存放在模块内相应位置,命名规则参考上面所述规则。例如:CmPageHelpjs3102命名空间(NameSPaCe)格式3.10.2.1 NS格式模块专属代码:统一命名前缀.模块名简写公共代码
42、统一命名前缀.公共标识本次编码统一前缀:COm.ue例如:com.ue.cm.CourseHelper一个类com.ue.cm.temp一个子包或实例com.ue.cm.inputPage定义了一个实例com.ue.cmpt.artDialog定义了一个公用组件com.ue.tool.terminal定义了一个工具实例3.10.2.2 固定组件包组件包:com.ue.cmpt存放自定义或第三方js组件工具包:com.ue.tool存放公用的工具类3103命名规范总原则:见名知意、不混淆含义的前提下尽可能简短命名对象规约大小写举例包名同级唯一的一个单词或含义唯一的字母组,无驼峰和特殊符号。全部小写com.ue等模块名同级唯一的模块首字全部小写cmSt等母缩写类名一或两个单词或复合词,无特殊符号,驼峰命名。所有单词首字母大写Course、Teacher、ExamHeIper等属性名一个或多个单词或复合词,无特殊符号,驼峰命名首字母小写,后续单词首字母大写name、PhoneNumber等方法名一个或多个单词或复合词,无特殊符号,驼峰命名首字母小写,后续单词首字母大写getName、ConvertDate等变量名除计数可以用单个字母如:i,j,k