软件实现-图书管理系统(共15页).doc
《软件实现-图书管理系统(共15页).doc》由会员分享,可在线阅读,更多相关《软件实现-图书管理系统(共15页).doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上软件实现(图书管理系统)1 引言 1.1目的和作用 衡量一个程序的质量,主要有两个方面:运行质量和代码质量。一个稳定运行的程序并不等同于优良的程序,有可能其源代码可读性极差,不具有低成本的可维护性,以后的升级或者新员工接手时都会非常困难,对公司来说,意味着更高的资源投入,对工程师来说,意味着精力时间的浪费,甚至会引起对程序的抵制情绪,导致推翻重新实现,降低了软件复用度。当然,程序的运行质量是必须保证的,否则代码再规范也是一个废品。事实上,程序的不良书写风格和错误的写法往往是滋生错误的温床,而且很大一部分反复出现的错误是同一个原因造成的。本文档结合一些常见的错误或者危险
2、的代码,规定了编码的规范,按照规范上的要求编码,不仅可以使不同人写的代码看起来很统一,降低了交流的障碍和工作转接的成本,而且能够规避很多反复出现的程序错误。 1.2 文档概述 该规范定义了良好的编程风格,内容涉及排版,可读性,可维护性,可测性等方面。2 编码规范2.1 文件组织每个Java源文件包含一个单独的Public类接口或接口。当private类和接口与某个Public类有关部门时,可以把他们放在同一源文件中作为Public类。Public类应为文件中第一个类或接口。Java源文件中有下列顺序:(1)开头注释;(2)包和引用声明,如:package u.lms.utils;import
3、java.sql.Connection;import java.sql.DriverManager;(3)类和接口定义下面表格按序定义了一个类或接口的定义的各个部分。表5.1类和接口定义序号类/接口定义部分说明1类/接口文档注释(/*.*/)见注释2类/接口声明3类/接口执行注释可选,需包含不在类/接口文档注释的关于类/接口的所有信息4类静态变量先是Public类变量,再protected,再private5实例变量同上6构造函数7方法按功能排序2.2 文件格式标准2.2.1 缩排缩排的单位,逻辑Tab键,统一缩进为4个字符。2.2.2换行当一个表示不能在一行内写完时,按以下规则断行:(1)
4、在逗号后断行。(2) 在操作符前断行。(3) 宁可选择较高级别(higher-level)的断开,而不是较低级别(lower-level)的断开。(4) 新的一行应该与上一行同一级别表达式的开头处对齐。(5) 如果以上规则导致代码混乱或者使代码都堆挤在右边,那就代之缩进8个空格。2.2.3空白应谨慎使用空行来突出代码。例:(1) 在循环和条件块前后至少有一个空行。(2) 函数间至少有一个空行。(3) 注释前至少有一个空行。2.2.4 行长度尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。注意:用于文档中的例子应该使用更短的行长,长度一般不超过70个字符。2.2.5数值语句不
5、要用硬性代码数值。用符号常量。例:nTimeout = 3000; /BAD!NTimeout = MAX_ABC_DURATION; /Good2.3 注释注释是帮助程序读者的一种手段。最好的注释是简洁地点明程序的突出特征,或是提供一种概观,帮助别人理解程序。Java程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释使用/ * * / 和/界定的注释。文档的注释(被称为“doc comments”)是Java独有的,并由/* * */界定。文档注释可以通过javadoc工具转换 HTML文件。2.3.1 文件头
6、注释一个文件由被空行隔开的节和可选的标识节的注释组成。一个包声明和接口声明需用至少一个空行隔开。每个文件需在开头包括一个注释块,提供以下信息:版权声明,修改历史。/*数据库连接管理类 * author WangLiyun * version1.0 */2.3.2类注释每个源文件需在类声明前包含一个注释,提供以下信息:作者,版本。/* * * Window win = new window(parent); * win.show(); * * Sami Shaic *version % I %,% G % *see java.awt.BaseWindow *see java.awt.Button
7、 */ class window extends BaseWindow 2.2.3 方法头注释每个函数要在开头提供一个注释,包含以下信息:描述做了什么,如何完成的;假设,前提,限制;输入输出,包括返回值。/* * 用户登录 * * param mapping * param form * param request * param response * return * throws ServletException */2.3.4 定义注释多数域都需要描述其目的的简单注释。private String username;/ 用户名2.3.5 注释风格程序可以有四中实现注释的风格:块(bloc
8、k)、单行(single-line)、尾端(trailing)和行末(end-of-line)。下面用例子来解释。(1) 块注释(block Comments)/* * 保存帐号 * * param accountForm*/(2) 单行注释(single-line Comments)if (condition)/*Handle the condition. */(3) 尾端注释(trailing Comments) if (a = = 2) return TRUE; /*special case */ (4)行末注释(end-of-line Comments)private String u
9、sername;/ 用户名2.4 声明2.4.1每行声明变量的数量(Number Per Line)推荐一行议购声明,因为这样有利于写注释。2.4.2 布局(Placement)只在代码块的开始处声明变量(一个块是指任何被包含在大括号“”和“”中间的代码。不要在首次用到该变量时才声明之。避免声明的局部变量覆盖上一级的变量。2.4.3初始化(Initialization)尽量在声明局部变量的同时初始化。唯一不这样做的理由是变量的初始值依赖于某些先前发生的计算。2.4.4 类和接口的声明(Class and Interface Declaration)当编写类和接口时,应该遵循以下格式规则:(1)
10、 在方法名与其参数列表之前的左扩号“(”间不要有空格。(2) 左大扩号“”位于声明语句同行的末尾。(3) 右大括号“”另起一行,与相应的声明语句对齐,除非是一个空语句,“”应紧跟在“”之后。public void setUsername(String username) this.username = username;(4) 方法与方法之间一空行分隔。2.5 语句(Statements)2.5.1简单语句(Simple Statements)每行至多包含一条语句,例如:argv + +; /Correctargc - - ; /Correctargv + +; argc - - ; /AVO
11、ID!2.5.2 复合语句(Compound Statements)复合语句是包含在大括号中的语句序列,形如“语句”。例如下面各段。(1) 被括其中的语句应该较之复合语句缩进一个层。(2) 左大括号“”应位于复合语句起始行的行尾;右大括号“”应另起一行与复合语句首行对齐。(3) 大括号可以被用于所有语句,包括单个语句,只有这些语句诸如此类if-else 或for 控制语句的一部分。这样便于添加语句而无需担心由于忘了加括号而引入bug。2.5.3 返回语句(return Statements)一个返回值的return语句不使用小括号“()”,除非它们以美中不足方式使返回值更为显见。 public
12、 String getUsername() return username;2.5.4 if,if-else, if else-if else语句if-else语句应具有如下格式:if (condition) statement; if (condition) statement; else statement; if (condition) statement; else if (condition) statement; else statement; 注意:if语句总是用“”和“”括起来,避免使用如下容易引起错误的格式:if (condition)/AVOID!this omits th
13、e braces! Statement;2.5.5 for 语句(for Statements)一个for语句应该具有如下格式:for (int i = 0; i ids.length; i+) deleteAccount(idsi);一个空的for语句(所有工作都在初始化,条件判断,更新子句中完成)应该具有如下格式:for (initialization;condition;update) statement当在for语句的初始化或更新子句中使用逗号时,避免因使用三个以上变量。而导致复杂度提高。如果需要,可以在for循环之前(为初始化子句)或for循环末尾(为更新子句)使用单独的语句。2.5
14、.6 while语句(while Statements)一个while语句应该具有如下格式:while (rs.next() AccountForm accountForm = new AccountForm();accountForm.setId(rs.getString(id);accountForm.setUsername(rs.getString(username);accountForm.setType(rs.getString(type);accountList.add(accountForm);2.5.7 do-while语句(do-while Statements)一个do-w
15、hile语句应该具有如下格式:do .while(condition)2.5.8 switch语句(switch Statements)一个switch语句应该具有如下格式:switch (condition)2.5.9 try-catch语句(try-catch Statements)一个try-catch语句应该具有如下格式:try Class.forName(DBDriver);conn = DriverManager.getConnection(DBUrl, DBUser, DBPassword); catch (ClassNotFoundException ex) ex.printS
16、tackTrace();throw new CustomException(找不着驱动程序, ex); catch (Exception ex) ex.printStackTrace();throw new CustomException(数据库连接错误, ex);一个try-catch语句后面也可紧跟着一个finally语句,不论try代码块是否顺利执行完,它都会执行。try Class.forName(DBDriver);conn = DriverManager.getConnection(DBUrl, DBUser, DBPassword); catch (ClassNotFoundEx
17、ception ex) ex.printStackTrace();throw new CustomException(找不着驱动程序, ex); catch (Exception ex) ex.printStackTrace();throw new CustomException(数据库连接错误, ex);finally if(conn!=null) conn.close();2.6 命名规范命名规范使程序更易读,从而易于理解。它们可以提供一个有关标识符功能的信息,以助于理解代码,不论它是一个常量,包,还是类。表5.2 标识符命名标识符类型命名规则例子包(Packages)一个唯一的包名的前缀
18、总是全部小写的ASCII字母并且是一个顶级域名,通常是com、edu、gov、mil、net、org或1981年ISO3166标准所指定的标识国家的英文双字符代码。包名的后缀部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能一特定目录名的组成来区分部门(department),项目(project)机器(machine),或注册名(login names) com.sun.engcom.apple.quicktime.v2edu.cmu.cs.bovik.cheese类(Class)类名是一个名词,采用大小写混合的方式,每个单词的首字母大写。尽量使类名简洁而富于描述。使用完整单词,
19、避免缩写词。(除非缩写词已被广泛使用,像URL,HTML)class Raster;class ImageSprite;接口(Interface)大小写规则与类名相似interface ResterDelegateinterface Storing方法(Methods)方法名是一个动词,采用大小写混合的方式,第一个单词首字母小写,其后单词的首字母大写。run( );runFast( );getRackground( )变量(Variables)除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 实现 图书 管理 系统 15
限制150内