软件开发编码规范.pptx_第1页
软件开发编码规范.pptx_第2页
软件开发编码规范.pptx_第3页
软件开发编码规范.pptx_第4页
软件开发编码规范.pptx_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发编码规范 目的 本规范的目的是通过建立编码规范统一每个开发人员的编码习惯 提高程序的可靠性 可读性 可修改性 可维护性及一致性 增加团队合作开发效率 为各项目组之间或项目组内成员之间的技术交流提供一个方便统一的方式 范围 本规范适用于公司内所有运用JAVA技术的软件项目 产品等的设计 开发以及维护 升级等 本规范适用于公司所有JAVA软件开发人员 本规范建议的开发环境与工具如下 IDE Eclipse3 3 2以后版本插件 MyEclipse6 0以及eclipse3 6以后版本JDK SunJDK1 5以上 格式规范 对于代码 首要要求是它必须正确 能够按照设计预定功能去运行 第二是要求代码必须清晰易懂 使软件开发团队中的程序员能够很容易地理解代码 代码的组织和风格的基本原则是 便于自己的开发 易于与他人的交流 因个人习惯和编辑器等可以设置和形成自己的风格 但必须前后一致 并符合本规范的基本要求和原则 格式规范 缩进 一个TAB缩进换行 一般不超过80个字符间隔 类 方法及功能块间等应以空行相隔对齐 关系密切的行应对齐 对齐包括类型 修饰 名称 参数等各部分对齐括号 括号中的语句应该单独作为一行 例如 publicclassUserInfo privateStringusername Harbin publicstaticvoidmain System out println username 注释规范 基本原则 注释应该增加代码的清晰度 代码注释的目的是要使代码更易于被其他开发人员等理解 注释信息不仅要包括代码的功能 还应给出原因 除变量定义等较短语句的注释可用行尾注释外 其他注释当避免使用行尾注释 文件注释 在每个文件 包的头部都应该包含该文件的功能 作用 作者 版权以及创建 修改记录等 并在其中使用版本仓库标记自动跟踪版本变化及修改记录等信息 注意是标准的C Style 注释而不是 形式的JavaDoc注释 在ECLIPS中使用CODETEMPLATES会自动添加 例如 Test1 java CreatedDate Sep11 2008 Copyright c JiangsuEcodeCo Ltd Thissoftwareistheconfidentialandproprietaryinformationof JiangsuEcodeCo Ltd ConfidentialInformation Youshallnot disclosesuchConfidentialInformationandshalluseitonlyin accordance withthetermsofthelicenseagreementyouenteredintowith JiangsuEcodeCo Ltd JavaDoc注释 对类 方法 变量等的注释需要符合JavaDoc规范 对每个类 方法都应详细说明其功能 条件 参数等 并使用良好的HTML标记格式化注释 以使生成的JavaDoc易阅读和理解 类注释中当包含版本和作者信息 使用版本仓库的标记自动跟踪版本变化和修改记录 例如 用于示例的类 authorXiating version Rev Id Test1 java v1 22008 09 1702 25 08cvsrootExp publicclassTest1 privatestaticfinalLoggerlogger Logger getLogger Test1 class 一个测试的方法 paramuserid用户编号 return返回用户信息对象 若无该用户信息 则返回null privateUserInfogetStrings Integeruserid returnuserInfo 代码细节注释 由 界定 专用于注释代码细节 即使有多行注释也仍然使用 以便与用 注释的失效代码分开除了私有变量外 不推荐使用行末注释 设置CarBeanfor inti 0 i 20 i 首先需要生成实例CarBeanbean newCarBean bean setBaseprice 11 bean setDescription aa bean setName 1111 cdao save bean 注释的格式 注释中的第一个句子要以 英文 句号 问号或者感叹号结束 Javadoc生成工具会将注释中的第一个句子放在方法汇总表和索引中 为了在JavaDoc和IDE中能快速链接跳转到相关联的类与方法 尽量多的使用 seexxx MyClass seexx MyClass find String Class必须以 author作者名声明作者 不需要声明手工指定 version与 date 由版本管理系统保留此信息 如果注释中有超过一个段落 用分隔 示例代码以包裹 标识 javakeyword class method field argument名 Constants 以包裹 标识在第一次出现时以 linkxxx Myclass 注解以便JavaDoc与IDE中可以链接 注释的内容 对于API函数如果存在契约 必须写明它的前置条件 precondition 后置条件 postcondition 及不变式 invariant 对于调用复杂的API尽量提供代码示例 对于已知的Bug需要声明 在本函数中抛出的uncheckedexception尽量用 throws说明 注释中的每一个单词都要有其不可缺少的意义 注释里不写 paramname 名字 无意义的内容 注释的标签必须有内容 不能存在空的 paramname 空的 return Null规约 如果方法允许Null作为参数 或者允许返回值为Null 必须在JavaDoc中说明 如果没有说明 方法的调用者不允许使用Null作为参数 并认为返回值是NullSafe的 paramactionEvent买车按钮的动作事件 throwsException一般异常 publicvoidbuyCar ActionEventactionEvent throwsException 命名规范 NamingConventions 规范的命名能使程序更易阅读 从而更易于理解 它们也可以提供一些标识功能方面的信息 有助于更好的理解代码和应用 基本约定 使用可以准确说明变量 字段 类 接口 包等的完整的英文描述符 例如 采用类似firstName listAllUsers或CorporateCustomer这样的名字 严禁使用汉语拼音及不相关单词命名 虽然Java支持Unicode命名 但本规范规定对包 类 接口 方法 变量 字段等不得使用汉字等进行命名 采用该领域的术语 如果用户称他们的 客户 clients 为 顾客 customers 那么就采用术语Customer来命名这个类 而不用Client 采用大小写混合 提高名字的可读性 一般应该采用小写字母 但是类和接口的名字的首字母 以及任何中间单词的首字母应该大写 包名全部小写 尽量少用缩写 但如果一定要使用 当使用公共缩写和习惯缩写等 如实现 implement 可缩写成impl 应用程序 application 可缩写成app等 严禁滥用缩写 避免使用长名字 最好不超过25个字母 避免使用相似或者仅在大小写上有区别的名字 避免使用数字 但可用2代替to 用4代替for等 如 go2Jsp 遇到缩写如XML时 仅首字母大写 即loadXmlDocument 而不是loadXMLDocument 文件 包 文件名当与其类严格相同 所有单词首字母大写 包名一般以项目或模块名命名 少用缩写和长名 一律小写 基本包 co waycooler 所有包 文件都从属于此包 包名按规则组成 基本包 项目名 模块名 子模块名 不得将类直接定义在基本包下 所有项目中的类 接口等都当定义在各自的项目和模块包中 类 接口 所有单词首字母大写 使用能确切反应该类 接口含义 功能等的词 一般采用名词 如 Greenhouser GreenhouseDao等等 接口可以可以在名词前加大写I 如IGreenhouse 常量 采用完整的英文大写单词 在词与词之间用下划线连接 如 DEFAULT VALUE 变量和参数 对不易清楚识别出该变量类型的变量应使用类型缩写作其前缀 如字符串使用strXXX boolean使用isXXX hasXXX等等 除第一各个单词外其余单词首字母大写 对私有实例变量可使用下划线 前缀 但在其存取方法中则应该将其前缀去掉 局部变量及输入参数不要与类成员变量同名 get set方法与构造函数除外 组件 部件 应采用完整的英文描述符命名组件 接口部件 遵循匈牙利命名法则页面部件名建议命名为 btnOK lblName或okBtn nameLbl 集合 一个集合 例如数组和矢量 应采用复数命名来表示队列中存放的对象类型 命名应采用完整的英文描述符 名字中所有非开头的单词的第一个字母应大写 适当使用集合缩写前缀 Listuserlist 编程规范 当面对不可知的调用者时 方法需要对输入参数进行校验 如不符合抛出IllegalArgumentException 建议使用Spring的Assert系列函数 隐藏工具类的构造器 确保只有static方法和变量的类不能被构造实例 变量 参数和返回值定义尽量基于接口而不是具体实现类 如 代码中不能使用System out println e printStackTrace 必须使用logger打印信息 类和接口的编程规范 类的划分粒度 不可太大 造成过于庞大的单个类 也不可太细 从而使类的继承太深 一般而言 一个类只做一件事 另一个原则是根据每个类的职责进行划分 比如用User来存放用户信息 而用UserDAO来对用户信息进行数据访问操作 比如存取数据库 用UserBroker来封装用户信息的业务操作等等 多使用设计模式 随时重构 多个类中使用相同方法时将其方法提到一个接口中或使用抽象类 尽量提高重用度 将不希望再被继承的类声明成final 例如某些实用类 但不要滥用final 否则会对系统的可扩展性造成影响 将不希望被实例化的类的缺省构造方法声明成private 抽象类与接口 一般而言 接口定义行为 而抽象类定义属性和公有行为 注意两者间的取舍 在设计中 可由接口定义公用的行为 由一个抽象类来实现其部分或全部方法 以给子类提供统一的行为定义 可参考Java集合等实现 多使用接口 尽量做到面向接口的设计 以提高系统的可扩展性 继承与组合 尽量使用组合来代替继承 一则可以使类的层次不至于过深 而且会使类与类 包与包之间的耦合度更小 更具可扩展性 构造函数和静态工厂方法 当需要使用多个构造函数创建类时 建议使用静态工厂方法替代这些构造方法 方法 一个方法只完成一项功能 在定义系统的公用接口方法外的方法应尽可能的缩小其可见性 避免用一个类是实例去访问其静态变量和方法 避免在一个较长的方法里提供多个出口 参数和返回值 避免过多的参数列表 尽量控制在5个以内 若需要传递多个参数时 当使用一个容纳这些参数的对象进行传递 以提高程序的可读性和可扩展性 参数类型和返回值尽量接口化 以屏蔽具体的实现细节 提高系统的可扩展性 错误与异常 通常的思想是只对错误采用异常处理 逻辑和编程错误 设置错误 被破坏的数据 资源耗尽 等等 通常的法则是系统在正常状态下以及无重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论