JAVA技术开发规范(4)——JASMP平台的开发代码规范

4、关于代码规范

代码规范对程序员的重要性:

1、在软件开发生命周期中,有80%的时间是用在维护上

2、几乎所有的软件维护者都不是创使人

3、迭代式开发,必须要有清晰、可读性强的代码,以便于快速迭代

4、敏捷开发时,对应文档的输出不是减少,而是更加实用,因此,可交付的易读的代码更为重要了

5、协同协同,必需确保在编码时遵循统一的规范

编码规范是必需的,每个参与人必需严格遵循该规范进行编码。

4.1、命名规范

基本原则:

1、采用英文全称进行命名

2、保持各层级名称基本统一

3、命名英文单词用全称,避免用简称

4.1.1、模块命名规范

作用:对于系统子模块进行命名,从而区分各子模块的含义。

要求:子模块名称采用子模块的英文简写,一般如果名称由多个英文单词组成时,采用首字母组合;如果由单个英文单词组成时,取该该单词的简写。

职责:产品经理负责进行命名

模块命名表:

序号 简称 全称 中文
1 SYS System 系统管理
2 BASE Base Data 基础数据
3 PPM Project Plan Manger 项目计划管理
4      
5      

4.1.2、数据库命名规范

数据库对象包括(表,视图,存储过程,函数等),应遵守下面命名规则,其中(AAA是模块简称,例如: SYS、BASE、PPM等等)

对象类型 格式 说明 备注
Table AAA_DDDDD_T AAA = 模块简称
DDDDD  = 表对象
T  = Table的简写
1、表名不超过32个英文字符
2、DDDDD为表名称,采用英文单词,多个英文单词时,用下划线隔开
3、例如:SYS_USER_ROLE_T
View AAA_DDDDDD_V AAA = 模块简称
DDDDD  = 视图对象
V  = View的简写
1、视图名不超过32个英文字符
2、DDDDD为视图名称,采用英文单词,多个英文单词时,用下划线隔开
3、例如:SYS_MENU_V
Sequence AAA_DDDDDD_S AAA_DDDDD  = 表对象
S  = Sequence的简写
1、AAA_DDDDD同表对象
2、例如:SYS_MENU_S
Procedure AAA_DDDDD_PRC AAA = 模块简称
DDDDD  = 存储过程方法名
PRC  = Procedure的简写
1、表名不超过32个英文字符
2、DDDDD为存储过程方法名,采用英文单词,多个英文单词时,用下划线隔开
3、例如:AP_VENDOR_PRC
Function AAA_DDDDD_FUN AAA = 模块简称
DDDDD  = 函数方法名
FUN  = Function的简写
1、表名不超过32个英文字符
2、DDDDD为函数方法名,采用英文单词,多个英文单词时,用下划线隔开
3、例如:AP_VENDOR_FUN
Package AAA_DDDDD_PKG AAA = 模块简称
DDDDD  = 包名称
PKG  = Package的简写

1、表名不超过32个英文字符
2、DDDDD为函数方法名,采用英文单词,多个英文单词时,用下划线隔开
3、例如:AP_VENDOR_PKG

4.1.3、程序文件命名规范

1、文件扩展名:

文件类型 扩展名
Java source .java
Java bytecode .class
Java archive .jar
WAR file .war
EAR file .ear
XML Document .xml
Property file .properties
Java Server Page .jsp
HTML Page .html
Java Script .js
CSS .css

2、JAVA文件命名

文件属性 扩展名 格式 说明
VO .java DddddVO Ddddd:表示业务对象,一般与表对象保持一致,类名称首字母大写,后面采用驼峰状命名
VO:表示该对象为VO对象
DAO Interface .java IDddddDao I:Interface简写
Ddddd:表示业务对象,一般与表对象保持一致,类名称首字母大写,后面采用驼峰状命名
Dao:表示该接口为Dao接口
DAO Implement .java DddddDaoImpl Ddddd:表示业务对象,一般与表对象保持一致,类名称首字母大写,后面采用驼峰状命名
Dao:表示该对象为Dao层对象
Impl:表示该对象是一个实现类
Service Interface .java IDddddService I:Interface简写
Ddddd:表示业务对象,一般与表对象保持一致,类名称首字母大写,后面采用驼峰状命名
Dao:表示该接口为Service层接口
Service Implement .java DddddServiceImpl Ddddd:表示业务对象,一般与表对象保持一致,类名称首字母大写,后面采用驼峰状命名
Dao:表示该对象为Service层对象
Impl:表示该对象是一个实现类
Controller .java DddddController Ddddd:表示业务对象,一般与表对象保持一致,类名称首字母大写,后面采用驼峰状命名
Controller:表示该对象是一个UI类
JSP .jsp ddddd_xxxx Ddddd:表示业务对象,一般与表对象保持一致,文件名称首字母小写,后面采用驼峰状命名
xxxx:表示该页面属于那种类型操作页面,一般为(edit、detail、report等,分别表示:编辑表单、明细查看、报表页面等)
JS .js ddddd_xxxx 一般与JSP页面一一对应

4.1.4、JAVA类及属性、方法命名规范

1、常量或枚举命名:采用有业务意义的单词组成;英文单词为全字母大写;多个英文单词用下划线分开;

2、属性命名:采用有业务意义的英文单词组成,一般为名词;VO属性与数据库字段保持一致;首字母小写;多个英文单词采用驼峰状进行命名;

3、方法命名:采用具体方法的英文单词,一般形式为动词,或动词 + 名词格式;首字母小写;多个英文单词采用驼峰状进行命名;常用的动词:set、get、create、add、modify、update、delete、remove、select、save等

4、变量命名:主要指程序块中应用到的变量。变量命名是避免采用无意义的i、str等命名规则,尽量采用的规则是与被定义的类型一致的业务对象名称。如:List<User> userList、Array<User> userArray等方式。

5、Controller RequestMapping命名:格式:/相对路径/模块简称/contraller类名称(不包含contraller单词)/方法名称。

4.1.5、HTML、JavaScript、CSS命名规范

  1、HTML中标签和控件的命名规则:采用与业务对象一致的英文单词,一般格式为控件类型简写 + 业务对象名称;所以字母采用小写;多个单词采用驼峰装进行命名;

控件 简写 中文
easyui-panel pnl 面板
easyui-tabs tab 选项卡
easyui-accordion acc 分类
easyui-layout lyt 布局
easyui-menu mnu 菜单
easyui-menubutton mbtn 菜单按钮
easyui-splitbutton spl 分割按钮
form frm 表单
easyui-window win 窗体
easyui-dialog dlg 对话框
easyui-datagrid dgd 数据表格
easyui-propertygrid pgd 属性表格
easyui-tree tree
easyui-treegrid tgd 树形表格
portal ptl 门户

    说明:form中的控件如textbox、combobox等,可以直接采用与业务对象属性一致的名称;具体命名办法参考:4.1.4中的属性命名。

  2、Javascript的命名规则

    Javascript类命名:一般与文件名称一样;针对与页面匹配的Javascript的类命名规则:文件名称+下划线+page(如:project_edit.jsp页面对应的JS文件名称为project_edit.js,那么该js的类名称为:project_edit_page)。

    javascript全局属性命名:由于该JS对象属于页面的附属对象,因此为了避免属性与页面属性出现冲突或歧义,JS中定义的属性前必须加“p_”。具体定义的属性命名规则采用有业务意义的英文单词;多个英文单词采用下划线隔开;英文单词全部采用小写;

    javascript事件方法命名:事件对象(不包含控件简称部分) + 下划线 + 事件名称(一般有:change、click、dblclick、focus、keydown、keypress、keyup、load、mousedown、mousemove、mouseout、mouseover、mouseup、reset、resize、select、submit、unload)。

    javascript一般方法命名:采用具体方法的英文单词,一般形式为动词,或动词 + 名词格式;所有字母小写,多个英文单词采用下划线隔开;常用的动词:set、get、create、add、modify、update、delete、remove、select、save等

  3、CSS命名规则:采用全部小写方式;由于属于自定义的CSS,因此最好增加jasmp,表示属于jasmp平台自定义的;多个单词采用减号隔开;

4.2、程序注释

4.2.1、类注释

  1、目的:主要标注该类的作用,对类进行简单描述;记录类的作者和类的创建日期

  2、格式:

/**
* @ClassName: ${type_name}
* @Description: ${todo}(这里用一句话描述这个类的作用)
* @author 作者姓名   
* @date ${date} ${time}
*
* ${tags}
*/

4.2.2、属性注释

  1、目的:描述该属性的意义;对于属性有特殊含义的需要进行特别书面

  2、格式:

/**
* @Fields ${field} : ${todo}(用一句话描述这个变量表示什么)
*/

4.2.3、方法注释

  1、目的:描述该方法的主要意义;对方法的参数进行说明

  2、格式:

/**
* @Title: ${enclosing_method}
* @Description: ${todo}(这里用一句话描述这个方法的作用)
* @param ${tags}    设定文件
* @return ${return_type}    返回类型
* @throws
*/

4.2.5、代码段注释

  1、目的:行注释是一个非常短的注释,对当前代码片段进行解释说;行尾注释写在该代码块的上面;

  2、格式:

    // 用一句话描述下面代码具体的功效

4.3、代码其他要求

4.3.1、代码格式

  1、缩进:Tab键的标准占用字符为4个空格字符

  2、行长度:每行代码最多80个字符

  3、换行规则:当一行或者一个表达式无法在一行内完成,则应该按照如下规则进行换行处理

    1)在逗号后换行

    2)运算符后换行

    3)换行后尽量使表达式排列整齐

    4)代码换行后,按照下一行比上一行多4个空字符进行缩进

  4、定义与声明:

    每个声明语句各成一行,如有特殊用途的可在后面加行尾注释

    正确示例:

int level;  // indentation level
int size;  // size of table

    错误示例:

      int level, size;

  5、定义位置:声明变量是应注意位置,至少是在一块代码的开始处(一块代码指的是用”{”和”}”包含的代码块)。不要在使用时才去声明边量,他很容易让人产生混乱,不小心还会引发错误。

  6、方法长度:一个方法代码行数保持在50行以内,超过50行的方法可以拆分成多个方法实现。(备注,代码行数指的是代码语句行数,不是编辑器行数)

  7、类方法数:一个类中方法数量保持在20个方法以内,超过20个应考虑拆分成多个类进行实现。

时间: 2024-08-27 01:52:10

JAVA技术开发规范(4)——JASMP平台的开发代码规范的相关文章

用vs2013+velt-0.1.4进行嵌入式开发 进行海思平台 UBOOT 开发

1.1    什么是VELT VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码.目前的版本是0.1.4,仅支持vs2013.此插件可以在CSDN下载频道下载(http://download.csdn.ne

JavaWeb(一):Java技术概览

一.Java技术体系 在早期,Java被称为Java开发工具包或JDK,是一门与平台(由一组 必需的API组成)紧密耦合的语言. 从1998年底的1.2版本开始,Java技术栈被分割为下面关键部分: Java是一门包含了严格和强类型语法的语言. Java 2平台标准版本,被称为J2SE,指的是平台以及java.lang和java.io包中包含的类.它是构建Java应用程序的基础. Java虚拟机或JVM是一个可运行编译后Java代码的软件虚拟机.因为被编译过的Java代码只是字节码,JVM将在运

华登区块狗系统开发 平台APP开发

区块狗的系统开发以及华登区块狗APP的详细模式这里就只做一个简单概述,区块狗系统开发找老何.其实提到华登区块狗,就不得不提到另一个点,或者说城市--博伊西.区块链是一种变革性技术,通过与ULedger的合作,成为首批实践区块链及其优势的项目.利用ULedger及其区块链协议来减轻数据和安全风险,提高数据的可靠性和连续性,简化流程,并向使用者提供一流的体验.华登区块狗第一阶段目标会员数突破20万人.早在8月亚太地区上线第一版华登区块宠物狗积分联动环节就已经完成,平台吸引力可见一斑. [华登区块狗系

使用平台通道编写平台特定的代码

使用平台通道编写平台特定的代码 本指南介绍如何编写自定义平台特定的代码.一些平台特定的功能可通过现有软件包获得; 请参阅使用 packages. 框架概述: 平台通道 平台通道数据类型支持和解码器 示例: 使用平台通道调用iOS和Android代码 Step 1: 创建一个新的应用程序项目 Step 2: 创建Flutter平台客户端 Step 3a: 使用Java添加Android平台特定的实现 Step 3b: 使用Kotlin添加Android平台特定的实现 Step 4a: 使用Obje

从任正非公开信说起,谈代码规范的重要性!

最近的1月2号,任正非发布了题为<全面提升软件工程能力与实践,打造可信的高质量产品>致全体员工信,这也是今年华为总裁办签发的2019年001号文件.在信中,任正非强调了高质量软件产品的关键特性,呼吁各软件工程师理解架构的核心要素.重视代码质量.遵循业界共识的标准和规范,并计划用5年时间投入20亿美元全面提升华为软件质量. 任正非的公开信 在我的印象中,关于某某公司宣布重金投入一个领域.一个产品的新闻有很多,比如某度和某米的all in:但华为这次却很不一样,20亿美元的投入点居然单纯是冲着软件

IDEA 阿里巴巴代码规范检查插件

1.问题概要 大家都想写出规范的代码,可规范的标准是什么勒,估计每个人心中的标准都不是完全一致的 在分工合作越来越精细化的时代,我们需要一个最大程度接近公认的规范,这里我们以阿里巴巴的代码规范作为参考, 主要包括两部分 一.阿里巴巴代码规范插件的使用,在代码中就直接提示你不规范的代码 二.<<阿里巴巴 java开发手册>>,该书详尽的讲述了开发的中的规范 2.如何安装与使用:阿里巴巴代码规范插件 点击安装后,重启idea生效 生效后在有不规范的代码处,会有黄色的警告线提示,并且给出

软件代码规范之理解

对于代码规范这个问题时时都会听到,我印象最深刻的就有一句话:“让战场比你来时更干净”.我觉得这句话概括得很好,告诉我们写代码的基本准则. 目前,绝大多数项目都不是一个人独立完成的,我们都会和队员合作开发,都会看别人的代码,同时伴随着吐槽,说别人写的很难读懂,或许此时此刻也有人在吐槽你的写得晦涩难懂.这样就降低了开发效率,这时我们就知道代码规范的重要性. 简明,易读,无歧义是代码风格的原则.每个公司应该都有自己的风格,比如在缩进.括号.行宽.命名.注释等方面都有一套自己的风格.团队成员都应该遵循这

iOS代码规范(OC和Swift)

下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button1.button2.button3,全文没有注释,去看代码逻辑才能知道这三个按钮的意思,我也是醉了! 下面的规范 有的定的比较死,大家可以根据自己团队的风格进行修改.该文章主要是OC的代码规范,有几个是Swift的规范. OC和Swift的代码规范如下: 一.VC生命周期 模块排列顺序 1. 注意

小梅科普:微信公众平台深度开发JAVA版(第一季)

微信作为当前流行的通信社交软件有了上亿的用户量,几乎每一个只能手机都要安装微信.但是,市场上对于JAVA开发微信公众平台的资料却少之又少,多数的资料一般是其他语言的.因此,主讲老师经过潜心研究.认真准备,录制了这套针对JAVA开发语言的微信公众平台开发教程. 1.课程研发环境 开发语言:JAVA WEBServer:TOMAT DATABASE:MySQL 开发工具:myeclipse.MySQL-Front等 其他:在手机应用中的CSS3+div布局.DWR.mybatis.gson.quar