版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发代码规范 (C)(仅通普信息技术股份有限公司供内部使用)拟制:杨超日期:-3-10审核:夏峰日期:-3-10核准:冯敬刚日期:-3-17签发:韩殿成日期:-3-21文档版本:V1.11黑龙江通普信息技术股份有限公司版本历史日期版本阐明作者目录TOC\o"1-3"\h\z第一章代码开发规范及其指南 11.1目 11.2程序内命名规范 11.3文献命名规范 21.4Java文献样式 21.5代码编写格式 6第二章程序编写规范办法 82.1权限修饰 82.2其她规范 82.3编程指南 10第三章其她规定 12代码开发规范及其指南目定义这个规范目是让项目中所有文档都看起来像一种人写,增长可读性,减少项目组中由于换人而带来损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好可读性)程序内命名规范Package命名:Package名字应当都是由一种小写单词构成。Class命名:Class名字必要由大写字母开头而其她字母都小写单词构成Class变量命名:变量名字必要用一种小写字母开头。背面单词用大写字母开头。StaticFinal变量命名:StaticFinal变量名字应当都大写,并且指出完整含义。参数命名:参数名字必要和变量命名规范一致。数组命名:数组应当总是用下面方式来命名:byte[]buffer;而不是bytebuffer[];办法参数:使用故意义参数命名,如果也许话,使用和要赋值字段同样名字:SetCounter(intsize){this.size=size;}文献命名规范文献名由英文单词构成,每个单词首字母大写,不要超过4个单词,如ShipOrder.jsp。Java文献文献名要与程序中public类名相似。Servet文献要以Servlet做为结尾,如AddCompanyServlet.java业务解决组件JavaBean要以Bean为结尾,如ProcessBean.javaJava文献样式所有Java(*.java)文献都必要遵守如下样式规则头部版权信息版权信息必要在java文献开头,例如:/***CopyrightSunMicrosystems,Inc.Allrightsreserved.*/其她不需要出当前javadoc信息也可以包括在这里。Package/Importspackage行要在import行之前,import中原则包名要在本地包名之前,并且按照字母顺序排列。如果import行中包括了同一种包中不同子目录,则应当用*来解决。package.stats;importjava.io.*;importjava.util.Observable;importhotlava.util.Application;这里java.io.*使用来代替InputStreamandOutputStream。Class接下来是类注释,普通是用来解释类有关信息,涉及标题、描述、。/***<p>Title:Example</p>*<p>Description:AuditApplicationExample</p>*<p>Copyright:Copyright(c)200x</p>*<p>Company:xxxxx</p>*@authorxxxxxx*@version1.0*/接下来是类定义,包括了在不同行extends和implementspublicclassCounterSetextendsObservableimplementsCloneableClassFields接下来是类成员变量:/***Packetcounters*/protectedint[]packets;public成员变量必要生成文档(JavaDoc)。protected、private和package定义成员变量如果名字含义明确话,可以没有注释。存取办法接下来是类变量存取办法。它只是简朴用来将类变量赋值获取值话,可以简朴写在一行上。/***Getthecounters*@returnanarraycontainingthestatisticaldata.Thisarrayhasbeen*freshlyallocatedandcanbemodifiedbythecaller.*/publicint[]getPackets(){returncopyArray(packets,offset);}publicint[]getBytes(){returncopyArray(bytes,offset);}publicint[]getPackets(){returnpackets;}publicvoidsetPackets(int[]packets){this.packets=packets;}其他办法不要写在一行上构造函数接下来是构造函数,它应当用递增方式写(例如:参数多写在背面)。访问类型("public","private"等.)和任何"static","final"或"synchronized"应当在一行中。PublicCounterSet(intsize){this.size=size;}克隆办法如果这个类是可以被克隆,那么下一步就是clone办法:publicObjectclone(){try{CounterSetobj=(CounterSet)super.clone();obj.packets=(int[])packets.clone();obj.size=size;returnobj;}catch(CloneNotSupportedExceptione){thrownewInternalError("UnexpectedCloneNotSUpportedException:"+e.getMessage());}}类办法下面开始写类办法:/***Setthepacketcounters*(suchaswhenrestoringfromadatabase)*/protectedfinalvoidsetArray(int[]r1,int[]r2,int[]r3,int[]r4)throwsIllegalArgumentException{////Ensurethearraysareofequalsize//if(r1.length!=r2.length||r1.length!=r3.length||r1.length!=r4.length)thrownewIllegalArgumentException("Arraysmustbeofthesamesize");System.arraycopy(r1,0,r3,0,r1.length);System.arraycopy(r2,0,r4,0,r1.length);}toString办法无论如何,每一种类都应当定义toString办法:publicStringtoString(){Stringretval="CounterSet:";for(inti=0;i<data.length();i++){retval+=data.bytes.toString();retval+=data.packets.toString();}returnretval;}}main办法如果main(String[])办法已经定义了,那么它应当写在类底部.代码编写格式代码样式代码应当用unix格式,而不是windows(例如:回车变成回车+换行)文档化必要用javadoc来为类生成文档。不但由于它是原则,这也是被各种java编译器都承认办法。缩进缩进应当是每行4个空格.不要在源文献中保存Tab字符.在使用不同源代码管理工具时Tab字符将由于顾客设立不同而扩展为不同宽度.如果你使用UltraEdit作为Java源代码编辑器话,你可以通过如下操作来禁止保存Tab字符,办法是通过UltrEdit中先设定Tab使用长度是4个空格,然后用Format|TabstoSpaces菜单将Tab转换为空格。页宽页宽应当设立为80字符.源代码普通不会超过这个宽度,并导致无法完整显示,但这一设立也可以灵活调节.在任何状况下,超长语句应当在一种逗号或者一种操作符后折行.一条语句折行后,应当比本来语句再缩进2个字符.程序块要有大括号,虽然只有一句程序{}中语句应当单独作为一行.例如,下面第1行是错误,第2行是对的:if(i>0){i++};//错误,{和}在同一行if(i>0){i++};//对的,{单独作为一行}语句永远单独作为一行.如果}语句应当缩进到与其相相应{那一行相对齐位置。括号左括号和后一种字符之间不应当浮现空格,同样,右括号和前一种字符之间也不应当浮现空格.下面例子阐明括号和空格错误及对的使用:CallProc(AParameter);//错误CallProc(AParameter);//对的不要在语句中使用无意义括号.括号只应当为达到某种目而出当前源代码中。下面例子阐明错误和对的用法:if((I)=42){//错误-括号毫无意义if(I==42)or(J==42)then//对的-确需要括号import对于import语句,如果某一种包中引用类不超过三个(涉及三个),不容许用importxxx.*;格式。变量定义及办法返回值不容许使用全包名,如java.lang.String,除非在不同包中有相似名字类,必要用全名来区别。对于类中属性存取要用办法(getXXX/setXXX,boolean值用isXXX/setXXX),不要直接引用。
程序编写规范办法权限修饰Java中权限修饰符有三个:public,private,protected,此外一种是不写这三种任何一种,称为(default).对于外部类,只能用public或(default),并且一种文献中最多只能有一种public类。但是内部类这四种都可以使用。如果对某些数据或办法只容许其所在类使用,用private修饰。如果对某些数据或办法容许本类或同包类使用,用(default),即不写任何修饰符。如果对某些数据或办法容许本类,同包类,或非同包子类使用,用protected.如果对某些数据或办法容许任何类使用,用public修饰。其她规范exit()exit除了在main中可以被调用外,其她地方不应当调用。由于这样做不给任何代码代码机会来截获退出。一种类似后台服务程序不应当由于某一种库模块决定了要退出就退出。异常核心操作如涉及到数据库操作和各种核心解决环节时应当采用try,catch语句,以便于捕获异常(各类Exception)和异常解决。垃圾收集JAVA使用成熟后台垃圾收集技术来代替引用计数。但是这样会导致一种问题:必要在使用完对象实例后来进行清场工作。除非输出流一出作用域就关闭,非引用计数程序语言,例如JAVA,是不能自动完毕变量清场工作。必要象下面同样写:FileOutputStreamfos=newFileOutputStream(projectFile);project.save(fos,"IDEProjectFile");fos.close();Clone下面是一种有用办法:implementsCloneablepublicObjectclone(){try{ThisClassobj=(ThisClass)super.clone();obj.field1=(int[])field1.clone();obj.field2=field2;returnobj;}catch(CloneNotSupportedExceptione){thrownewInternalError("UnexpectedCloneNotSUpportedException:"+e.getMessage());}}final类绝对不要由于性能因素将类定义为final(除非程序框架规定)如果一种类还没有准备好被继承,最佳在类文档中注明,而不要将她定义为final。这是由于没有人可以保证会不会由于什么因素需要继承她。访问类成员变量大某些类成员变量应当定义为protected来防止继承类使用她们。注意,要用"int[]packets",而不是"intpackets[]",后一种永远也不要用。publicvoidsetPackets(int[]packets){this.packets=packets;}CounterSet(intsize){this.size=size;}编程指南byte数组转换到characters为了将byte数组转换到characters,可以这样做:"Helloworld!".getBytes();Utility类Utility类(仅仅提供办法类)应当被声明为抽象来防止被继承或被初始化。初始化下面代码是一种较好初始化数组办法:objectArguments=newObject[]{arguments};枚举类型JAVA对枚举支持不好,但是下面代码是一种很有用模板:classColour{publicstaticfinalColourBLACK=newColour(0,0,0);publicstaticfinalColourRED=newColour(0xFF,0,0);publicstaticfinalColourGREEN=newColour(0,0xFF,0);publicstaticfinalColourBLUE=newColour(0,0,0xFF);publicstaticfinalColourWHITE=newColour(0xFF,0xFF,0xFF);}这种技术实现了RED,GREEN,BLUE等可以象其她语言枚举类型同样使用常量。她们可以用'=='操作符来比较。但是这样使用有一种缺陷:如果一种顾客用这样办法来创立颜色BLACKnewColour(0,0,0)那么这就是此外一种对象,'=='操作符就会产生错误。她equal()办法依然有效。由于这个因素,这个技术缺陷最佳注明在文档中,或者只在自己包中使用。性能在写代码时候,从头至尾都应当考虑性能问题,要注意代码效率。不必要对象构造不要在循环中构造和释放对象使用StringBuffer对象在解决String时候要尽量使用StringBuffer类,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国进口沙发市场深度调查研究报告
- 2025年事业单位卫生类专业知识试卷(卫生组织与卫生政策研究与实践)试题及答案
- 【8英RJ期中】六安市霍邱县2025-2026学年度第二学期期中考试八年级英语试卷
- 2025新国家开放大学电大本科《计算机应用基础》网络课网考形考任务作业试题与答案
- 2026冷冻食品家庭消费增长驱动因素与市场预测报告
- 2025新初级社会工作者社工实务试题附答案
- 2026农业科技商业化应用与投资机会研究报告
- 2026中国葡萄干产业劳动力成本变化与自动化转型研究
- 2026中国期货交易所金属品种创新与流动性提升策略
- 2025中信证券融资测试题及答案
- 2026年辽宁省沈阳市铁西区中考数学一模试卷(含答案)
- 2025年陕西艺术职业学院招聘笔试真题
- 2026年保密工作知识考试题库及答案
- 2026年甘肃省陇南市宕昌县人民法院招聘聘用制司法辅助人员考试参考试题及答案解析
- 涉密地理信息保密制度
- 机加工供应商考核制度
- 初中语文中考非连续性文本信息筛选与辨析(选择题)知识清单
- 中国商飞在线测评题
- 海外工程财务制度
- 产科全身麻醉指南与专家共识2025
- 2026年中考英语预测【时文阅读】2026年欢乐春节+吉祥马
评论
0/150
提交评论