一 : 目的
使本组织能以标准的,规范的方式设计和编码。通过建立编码规范,以使每个开发人员养成良好的编码风格和习惯;并以此形成开发小组编码约定,提高程序的可靠性,可读性,可修改性,可维护性和一致性等,增进团队间的交流,并保证软件产品的质量。
二:代码组织与风格
1:长度:为便于阅读和理解,单个函数的有效代码长度当尽量在100行以内(不包括注释行),当功能模块过大时往往采用使用子函数将相应的功能抽取出来,这也有利于提高代码的重用度。
2:单个类不宜过大,当出现此类过大时当将相应功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过1500行。尽量避免使用大类和长方法。
3:间隔:类,方法及功能块间等应以空行相隔,以增加可读性,但不得有无规则的大片空行。操作符两端应当各空一个字符以增加可读性。
三:注释
1:注释应该增加代码的清晰度。代码注释的目的时要使代码更易于被其他开发人员等理解。
2:保持注释的简洁。
3:注释信息应该包括代码的功能。
4:除变量定义等较短语句的注释使用行尾注释外,其他注释当避免使用行尾注释。
5:JavaDoc规范
对类,方法,变量等注释需要符合javadoc规范,对每个类,方法都应详细说明其功能条件,参数等。类注释中应当包含版本和作者信息。
1)类,接口注释 在类,接口定义之前当对其进行注释,包括类,接口的目的,作用,功能,继承于何种父类,实现的接口,实现的算法,使用方法,示例程序等。
2)方法注释  以明确该方法功能,作者,各参数含义以及返回值等。
3)其他注释  应对重要的变量及不易理解的分支条件表达式加以注释,以说明其含义等。
四 命名规范
1:对变量,类,接口及包的命名应该使用英文。严禁使用汉语拼音及不相关单词命名。更不可以使用汉字来进行命名。采用大小写混合,提高名字的可读性。一般应该采用小写字母,但时类和接口的名称的首字母,以及任何中间单词的首字母应该大写。包名全部小写。
2:尽量少用缩写,但如果一定要用,当使用公共缩写和习惯缩写等,如implement可缩写为impl,manager可缩写成mgr等。
3:包名一般以项目或模块名命名,少用缩写和长名,一律小写。
包名按照如下规定组成 [基本包].[项目名].[模块名].[子模块名].….
   如:org.skyinn.skyhome.dao.hibernate。
   不得将类直接定义在基本包下,所有项目中的类,接口等都当定义在各自的项目和模块包中。
4:类,接口 所有单词首字母大写,最好能够见名知意。一般采用名词。接口可带I前缀。或able,dao后缀。
5:字段  常量采用完整的英文大写单词,单词之间用下划线连接,如 DEFAULT_VALUE.
6:变量和参数对不易识别出该变量类型的变量应使用类型缩写作其前缀,如字符串使用strXXX,boolean使用isXXX,hasXXX等等。除第一个单词外其余单词的首字母大写。
7:集合 采用复数名称来表示队列中存放的对象类型,名词采用完整的英文描述。
例如:Vector  vProducts= new Vector();
              Array   aryUsers= new Array();
8:方法  方法的名称应采用完整的英文描述,大小写混合使用:所有中间单词的第一个字母大写。方法名称的第一个单词常常采用一个强烈动作色彩的动词。取值类使用get前缀,设置类使用set前缀。例如  getName(),setSarry()。
9:异常类名由表示该异常类型的单词和Exception组成,如ActionException。异常实例一般使用e,ex等。
10:数组的命名
数组应该总是用下面的方式来命名:byte[] buffer; 而不是: byte buffer[];
五 : 类与接口
1:基本原则:一个类只做一件事情。另一个原则时根据每个类的职责进行划分,比如用User来存放用户信息,而用UserDAO来对用户信息进行数据访问操作,用UserServer对用户信息的业务操作等等。多个类中使用相同方法时将其方法提到一个接口中或使用抽象类,尽量提高重用度。不希望被实例化的类的缺省构造方法声明为private。
2:一般而言,接口定义行为,而抽象类定义属性和共有行为,注意2者的取舍,在设计中可由接口定义公用的行为,由一个抽象类来实现其部分或全部方法,以给子类提供统一的行为为定义。
六 :方法
一个方法只完成一项功能。方法参数类型和参数返回值尽量接口化,以屏蔽具体的实现细节,提高系统的可扩展性,例如:public  void  addUser(List userList){}
public  List   listAllUsers(){}
七:Web 命名规范
一:jsp页面命名
对于某个功能块的增删改查页面定义,最好使用
xxx_add.jsp,xxx_delete.jsp,xxx_update.jsp,xxx_list.jsp.
二:DAO层名称命名(接口层)     IXxxDao
三:DAO层的实现层名称命名       XxxDaoImpl
四:BO  层名称命名(接口层)     IXxxServ
五:BO层的实现层名称命名        XxxServImpl
六:struts中的命名规范  XxxForm ,XxxAction。
七:工具类的命名规范   StringUtil ,  DataUtil。
八 : 性能与安全
1:不要使用String str=new String(”abc”);这将产生2个对象,应当使用String str=”abc”;
2:处理可变String 时候尽量使用StringBuffer类。
3:尽量避免使用Vector 和HashTable等旧的集合实现。由于时实现时同步的,故大量操作带来不必要的性能损失。应使用ArrayList和HashMap来代替。如果一定要使用同步集合类,当使用如下方式:Map map=Collections.synchronizedMap(new HashMap());。
4:避免在循环中频繁的构建和释放对象。
5:如无必要,不要序列化对象。
6:垃圾收集和资源释放,可能有异常的操作时必须在try的finally块中释放资源,如数据库连接,I/O操作等

Java 开发规范文档相关推荐

  1. java代码规范文档

    java代码规范文档 原则: 注释形式统一 在整个应用程序中,使用具有一致的标点和结构的样式来构造注释.如果在其它项目中发现它们的注释规范与这份文档不同,按照这份规范写代码,不要试图在既成的规范系统中 ...

  2. 微信小程序开发规范文档

    微信小程序开发规范文档 摘自: https://shimo.im/docs/EZKacqyM018gmopv/read 目录规范 1.目录概述 组件文件 所有组件相关文件统一放在components目 ...

  3. 开发备必:WEB前端开发规范文档

    规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必 须按本文档规范进行前台页面开发. 本文档如有不对或者 ...

  4. WEB前端开发规范文档

    2019独角兽企业重金招聘Python工程师标准>>> 基本准则 符合web标准, 语义化html, 结构表现行为分离, 兼容性优良. 页面性能方面, 代码要求简洁明了有序, 尽可能 ...

  5. Android开发规范文档

    剑走偏锋终归会落下一些东西,以后会慢慢整理 1.   基本命名规则 在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的.比如,大小写的区分,使用不同字母开头等等.但究其本,追其源,在 ...

  6. 【代码规范】Web前端开发规范文档!!!

    规范目的 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. 本文档如有不对或者不 ...

  7. 再读华为代码规范文档

    两年前,开始编程前,读过华为代码规范文档,以后一直按该文档要求自己,两年后,再读,另有收获,发现这些问题,自己平时还是没有注意到. 1.关于函数使用: 1.1 接口函数参数 在同一项目组应明确规定对接 ...

  8. Python试题和规范文档

    ##试题: ###第一题: microbit和Arduino的区别 microbit:1.在线编程工具+本地编程工具,2.尺寸 43mm * 52mm,3.兼容电压:3V,4.带有模拟窗口,即使手上没 ...

  9. microbit题目和规范文档

    microbit题目和规范文档 考试题目: 第一题:microbit和Arduino的区别 第二题 第三题:画流程图,当microbit晃动时,在LED点阵上显示1-6的随机数,当按钮b按下时,清空l ...

最新文章

  1. 【Qt】MainWindow窗口状态栏
  2. 读完这篇文章,就基本搞定了Redis数据库
  3. SAP Cloud Platform上Fiori launchpad tile的读取原理
  4. 索尼Xperia 2带壳渲染图曝光:外形依然很索尼
  5. 135.002 智能合约设计-——多员工薪酬系统
  6. 201671010439-词频统计软件项目报告
  7. python with open as yaml_python – pyyaml并仅使用字符串引号
  8. C/C++ union
  9. LVM基础详细说明及动态扩容lvm逻辑卷的操作记录
  10. Visual Studio 2005中的Windows Mobile模拟器
  11. TortoiseGit推送
  12. 利用python爬虫程序爬取豆瓣影评
  13. 了不起的 Java VM-Java 虚拟机初探
  14. 亚马逊美国站店铺fbm自发货流程是什么?亚马逊美国站店铺fbm如何做起来?
  15. ubuntu 中的流程图绘制软件
  16. 摄影测量(tip1):空间前方交会与空间后方交会
  17. SpringCloud Alibaba 从零搭建鉴权中心服务(详细教程)
  18. 在PS中快速制作发朋友圈的九宫格切图
  19. VisualAge使用技巧(二)
  20. H5地理定位、百度地图使用

热门文章

  1. 塞规公差带图_塞规和卡规公差表
  2. android 模拟器网易,网易MuMu全游戏平台 网易mumu模拟器
  3. 石家庄建工科技学院有计算机专业吗,石家庄建工科技学院官网
  4. xmind各版本区别_思维导图工具 XMind 出了一个高颜值版:XMind ZEN
  5. 【欢迎来怼】事后诸葛亮会议
  6. 2016 server win 假死_Windows 7假死的几个常见情况以及解决方法
  7. 触发器-- 肖敏_入门系列_数据库进阶 60、触发器(三) --youku
  8. python文件批量改名
  9. 【飞桨PaddleSpeech语音技术课程】— 语音唤醒
  10. WSDM 2017精选论文