编码规范与其代码_第1页
编码规范与其代码_第2页
编码规范与其代码_第3页
编码规范与其代码_第4页
编码规范与其代码_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、项目编号文密档编号级4内部同学公寓治理系统编码规范及其代码说明兰州理工高校评审日 期: 2021 年 1 月 15 日目 录20 / 161. 导言41.1 目的41.2 范畴41.3 缩写说明41.4 术语定义51.5 引用标准51.6 参考资料52. 编码格式规范52. 1 缩进排版52. 2 行长度52. 3 断行规章:62. 4 空行73. 命名规范73. 1 包packages73. 2 类classes83. 3 接口 interfaces83. 4 方法 methods83. 5 变量 variables83. 6 实例变量 instance variables83. 7 常量

2、constants84. 声明规范84.1 每行声明变量的数量94.2 初始化94.3 布局94.4 包的声明94.5 类和接口的声明105. 语句规范105.1 简洁语句105.2 复合语句106. 注释规范106. 1 注释的方法116. 2 开头注释126. 3 类和接口的注释127. 代码范例128. 目录规范131. 导言1.1 目的该文档的目的是描述同学公寓治理系统项目的编码规范和对代码的说明,其主要内容包括:编码规范命名规范注释规范语句规范声明规范目录设置代码说明本文档的预期的读者是: 开发人员项目治理人员质量保证人员1.2 范畴该文档定义了本项目的代码编写规范,以及部分代码描述

3、和全部代码的说明;1.3 缩写说明mvc(模式视图掌握)的缩写,表示一个三层的结构体系;ejb(企业级)的缩写;1.4 术语定义classjava 程序中的一个程序单位,可以生成许多的实例;packages由许多的类组成的工作包;1.5引用标准1企业文档格式标准2java 语言编写规范1.6参考资料1实战美2机械工业出版社软件重构清华高校出版社2. 编码格式规范2. 1 缩进排版4 个空格作为缩进排版的一个单位;2. 2行长度尽量防止一行的长度超过80 个字符,用于文档中的例子应当使用更短的行长,长度一般不超过 70 个字符;2. 3断行规章:当一个表达式无法容纳在一行内时,可以依据如下一般规

4、章断开:在一个逗号后面断开 在一个操作符前面断开宁可挑选较高级别 higher-level的断开,而非较低级别lower-level的断开 见下面的例子 新的一行应当与上一行同一级别表达式的开头处对齐假如以上规章导致你的代码纷乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格以下是两个断开算术表达式的例子;前者属于更高级别的断开,由于断开处位于括号表达式的外边;longname1 = longname2 * longname3 + longname4 - longname5+ 4 * longname6; /举荐longname1 = longname2 * longname3 + long

5、name4-longname5 + 4 * longname6; /防止以下是两个缩进方法声明的例子;前者是常规情形;后者如使用常规的缩进方式将会使其次行和第三行移得很靠右,所以代之以缩进8 个空格;/ 规范的缩进somemethod int anarg, object anotherarg, string yetanotherarg, object andstillanother/ 以 8 个空格来缩进,以防止特别纵深的缩进private static synchronized horkinglongmethodnameint anarg, object anotherarg, string

6、 yetanotherarg,object andstillanother if语句的换行通常使用8 个空格的规章,由于常规缩进4个空格 会使语句体看起来比较费劲;比如:/ 不行取的缩进方法if condition1 & condition2| condition3 & condition4| condition5 & condition6 dosomethingaboutit;/ 可取的缩进方法一if condition1 & condition2| condition3 & conditin4 | . condition5& condition6 dosomethingaboutit;/

7、可取的缩进方法二if condition1 & condition2 | conditin3 & condition4| . condition5 & condition6 dosomethingaboutit;三种可取的三元运算符的缩进格式:alpha = alongbooleanexpression . beta : gamma; alpha = alongbooleanexpression . beta: gamma;alpha = alongbooleanexpression. beta: gamma;2. 4空行空行将规律相关的代码段分隔开,以提高可读性;以下情形应当总是使用两个空行

8、: 一个源文件的两个片段section之间类声明和接口声明之间以下情形应当总是使用一个空行: 两个方法之间方法内的局部变量和方法的第一条语句之间块注释或单行注释之前一个方法内的两个规律段之间,用以提高可读性3. 命名规范命名规范使程序更易读,从而更易于懂得;它们也可以供应一些有关标识符功能的信息, 以助于懂得代码;3. 1包packages一个唯独包名的前缀总是全部小写的ascii 字母并且是一个顶级域名,通常是com, edu, gov, mil, net, org,或 1981 年 iso 3166标准所指定的标识国家的英文双字符代码;包名的后续部分依据不同机构各自内部的命名规范而不尽相同

9、;这类命名规范可能以特定目录名的组成来区分部门department,项目 project,机器 machine ,或注册名 loginnames;如:com.sun.engcom.apple.quicktime.v2 edu.cmu.cs.bovik.cheese3. 2类classes类名是个一名词,采纳大小写混合的方式,每个单词的首字母大写;尽量使你的类名简洁而富于描述;使用完整单词,防止缩写词 除非该缩写词被更广泛使用,像url, html;3. 3接口interfaces大小写规章与类名相像;3. 4方法methods方法名是一个动词,采纳大小写混合的方式,第一个单词的首字母小写,其后

10、单词的首字母大写;3. 5变量variables采纳大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写;变量名不应以下划线或美元符号开头,尽管这在语法上是答应的;变量名应简短且富于描述;变量名的选用应当易于记忆,即,能够指出其用途;尽量防止单个字符的变量名,除非是一次性的暂时变量;暂时变量通常被取名为 i ,j ,k,m和 n,它们一般用于整型; c,d, e,它们一般用于字符型;3. 6实例变量 instance variables大小写规章和变量名相像,除了前面需要一个下划线,如:int _students.3. 7常量constants类常量和 ansi 常量的声明,应当全部

11、大写,单词间用下划线隔开;4. 声明规范4.1 每行声明变量的数量举荐一行一个声明,由于这样以利于写注释;亦即:int level; / indentation level int size; / size of table要优于: int level, size;不要将不同类型变量的声明放在同一行,例如:int foo, fooarray; /wrong.留意:上面的例子中,在类型和标识符之间放了一个空格;空格可使用制表符替代;4.2 初始化尽量在声明局部变量的同时初始化;唯独不这么做的理由是变量的初始值依靠于某些从前发生的运算;4.3 布局只在代码块的开头处声明变量;(一个块是指任何被包含

12、在大括号 和 中间的代码;) 不要在首次用到该变量时才声明之;这会把留意力不集中的程序员搞糊涂,同时会阻碍代码在该作用域内的可移植性;void mymethodint int1=0;/beginning of method blockifconditionint int2=0;/beginning of if block.该规章的一个例外是for循环的索引变量for int i = 0; i maxloops; i+ . 4.4 包的声明在多数 java 源文件中,第一个非注释行是包语句;我们的同学公寓治理系统包的声明采纳如下规范:package com.entity.struts.form;

13、 / form包package com.manager.struts.action; /action包4.5 类和接口的声明当编写类和接口是,应当遵守以下格式规章:在方法名与其参数列表之前的左括号 间不要有空格左大括号 位于声明语句同行的末尾右大括号 另起一行,与相应的声明语句对齐,除非是一个空语句, 应紧跟在 之后方法与方法之间以空行分隔5. 语句规范5.1 简洁语句每行至多包含一条语句,例如:argv+; /举荐argc-; /举荐argv+; argc-; /防止5.2 复合语句复合语句是包含在大括号中的语句序列,形如语句 ;遵循原就如下: 被括其中的语句应当较之复合语句缩进一个层次左大

14、括号 应位于复合语句起始行的行尾;右大括号 应另起一行并与复合语句首行对齐;大括号可以被用于全部语句,包括单个语句,只要这些语句是诸如if-else或 for掌握结构的一部分;这样便于添加语句而无需担忧由于忘了加括号而引入bug;6. 注释规范java 程序有两类注释:实现注释 implementation comments 和文档注释 document comments ;实现注释使用 /*.*/ 和/ 界定的注释; 文档注释 被称为 doc comments 是 java 独有的,并由 /*.*/ 界定;,描述 java 的类、接口、构造器,方法,以及字段 field ;一个注释对应一个类

15、、接口或成员;如你想给出有关类、接口、变量或方法的信息,而这些信息又不适合写在文档中,就可使用实现块注释或紧跟在声明后面的单行注释;例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中;注释应被用来给出代码的总括,并供应代码自身没有供应的附加信息;注释应当仅包含与阅读和懂得在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的,但应防止供应代码中己清楚表达出来的重复信息;6. 1注释的方法程序可以有四种实现注释的风格:块注释、单行注释、尾端注释和行末注释; 块注释块注释通常用于供应对文件,方法,数据结构和算法的描述;块注释被置于每个文件的开头处以及

16、每个方法之前;它们也可以被用于其他地方,比如方法内部;在功能和方法内部的块注释应当和它们所描述的代码具有一样的缩进格式;块注释之首应当有一个空行,用于把块注释和代码分割开来,比如:/* here is a block comment.*/public class example .留意顶层 top-level的类和接口是不缩进的,而其成员是缩进的;描述类和接口的文档注释的第一行 /*不需缩进;随后的文档注释每行都缩进1 格 使星号纵向对齐 ;成员,包括构造函数在内,其文档注释的第一行缩进4 格,随后每行都缩进5 格; 单行注释短注释可以显示在一行内,并与其后的代码具有一样的缩进层级;假如一个注

17、释不能在一行内写完,就该采纳块注释 参见 块注释 ;单行注释之前应当有一个空行;以下是一个java 代码中单行注释的例子:if condition /* handle the condition. */. 尾端注释极短的注释可以与它们所要描述的代码位于同一行,但是应当有足够的空白来分开代码和注释;如有多个短注释显现于大段代码中,它们应当具有相同的缩进;以下是一个java 代码中尾端注释的例子:ifinput=2return true;/*特别处理 */elsereturn ismineinput;/*调用函数 ismine */ 行末注释注释界定符 /,可以注释掉整行或者一行中的一部分;它一般

18、不用于连续多行的注释文本;然而,它可以用来注释掉连续多行的代码段;留意:频繁的注释有时反映出代码的低质量;当你觉得被迫要加注释的时候,考虑一下重写代码使其更清楚;注释不应写在用星号或其他字符画出来的大框里;注释不应包括诸如制表符和回退符之类的特别字符;6. 2开头注释全部的源文件都应当在开头有一个类似c 语言风格的注释,其中列出类名、版本信息、日期、作者以及版权声明;我们的同学公寓治理系统采纳的头注释统一为:/* system: online cv system* version:1.0* copyright c 2021 by xxx, inc. all rights reserved.*

19、class: validatesessiontag* summary:对用户的身份验证* create: 2021.1.15程亚崇* update: 2021.1.15程亚崇*/6. 3类和接口的注释类 / 接口文档注释 /* */ :该注释中所需包含的信息,参见logonaction.java类 / 接口实现的注释 /* */:假如有必要的话,该注释应包含任何有关整个类或接口的信息,而这些信息又不适合作为类/ 接口文档注释;7. 代码范例/* system: online cv system* version: 1.0* copyright c 2021 by xxx, inc. all r

20、ights reserved.* summary:循环打印用户信息* create: 2021.1.16程亚崇* update:*/8. 目录规范开发环境是eclipse,所以开发环境的目录结构与运行环境的目录结构是一样的,只是在部署的运行环境中,可以不设置源代码的目录;开发目录如图;编码过程应当依据具体设计的规划进行,在伪代码的基础上,依据编码标准和规范进行分模块编码; 开发环境是 eclipse,第一开发人员在开发过程中依据开发的目录将相应的文件存放在指定的目标下,进行调试,各个目录的说明如下:1) 目录中存放全部的java公用的模块1. 包 entity 中 student.java 中

21、是同学信息治理模块的方法packageentity;publicclassstudent privateintegerid ;privatestringname;privateintegersusheid ;publicinteger getid returnid ;publicvoidsetidintegerid this. id=id ;publicstring getname returnname;publicvoidsetnamestringname this. name =name;publicinteger getsusheid returnsusheid;publicvoidse

22、tsusheidintegersusheid this. susheid=susheid ;2. 包 entity 中 sushe.java中是宿舍信息治理模块的方法packageentity;importjava.util.list;publicclasssushe privateintegerid ;privateliststudents; publicinteger getid returnid ;publicvoidsetidintegerid this. id=id ;publiclist getstudents returnstudents;publicvoidsetstudent

23、sliststudents this. students=students;3. 包 manage 中 studentmanage.java 中是同学信息治理模块的具体操作package manager;import java.io.bufferedinputstream; import java.io.bufferedreader; import java.io.bufferedwriter; import java.io.file;import java.io.; import java.io.; import java.io.; import java.io.; import java.

24、io.;import java.io.ioexception; import java.io.printwriter; import java.util.arraylist; import java.util.list;import javax.imageio.stream.; import entity.student;public class studentmanager = new filee:/xuesheng.txt; bufferedreader br = null; bufferedwriter bw=null;public list getallstudentstry br =

25、 new bufferedreadernew file; catch e / todo auto-generated catch block e.printstacktrace;list students=new arraylist; string studentstr = null;while true try studentstr = br.readline; catch ioexception e e.printstacktrace;ifstudentstr=nullreturn students;ifstudentstr.trim.equalscontinue;student student =

温馨提示

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

评论

0/150

提交评论