ImageVerifierCode 换一换
格式:PPTX , 页数:33 ,大小:96.12KB ,
资源ID:5004158      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5004158.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件开发编码规范.pptx)为本站会员(kpmy5893)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

软件开发编码规范.pptx

1、,软件开发编码规范,目的,本规范的目的是通过建立编码规范统一每个开发人员的编码习惯,提高程序的可靠性、可读性、可修改性、可维护性及一致性,增加团队合作开发效率,为各项目组之间或项目组内成员之间的技术交流提供一个方便统一的方式。,范围,本规范适用于公司内所有运用JAVA技术的软件项目、产品等的设计、开发以及维护、升级等。 本规范适用于公司所有JAVA软件开发人员。 本规范建议的开发环境与工具如下: IDE:Eclipse3.3.2以后版本 插件:MyEclipse6.0以及eclipse3.6以后版本 JDK: Sun JDK 1.5以上,格式规范,对于代码,首要要求是它必须正确,能够按照设计预

2、定功能去运行;第二是要求代码必须清晰易懂,使软件开发团队中的程序员能够很容易地理解代码。 代码的组织和风格的基本原则是:便于自己的开发,易于与他人的交流。 因个人习惯和编辑器等可以设置和形成自己的风格,但必须前后一致,并符合本规范的基本要求和原则。,格式规范,缩进:一个TAB 缩进 换行:一般不超过80个字符 间隔:类、方法及功能块间等应以空行相隔 对齐:关系密切的行应对齐,对齐包括类型、修 饰、名称、参数等各部分对齐 括号:括号中的语句应该单独作为一行,例如,public class UserInfoprivate String username=“Harbin”;public static

3、 void main()System.out.println(username); ,注释规范,基本原则:注释应该增加代码的清晰度。代码注释 的目的是要使代码更易于被其他开发 人员等理解。注释信息不仅要包括代码的功能,还应给出原因。除变量定义等较短语句的注释可用行尾注释外,其他注释当避免使用行尾注释。,文件注释,在每个文件、包的头部都应该包含该文件的功能、作用、作者、版权以及创建、修改记录等。并在其中使用版本仓库标记自动跟踪版本变化及修改记录等信息。注意是标准的C-Style/*.*/ 注释而不是/* .*/ 形式的JavaDoc 注释,在ECLIPS中使用CODE TEMPLATES会自动添

4、加。,例如,/* (#) Test1.java* Created Date: Sep 11, 2008* * Copyright (c) Jiangsu Ecode Co., Ltd* This software is the confidential and proprietary information of* Jiangsu Ecode Co., Ltd. (“Confidential Information“). You shall not* disclose such Confidential Information and shall use it only in * accord

5、ance* with the terms of the license agreement you entered into with* Jiangsu Ecode Co., Ltd. */,Java Doc 注释,对类、方法、变量等的注释需要符合JavaDoc 规范,对每个类、方法都应详细说明其功能、条件、参数等,并使用良好的HTML 标记格式化注释,以使生成的JavaDoc易阅读和理解。 类注释中当包含版本和作者信息,使用版本仓库的标记自动跟踪版本变化和修改记 录。,例如,/* 用于示例的类* * author Xiating* version $Rev$ * $Id: Test1.jav

6、a,v 1.2 2008/09/17 02:25:08 cvsroot Exp $*/ public class Test1 private static final Logger logger = Logger.getLogger(Test1.class);/*一个测试的方法*param userid 用户编号*return 返回用户信息对象,若无该用户信息,则返回null*/private UserInfo getStrings(Integer userid) return userInfo; ,代码细节注释,由/ 界定,专用于注释代码细节,即使有多行注释也仍然使用/,以便与用/*/注 释

7、的失效代码分开除了私有变量外,不推荐使用行末注释。/设置CarBeanfor(int i=0; i 20; i+)/首先需要生成实例CarBean bean = new CarBean();bean.setBaseprice(11);bean.setDescription(“aa“);bean.setName(“1111“); cdao.save(bean); ,注释的格式,注释中的第一个句子要以(英文)句号、问号或者感叹号结束。Javadoc 生成工具会将注释中的第一个句子放在方法汇总表和索引中。 为了在JavaDoc 和IDE 中能快速链接跳转到相关联的类与方法,尽量多的使用see xxx

8、.MyClass,see xx.MyClass#find(String)。 Class 必须以author 作者名声明作者,不需要声明手工指定version 与date,由版本管理系统保留此信息。 如果注释中有超过一个段落,用分隔。 示例代码以包裹。 标识(java keyword, class/method/field/argument 名,Constants) 以包裹。 标识在第一次出现时以linkxxx.Myclass注解以便JavaDoc 与IDE 中可以链接。,注释的内容,对于API 函数如果存在契约,必须写明它的前置条件(precondition),后置条件(postconditi

9、on),及不变式(invariant)。 对于调用复杂的API 尽量提供代码示例。 对于已知的Bug 需要声明。 在本函数中抛出的unchecked exception 尽量用throws 说明。 注释中的每一个单词都要有其不可缺少的意义,注释里不写“param name -名字“无意义的内容。 注释的标签必须有内容,不能存在空的param name,空的return。,Null 规约,如果方法允许Null 作为参数,或者允许返回值为Null,必须在JavaDoc 中说明。 如果没有说明,方法的调用者不允许使用Null 作为参数,并认为返回值是Null Safe的。/* * param act

10、ionEvent 买车按钮的动作事件* throws Exception 一般异常*/public void buyCar(ActionEvent actionEvent) throws Exception,命名规范 (Naming Conventions),规范的命名能使程序更易阅读,从而更易于理解。它们也可以提供一些标识功能方面的信息,有助于更好的理解代码和应用。,基本约定,使用可以准确说明变量/字段/类/接口/包等的完整的英文描述符。例如,采用类似firstName,listAllUsers 或CorporateCustomer 这样的名字,严禁使用汉语拼音及不相关单词命名,虽然Java

11、 支持Unicode 命名,但本规范规定对包、类、接口、方法、变量、字段等不得使用汉字等进行命名。 采用该领域的术语。如果用户称他们的“客户”(clients) 为“顾客”(customers),那么就采用术语Customer 来命名这个类,而不用Client。 采用大小写混合,提高名字的可读性。一般应该采用小写字母,但是类和接口的名字的首字母,以及任何中间单词的首字母应该大写。包名全部小写。 尽量少用缩写,但如果一定要使用,当使用公共缩写和习惯缩写等,如实现(implement)可缩写成impl,应用程序(application)可缩写成app 等,严禁滥用缩写。 避免使用长名字(最好不超过

12、25 个字母)。 避免使用相似或者仅在大小写上有区别的名字。 避免使用数字,但可用2 代替to,用4 代替for 等,如:go2Jsp。 遇到缩写如XML 时, 仅首字母大写, 即loadXmlDocument() 而不是loadXMLDocument()。,文件、包,文件名当与其类严格相同,所有单词首字母大写。 包名一般以项目或模块名命名,少用缩写和长名,一律小写。 基本包:co.waycooler,所有包、文件都从属于此包。 包名按规则组成:基本包 . 项目名 . 模块名 . 子模块名. 不得将类直接定义在基本包下,所有项目中的类、接口等都当定义在各自的项目和模块包中。,类、接口,所有单词

13、首字母大写。使用能确切反应该类、接口含义、功能等的词。一般采用名词。如,Greenhouser 、GreenhouseDao等等。接口可以可以在名词前加大写I,如 IGreenhouse。,常量,采用完整的英文大写单词,在词与词之间用下划线连接,如:DEFAULT_VALUE,变量和参数,对不易清楚识别出该变量类型的变量应使用类型缩写作其前缀,如字符串使用strXXX,boolean 使用isXXX,hasXXX 等等。除第一各个单词外其余单词首字母大写。对私有实例变量可使用下划线“_”前缀,但在其存取方法中则应该将其前缀去掉。局部变量及输入参数不要与类成员变量同名(get/set 方法与构造

14、函数除外)。,组件/部件,应采用完整的英文描述符命名组件(接口部件),遵循匈牙利命名法则页面部件名建议命名为:btnOK、lblName 或okBtn、nameLbl。,集合,一个集合,例如数组和矢量,应采用复数命名来表示队列中存放的对象类型。命名应采用完整的英文描述符,名字中所有非开头的单词的第一个字母应大写,适当使用集合缩写前缀。List userlist;,编程规范,当面对不可知的调用者时,方法需要对输入参数进行校验,如不符合抛出IllegalArgumentException,建议使用Spring 的Assert 系列函数。 隐藏工具类的构造器,确保只有static 方法和变量的类不能

15、被构造实例。 变量,参数和返回值定义尽量基于接口而不是具体实现类。如: 代码中不能使用System.out.println(),e.printStackTrace(),必须使用logger 打印信息。,类和接口的编程规范,类的划分粒度,不可太大,造成过于庞大的单个类,也不可太细,从而使类的继承太深。一般而言,一个类只做一件事;另一个原则是根据每个类的职责进行划分,比如用User 来存放用户信息,而用UserDAO 来对用户信息进行数据访问操作(比如存取数据库),用UserBroker 来封装用户信息的业务操作等等。 多使用设计模式,随时重构。 多个类中使用相同方法时将其方法提到一个接口中或使用

16、抽象类,尽量提高重用度。 将不希望再被继承的类声明成final,例如某些实用类,但不要滥用final,否则会对系统的可扩展性造成影响。 将不希望被实例化的类的缺省构造方法声明成private。,抽象类与接口,一般而言:接口定义行为,而抽象类定义属性和公有行为,注意两者间的取舍,在设计中,可由接口定义公用的行为,由一个抽象类来实现其部分或全部方法,以给子类提供统一的行为定义,可参考Java 集合等实现。 多使用接口,尽量做到面向接口的设计,以提高系统的可扩展性。,继承与组合,尽量使用组合来代替继承,一则可以使类的层次不至于过深,而且会使类与类,包与包之间的耦合度更小,更具可扩展性。,构造函数和静

17、态工厂方法,当需要使用多个构造函数创建类时,建议使用静态工厂方法替代这些构造方法。,方法,一个方法只完成一项功能,在定义系统的公用接口方法外的方法应尽可能的缩 小其可见性。 避免用一个类是实例去访问其静态变量和方法。 避免在一个较长的方法里提供多个出口。,参数和返回值,避免过多的参数列表,尽量控制在5 个以内,若需要传递多个参数时,当使 用一个容纳这些参数的对象进行传递,以提高程序的可读性和可扩展性。 参数类型和返回值尽量接口化,以屏蔽具体的实现细节,提高系统的可扩展性。,错误与异常,通常的思想是只对错误采用异常处理:逻辑和编程错误,设置错误,被破坏的 数据,资源耗尽,等等。 通常的法则是系统在正常状态下以及无重载和硬件失效状态下,不应产生任何 异常。 最小化从一个给定的抽象类中导出的异常的个数。 对于经常发生的可预计事件不要采用异常。 不要使用异常实现控制结构。 确保状态码有一个正确值。 在本地进行安全性检查,而不是让用户去做。 若有finally 子句,则不要在try 块中直接返回,亦不要在finally 中直接返 回。,其他,性能与安全: 如String 与StringBugffer ,使用ArrayList 代替Vector,使用HashMap 代替HashTable。 垃圾回收:释放内存 统一编码格式:避免乱码,感谢您的观看,再见,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报