重庆软博科技有限公司
密级:
文档编号:
金蝶 s-HR web 开发规范及培训
重庆软博科技有限公司
二〇一八年五月
1
重庆软博科技有限公司
密级:秘密
版本号说明与版本历史
版本号说明
本文档的内容可能由于项目的持续工作而发生更改。每次更改,文档的发布日期和递进版本号都将明显
的被更改。版本号的递进遵循以下原则:
版本 xx.yy.zzz
z 当文档中仅加入了纯粹编辑的更改时,第三位数字发生增长。初始数字为 0。
Y 当其它类型的更改发生时,如技术改良、更正、维护等,第二位数字发生增长。初始数字为 0。
X 当文档确定为一个阶段性文档时,第一位数字发生增长。初始数字为 1。
版本历史
日期
版本
修改内容说明
评审号 变更控制号
作者
2018-05-31
1.0.0
创建文档编写大纲
邓泽鹏
第 2页 共 113页
重庆软博科技有限公司
密级:秘密
本文件中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,
除另有特别注明,版权均属重庆软博科技有限公司所有,受到有关产权及版权法
保护。任何个人、机构未经重庆软博科技有限公司的书面授权许可,不得复制或
引用本文件的任何片断,无论通过电子形式或非电子形式。并不得向第三方展示、
传播本文件中的部分或全部内容。
第 3页 共 113页
重庆软博科技有限公司
密级:秘密
目录
第 4页 共 113页
重庆软博科技有限公司
密级:秘密
1 概述
1.1 目的
该文档是根据已开发项目之后整理出来的开发规范及培训资料以及经验分享,为了能使开发人员更好的
掌控金蝶 s-HR web 的二次开发以及为新员工提供的学习文档。
1.2 涵盖内容
1、开发规范
2、培训
3、经验、案例分享
2 开发规范
2.1 有关命名规范
尽量保证能够通过变量名得知变量的含义、尽量用通俗易懂的英文单词进行命名。
2.1.1 包命名
包命名采用全小写命名
通过唯一域名+组件来命名
2.1.2 类命名
类命名采用 Pascal 命名法
大写字母开头,各个单词首字母大写
如果是扩展系统的类或者 JS 文件名称命名为:标准的名称+Ext,包路径保持跟系统标准的一样。
如果是新开发单据 handler、JS:模型+EditHandler.java、模型名称+ListHandler.java 、模型名称+
Edit.js 、模型名称+List.js
第 5页 共 113页
重庆软博科技有限公司
密级:秘密
2.1.3 方法命名
方法命名采用 Camel 命名法
小写字母开头,各个单词首字母大写
属性的 getter 和 setter 方法尽量使用自动生成,并放在程序的后面。
Boolean 类型的属性的 get 方法应形如 isProperty()
2.1.4 变量命名
采用 Camel 命名法
小写字母开头,各个单词首字母大写
特有大写缩写词汇保持大写如:SQL
变量名字不宜过长,可适当采用缩减英文元音字母来缩短长度
假如缩短后名字重复,可以保留其中一个的部分元音字母
2.1.5 常量命名
采用全大写命名法
所有字母均大写
2.1.6 Facade 命名
类命名采用 Pascal 命名法
大写字母开头,各个单词首字母大写
以”Facade”结束
2.2 有关注释
开发人员都应该形成良好的写注释的习惯,方便以后阅读,以及为了后期生成可读性良好的 Java
Doc。
第 6页 共 113页
重庆软博科技有限公司
密级:秘密
2.2.1 程序文件头注释
通过设置注释模板设置类、方法、变量注释。
codetemplates.xml
2.2.2 方法头注释
同上
2.2.3 关键点注释
应该包含如下信息:
* 一些程序关键的地方
* 一些程序不易读的地方
* 编写代码过程中遇到问题的地方
* 需要提示读者的地方
注释应该写得少而易懂
若修改了文件,可以加上修改人的信息,和修改日期。
2.3 格式规范
2.3.1 缩进
应注意使用 format 来格式化代码,使用 Tab 键来缩进代码,相当于 4 个空格。
2.3.2 换行
if、while 等语句,假如体内只有一句代码也不要省略{},为了方便以后的增删
字符串过长考虑拆分成多行
2.3.3 对齐
类和方法的块注释必须紧贴类和方法
单独起行的//注释必须对齐被注释语句
第 7页 共 113页
重庆软博科技有限公司
密级:秘密
2.4 异常处理
2.4.1 s-HR 抛出异常方式
2.4.1.1
s-HR 在 Handler 中抛出异常
2.4.1.1.1 EASBizException 异常
捕捉到 EASBizException 抛出 ShrWebBizException(e.getMessage(),e),此时异常
提示信息正常,错误堆栈信息可以正常打印,推荐该方式。
} catch (EASBizException e) {
throw new ShrWebBizException(e.getMessage(),e);
}
2.4.1.1.2 BOSException 异常
BOSException 较为复杂,推荐方法为直接抛出
} catch (BOSException e) {
throw new SHRWebException(e);
}
第 8页 共 113页