Java编程风格学习(一)
最近在看一本有关Java编程规范的书,书中精炼阐述了使用java语言时应该遵循的一些原则。接下来的一段时间我将在这里总结我的学习内容,也希望这一系列文章能够对有需要的人有所帮助。
不考虑任何编码规范的代码往往存在很多Bug,严重情况下还会制约软件开发的进度。良好的编程规范不仅能使团队里的每个人都能轻松的阅读并理解其他人的代码、减少Bug的产生,而且让后期的维护工作更加行之有效,从而使代码更具准确性、健壮性、可维护性与可扩展性。所以拥有良好一致的编程规范对于一个团队至关重要。
一、一般原则
(一)保持原有风格
在修改原有的软件时,应该保持原有代码的编写风格。
我们不应该在原有的代码中引入新的风格,在同一段代码中使用不同的编程风格会让我们的代码难以理解。同时我们也不应该重写旧的软件去迎合新的风格,这样很可能会使原来的程序产生严重的功能缺陷。
(二)坚持最小惊奇原则
在编码过程中尽量避免可能让软件用户感到意外的做法。
用户在使用软件中产生的任何交互行为必须都是可预见的,除非在说明文档中明确记录下所有的非常规行为并且说明这样做的理由。为了达到这一目的,在Java软件的开发过程中应该遵循以下几点:
- 简单性:构建简单的类和方法。
- 清晰性:明确每个变量、类、接口、方法、对象的用途。
- 完整性:提供用户所期望的完整的程序功能,并且为此编写完整的说明文档。
- 一致性:相似的实体,其外观和行为也要大致相同;反之亦然。
- 健壮性:对错误和异常做出预测,并且在说明文档中提供相应的解决办法。
(三)第一次就做对
将以上的这些规则应用到我们编写的任何代码中,而不只是产品本身的代码。
通常情况下,那些原型代码最终都会被写入成品软件中。由于我们一开始就已经遵循了编码规范,所以我们不需要为特定的产品修改代码规范。那些阅读我们代码的人也会从中受益匪浅。
(四)记录所有非规范行为
没有什么标准是完美且能够放之四海而皆准的,有时候你会发现自己不得不偏离已经建立好的标准体系。
标准并不是适用于任何地方,在打破一条规则之前,我们需要确保我们已经对这条准则有了深入的理解而且清楚打破规则后的后果。此外,我们应该在文档中记录下这样做的理由。
以上就是一般原则的内容,没有涉及具体的代码,但是我们在进行下面的学习或者编码之前应该对以上的内容有所理解。
Java编程风格学习(一)的更多相关文章
- Java编程风格学习(二)
二.格式规范 在上一篇的Java编程风格学习(一)中我们讲述了在Java编码中的一般原则,虽然这些原则并不涉及具体的代码规范,但是这些原则却是我们在Java开发过程中所应该遵循的规范与思想.今天我们将 ...
- Java编程风格学习(三)
在上一篇的java编程风格学习(二)中我们学习了一些在Java编码过程中的格式规范,遵循这些规范毋庸置疑是我们的书写高质量代码的前提与基础.今天我们更进一步,一起来学习Java编程的命名规范,向着编写 ...
- Java学习笔记(四)——google java编程风格指南(上)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- Java学习笔记(五)——google java编程风格指南(中)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- Java学习笔记(六)——google java编程风格指南(下)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- Google Java编程风格指南
出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...
- Google Java编程风格指南中文版
作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...
- (转)google Java编程风格中文版
转:http://www.hawstein.com/posts/google-java-style.html 目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 ...
- Google的Java编程风格指南(Java编码规范)
这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格. 与其它的编程风格指南一样,这里所讨论的不仅仅是 ...
随机推荐
- 动态规划:HDU-1203-0-1背包问题:I NEED A OFFER!
解题心得: 动态规划就是找到状态转移方程式,但是就本题0-1背包问题来说转移方程式很简单,几乎看模板就行了. 在本题来说WA了很多次,很郁闷,因为我记录v[i]的时候i是从0开始的,一些特殊数据就很尴 ...
- [原]sencha touch之布局
今天记录一下关于sencha touch中的几种布局,其实很简单的,还是直接上代码,一目了然 1:box布局,其实就是vbox和hbox,说白了一个是横着摆放,一个是竖着摆放 Ext.applicat ...
- TCP/IP网络编程之地址族与数据序列
分配IP地址和端口号 IP是Internet Protocol(网络协议)的简写,是为收发网络数据而分配给计算机的值.端口号并非赋予计算机的值,而是为区分程序中创建的套接字而分配给套接字的序号 网络地 ...
- Python协程详解(二)
上一章,我们介绍了Python的协程,并讲到用yield达到协程的效果,这一章,我们来介绍yield from的结构和作用 我们先来对比下yield和yield from的用法 def first_g ...
- SQLAlchemy Script
SQLAlchemy: 1.由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 from sqlalchemy_utils impo ...
- Marketing learning-2
Part three 1.strategies for leadership 1)operational excellence:operational competence 2)performance ...
- HTML 长文本换行
word-break 属性指定单词在到达行尾时应如何中断. p.a { word-break: break-all; } word-break: normal|break-all|keep-all|b ...
- idea调试查看mybitis发送的语句(引用)
MyBatis 的配置文件 Configuration 中有相关属性,设属性即可,不用再放一个 log4j.properties 文件. <configuration> <setti ...
- js作用域的理解
script:自上而下 全局变量.全局函数 函数:由里到外 浏览器: “JS解析器” 1)“找一些东西”: var function 参数 a = undefine 所有的变量,在正式运行代码之前,都 ...
- 爱之箭发射(las)
爱之箭发射(las) 目描述 小海是弓道部的成员,非常擅长射箭(Love Arrow Shoot).今天弓道部的练习是要射一棵树.一棵树是一个nn个点n−1n−1条边的无向图,且这棵树的第ii个点有一 ...