Java编程规范(一)
最近在看一本有关Java编程规范的书,书中精炼阐述了使用java语言时应该遵循的一些原则。接下来的一段时间我将在这里总结我的学习内容,也希望这一系列文章能够对有需要的人有所帮助。
不考虑任何编码规范的代码往往存在很多Bug,严重情况下还会制约软件开发的进度。良好的编程规范不仅能使团队里的每个人都能轻松的阅读并理解其他人的代码、减少Bug的产生,而且让后期的维护工作更加行之有效,从而使代码更具准确性、健壮性、可维护性与可扩展性。所以拥有良好一致的编程规范对于一个团队至关重要。
一、一般原则
(一)保持原有风格
在修改原有的软件时,应该保持原有代码的编写风格。
我们不应该在原有的代码中引入新的风格,在同一段代码中使用不同的编程风格会让我们的代码难以理解。同时我们也不应该重写旧的软件去迎合新的风格,这样很可能会使原来的程序产生严重的功能缺陷。
(二)坚持最小惊奇原则
在编码过程中尽量避免可能让软件用户感到意外的做法。
用户在使用软件中产生的任何交互行为必须都是可预见的,除非在说明文档中明确记录下所有的非常规行为并且说明这样做的理由。为了达到这一目的,在Java软件的开发过程中应该遵循以下几点:
- 简单性:构建简单的类和方法。
- 清晰性:明确每个变量、类、接口、方法、对象的用途。
- 完整性:提供用户所期望的完整的程序功能,并且为此编写完整的说明文档。
- 一致性:相似的实体,其外观和行为也要大致相同;反之亦然。
- 健壮性:对错误和异常做出预测,并且在说明文档中提供相应的解决办法。
(三)第一次就做对
将以上的这些规则应用到我们编写的任何代码中,而不只是产品本身的代码。
通常情况下,那些原型代码最终都会被写入成品软件中。由于我们一开始就已经遵循了编码规范,所以我们不需要为特定的产品修改代码规范。那些阅读我们代码的人也会从中受益匪浅。
(四)记录所有非规范行为
没有什么标准是完美且能够放之四海而皆准的,有时候你会发现自己不得不偏离已经建立好的标准体系。
标准并不是适用于任何地方,在打破一条规则之前,我们需要确保我们已经对这条准则有了深入的理解而且清楚打破规则后的后果。此外,我们应该在文档中记录下这样做的理由。
以上就是一般原则的内容,没有涉及具体的代码,但是我们在进行下面的学习或者编码之前应该对以上的内容有所理解。
Java编程规范(一)的更多相关文章
- JAVA编程规范(下)
JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1. 通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2. ...
- JAVA 编程规范(上)
2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1. 应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...
- Java编程规范(二)
二.格式规范 在上一篇的java编程规范(一)中我们讲述了在Java编码中的一般原则,虽然这些原则并不涉及具体的代码规范,但是这些原则却是我们在Java开发过程中所应该遵循的规范与思想.今天我们将学习 ...
- FangDD Java编程规范
我们采用<Oracle/Sun原生的Java编程规范>和<Google Java编程规范> Google Java编程风格指南 January 20, 2014 作者:Haws ...
- Java编程规范参考
谷歌Java编程规范-原版 谷歌Java编程规范-中文翻译版 阿里巴巴Java编程规范 阿里巴巴Java编程规范-IDEA 插件 阿里巴巴Java编程规范-Eclipse 插件
- 乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符
大家好,我是乐字节的小乐,这次要给大家带来的是Java变量与数据类型.本文是第一集:Java编程规范,关键字与标识符. 一.编程规范 任何地方的名字都需要见名知意: 代码适当缩进 书写过程成对编程 对 ...
- 阿里巴巴Java编程规范考试
阿里巴巴Java编程规范考试 今天在阿里云官网把阿里巴巴Java编程规范认证考试考过了, 写下这篇文章总结一下考试中需要注意的知识点, 主体内容还是要直接看规范: 编程规约 异常日志 单元测试 安全规 ...
- java编程规范大全
JAVA编程规范大全 命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失.(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性 ...
- JAVA基础语法:java编程规范和常用数据类型(转载)
JAVA基础语法:java编程规范和常用数据类型 摘要 本文主要介绍了最基本的java程序规则,和常用数据类型,其中侧重说了数组的一些操作. 面向java编程 java是纯面向对象语言,所有的程序都要 ...
随机推荐
- iOS-模糊查询
http://blog.csdn.net/qq_33701006/article/details/51836914 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 前言 ...
- 《javascript语言精粹》——第6章数组
[1].数组字面量 var empty=[]; var num=[ 'zero','one','two','three','four','five','six','seven','eight','ni ...
- cygwin的安装,vi的使用,gcc,g++的使用(转)
源:cygwin的安装,vi的使用,gcc,g++的使用 Gcc的Makefile简单使用
- ZOJ 1025 Wooden Sticks
题目大意:有n个木棍,分别具有长度li和重量wi.对于木棍s1和s2,若l1<=l2且w1<=w2,则s1.s2可构成单调递增序列.求n个木棍中这样序列的个数. 最先的想法是,先排序,然后 ...
- PHP批量上传一次点击选中多个
首先前端部分需要设置好控件,这里使用HTML5 中 input 的新增属性 multiple 可以很好的解决了以往上传多个需要点击多次"上传按钮"的麻烦: <form act ...
- redis php sort 函数
很多人把redis当成一种数据库,其实是利用redis来构造数据库的模型,有那种数据库的味道.但是在怎么构建还是key和value的关系.根真正的关系型数据库还是不一样的.效率高,不方便:方便的,效率 ...
- linux 下 tomcat 之 配置静态资源路径
1.找到配置文件 找到tomcat\conf\server.xml 2.找到Host 3. 添加 Context <Host name="localhost" appBase ...
- 使IE6下PNG背景透明的七种方法任你选
原文地址:http://blog.csdn.net/mosliang/article/details/6760028 相信如何解决png在ie6下透明的问题困扰了很多人.为了追求更好的页面效果,很多人 ...
- %c输入应注意的问题
for(i=0;i<n;i++) { getchar(); scanf("%c",&str[i]); } 这样输入是错的 的这样输入 for(i=0;i<n;i ...
- --@angularJS--指令与控制器之间的交互demo
1.index.html: <!DOCTYPE HTML><html ng-app="app"><head> <title>c ...