软件开发规范v1.0
更新时间:2023-11-27 03:35:01 阅读量: 教育文库 文档下载
开发规范文档
版本<1.0>
修订历史记录
日期 <2013-1-21> >
版本 <1.0初稿 说明 作者 linsm Page 2 of 25
目录
1. 前言
1.1 目的 1.2 概述
2. 命名规范(Naming Conventions)
2.1 包命名 2.2 类命名 2.3 接口命名 2.4 方法命名 2.5 类成员参数 2.6 局部变量 2.7 常量 2.8 集合 2.9 魔法数字 2.10 其他 2.11 项目分层 3. 代码排版规范
6 6 6 6 7 7 8 8 8 9 9 9 9 10 10 12
Page 3 of 25
3.1 空行 3.2 空格
3.3 大括号(Braces) 3.4 换行(New Lines) 3.5 长度(Length) 4. 声明
4.1 类、接口 4.2 方法 4.3 字段 5. 其他约束
5.1 类成员可见性 5.2 赋值(Assignment) 5.3
5.4 条件表达式使用 5.5 无效语句 5.6 Import 规范 5.7 String比较
12 12 13 13 13 13 13 14 14 15 15 15 16 16 16 17 17
Page 4 of 25
5.8 注释要求
5.9 Try if嵌套层次和分支复杂度 5.10 Switch 语句 6. 设计规范
6.1 类与接口 6.2 方法
6.3 表达式与语句 6.4 控制语句 6.5 循环语句 6.6 异常处理
17 19 19 19 20 20 21 22 23 24
Page 5 of 25
软件开发规范文档
1. 前言 1.1 目的
本规范的目的是使本组织能以标准的、规范的方式设计和编码。通过建立编码规范,以使每个开发人员养成良好的编码风格和习惯;并以此形成开发小组编码约定,提高程序的可靠性、可读性、可修改性、可维护性和一致性等,增进团队间的交流,并保证软件产品的质量。 1.2 概述
对于代码,首要要求是它必须正确,能够按照设计预定功能去运行;第二是要求代码必须清晰易懂,使自己和其他的程序员能够很容易地理解代码所执行的功能等。然而,在实际开发中,每个程序员所写的代码却经常自成一套,很少统一,导致理解困难,影响团队的开发效率及系统的质量等。因此,一份完整并被严格执行的开发规范是非常必须的,特别是对软件公司的开发团队而言。
最根本的原则:
代码虽然是给机器运行的,但却是给人读的!
2. 命名规范(Naming Conventions)
命名规范使程序更易读,从而更易于理解。它们也可以提供一些有关标识符功能的信息,以助于理解代码,例如,不论它是一个常量,包,还是类。大家遵守一定的规范,相互看其他人的代码也会更加方便。
? 使用可以准确说明变量/字段/类/接口/包等的完整的英文描述符。例如,采用类
似firstName,listAllUsers或CorporateCustomer这样的名字,尽量不使用汉语拼音及不相关单词命名,严禁使用汉语拼音首字母组合命名,虽然Java 支持
Page 6 of 25
Unicode 命名,但本规范规定对包、类、接口、方法、变量、字段等不得使用汉字等进行命名。
? 采用该领域的术语。如果用户称他们的“客户” (clients) 为“顾客”(customers),
那么就采用术语Customer 来命名这个类,而不用Client。
? 采用大小写混合,提高名字的可读性。一般应该采用小写字母,但是类和接口的
名字的首字母,以及任何中间单词的首字母应该大写。包名全部小写。 ? 避免使用长名字(最好不超过25 个字母)。 ? 避免使用相似或者仅在大小写上有区别的名字。
? 避免使用数字,但可用2 代替to,用4 代替for 等,如:go2Jsp。
2.1 包命名
包名一般以项目或模块名命名,少用缩写和长名,一律小写,正则表达式为:^[a-z]+(\\.[a-zA-Z_][a-zA-Z0-9_]*)*$。
包名按如下规则组成:[基本包].[项目名].[模块名].[子模块名].. OA项目的包命名前三级为:com.well.oa。
不得将类直接定义在基本包下,所有项目中的类、接口等都当定义在各自的项目和模块包中。 2.2 类命名
类名采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)。一般采用名词。
Page 7 of 25
2.3 接口命名
大小写规则与类名相似。接口可带I 前缀或able、ible、er等后缀。 2.4 方法命名
方法名是一个动名结构,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。正则表达式为:^[a-z][a-zA-Z0-9]*$ 类中常用方法的命名:
1. 类的获取方法(一般具有返回值)一般要求在被访问的字段名前加上get,如 getFirstName(),getLastName()。
2. 类的设置方法(一般返回类型为void):被访问字段名的前面加上前缀 set,如 setFirstName(),setLastName().
3. 类的布尔型的判断方法一般要求方法名使用单词 is 做前缀,如
isPersistent()isString()。或者使用具有逻辑意义的单词,例如equal 或equals。 4. 类的普通方法一般采用完整的英文描述说明成员方法功能,第一个单词尽可能采用动词,首字母小写,如openFile(),addCount()。 5. 构造方法应该用递增的方式写。(参数多的写在后面)。
6. toString()方法:一般情况下,每个类都应该定义toString(),其格式为:
public String toString(){?}。 2.5 类成员 参数
和类命名一样,但是首字母小写。参数命名和类成员命名一致。
Page 8 of 25
'^[a-z][a-zA-Z0-9]*$' 2.6 局部变量
局部变量名不应以下划线或美元符号开头,这个是java命名的惯例。局部变量建议全部使用小写。除了局部变量名外,所有实例,包括类,类常量,均采用大小写混合的方式。
变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量(往往用在for循环中),临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。正则表达式为:^[a-z][a-z0-9]*$ 2.7 常量
类常量和ANSI常量(static , final 字段)的声明,应该全部大写,单词间用下划线隔开。(尽量避免ANSI常量,容易引起错误)。正则表达式为:^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$ 2.8 集合
集合,例如数组和列表,命名应采用完整的英文描述符,适当使用集合缩写后缀。如: ListproductList = new List(); //产品列表 Array userArray = new Array(); //用户列表 2.9 魔法数字
不允许使用魔法数字,可以定义为常量使用。
在程序里经常会用到一些量,它是有特定的含义的。例如,现在我们写一个薪金统计程序,公司员工有50 人,我们在程序里就会用50 这个数去进行各种各样的运算。在这里,50 就是\神秘的数\。当别的程序员在程序里看到50 这个数,将很难知道它的含义,造成
Page 9 of 25
理解上的困难。
在程序里出现\神秘的数\会降低程序的可读性、可维护性和可扩展性,故规定不得出现此类\魔法数字\。避免的方法是把神秘的数定义为一个常量。注意这个常量的命名应该能表达该数的意义,并且应该全部大写,以与对应于变量的标识符区别开来。例如上面50 这个数,我们可以定义为一个名为NUM_OF_EMPLOYEES 的常量来代替。这样,别的程序员在读程序的时候就可以容易理解了。 2.10 其他
命名时应使用复数来表示它们代表多值(数组)。如:orderItems。 2.11 项目分层 1、实体类 实体类使用规范
1、表名以所在模块的简写为前缀; 2、实休类只作为一个JavaBean对象
3、类的字段不可使用int、short、long、char、double、float、boolean和byte等基本数据类型,要使用基本数据类型对应的包装类Integer、Short、Long、Character、Double、Float、Boolean和Byte等可用工具类
com.wellsoft.pt.utils.bean.PrimitiveTypeWrapperUtils对其属性赋初始值 2、DAO数据访问 DAO层实现类命名规范 以Dao结束,如UserDao 3、Service服务
Page 10 of 25
正在阅读:
软件开发规范v1.011-27
校园及周边治安综合治理工作总结09-08
正反比例教案06-24
社区党委季度工作述职汇报09-27
与诸葛亮聊聊天作文600字06-20
(易错题精选)最新时事政治—外汇的全集汇编含答案解析06-06
江苏省教师资格认定考试中学教育心理学模拟试卷1(含参考答案)10-14
办公家具投标书 - 图文06-08
2022年八年级英语下册Module9FriendshipUnit204-14
贵州省专业技术人员在线学习平台考试试题01-10
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 软件开发
- 规范
- 1.0
- 手把手,教你读懂FET - 图文
- Western blot详细操作过程
- 八年级下科学粒子的模型与符号易错题整理
- 露天煤矿实习论文 - 图文
- 毕业设计 - 交通灯 - 图文
- 浅论酒店业危机沟通管理
- 对赌协议比较分析
- 水闸计算案例
- GTAP模型RunGTAP操作方法
- 2013高中物理热点回旋加速器知识点与习题高考题总结
- 数据结构课后答案 - 北邮
- 结晶学与矿物学 复习用资料
- 毕业设计参考格式
- 人教版新课标 Book4 Unit2 基础知识自我检测
- 燃烧灭火简答题(1)
- 高考地理一轮复习讲义区域地理 第二章 第39讲
- 如何充分运用民事诉讼中的发问环节
- 空分题库
- 2018版高考:3.4《“传送带”问题》教学案(含答案)
- 内科护理学题库 第6章