热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

规范中的乐趣——读《Java编码规范》

规范中的乐趣俗话说“没有规矩,不成方圆”。作为专业的程序员,即便在程序设计工作中总能创造性地奇思妙想,你也必须遵守一定的规则和限制。从这个意义上讲,编码风格(style)的重要性是不言而喻
规范中的乐趣
    俗话说“没有规矩,不成方圆”。作为专业的程序员,即便在程序设计工作中总能创造性地奇思妙想,你也必须遵守一定的规则和限制。从这个意义上讲,编码风格(style)的重要性是不言而喻的。现代软件项目的开发往往需要团队协作,那么你所编写的代码就不仅仅是给自己阅读的。况且,代码风格的简单一致通常会减少bug;相反,对于风格糟糕的代码,程序员往往宁愿重起炉灶,也不愿去阅读和维护。
    《Java编码规范》是一本针对Java编码风格的小册子,取材自Scott Ambler制定的Java编码标准和Rogue Wave公司的编码风格文档。Scott Ambler是知名的对象技术专家,也是The Object Primer,Process Patterns,More Process Patterns等(Process Patterns和More Process Patterns中文版也将由人民邮电出版社出版)很有影响力的技术图书的作者。Rogue Wave是第一个可视化Java开发工具JFactory的开发商,它们还开发出了JWidgets,Chart.J和StudioJ等基于Java语言的程序库和组件,还曾获得包括Software Development杂志效率大奖在内的众多奖项。
    这本书的诞生过程很有趣。在Rogue Wave公司发展壮大的过程中,公司的创建者Tom Keffer深深体会到很难让所有的程序员都遵从一致的工作规范。于是,Tom编写了35页的C++编码工作规范,并将它发到每个新雇员的手上。这个规范的效果很好。当客户要了解Rogue Wave公司如何保证代码的一致性的时候,他们告知客户有这样一份规范,并且也送给客户一份。消息传开了,Tom的规范还被写进公司的技术报告。Rogue Wave公司送出了上千份规范,并且得到了非常积极的反馈。好的习惯和方法在Java项目的开发中得到了保持和延续。当Scott Ambler看到“Java编码工作规范”最初的草稿时,他建议和他自己在网上发布的Java编码标准进行整合——于是,这本薄薄的《Java编码规范》诞生了。
    《Java编码规范》共总结了108条Java编码原则,分为一般原则、格式、命名、文档、编程、包6大类。这些原则或具有一般的指导性(例如第1条“遵从原始代码的风格”),或具有较强的约定性(例如第5条“缩进嵌套代码”),或具有明确的启发性(例如第89条“根据契约编程”),或具有很强的可操作性(例如第98条“考虑用notify()取代notifyAll()”),对于养成良好的工作习惯、迅速提高专业素质有很大的帮助。不管是原则本身的表述还是具体含义的阐释,语言都简洁明了、易于理解。值得一提的是,本书用了1章(34条)的篇幅,对Java程序的文档和注释作了非常详尽的规定,尤其是在编写文档注释方面,更是巨细不遗。程序注释的高度规范有助于javadoc工具提取高质量的程序文档。规范注释的重要性在《Java编码规范》中得到了很好体现和强调。在详细阐释了这108条原则之后,本书的“Summary(总结)”部分对这些原则给出了统一整体的呈现,使读者在速查的时候可以一目了然。
    《Java编码规范》的原书出版以来,得到普遍的赞誉和广泛的好评(可参见amazon网站上的书评)。这本英文版的小册子,非常适合于专业的Java程序员和软件项目管理人员阅读;而对于那些苛求一致性的软件项目开发团队,这本小巧的“口袋书”更是方便的必备“工具”。
    当前,很多有远见的软件公司非常注重内部开发语言工作规范的建立。国内也开始出版这方面的技术书籍。但是,我们几乎还看不到有关Java编码规范的图书正式出版。从这个意义上讲,这本《Java编码规范》并不是程序员和软件开发商的“紧箍咒”,而应该有更进一步的启发意义,帮助他们在科学、可行并且适合于自己的规范中提高开发效率,改善代码质量,体会编码乐趣,获取更多自由。

10 个解决方案

#1


有时间看 看    3x
 up

#2


up

#3


那里有这本书可以下载?

#4


书店有的买吗?

#5


上市了,定价11.8

#6


有没有电子版的,想download,可以吗?

#7


有时间看 看

#8


有时间也要看看的

#9


广告?

#10


sun网站上有他们编写的code convention不妨一看,感觉写的非常的全面。
楼主的书没看过,不好评价。个人感觉还有看官方原版好,不过E文不太好的话,看中文的有助于理解。自己拿捏吧,呵呵

推荐阅读
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 怀疑是每次都在新建文件,具体代码如下 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
author-avatar
搜狐搜不到你的爱_276
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有