热门标签 | 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文不太好的话,看中文的有助于理解。自己拿捏吧,呵呵

推荐阅读
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • QT框架中事件循环机制及事件分发类详解
    在QT框架中,QCoreApplication类作为事件循环的核心组件,为应用程序提供了基础的事件处理机制。该类继承自QObject,负责管理和调度各种事件,确保程序能够响应用户操作和其他系统事件。通过事件循环,QCoreApplication实现了高效的事件分发和处理,使得应用程序能够保持流畅的运行状态。此外,QCoreApplication还提供了多种方法和信号槽机制,方便开发者进行事件的定制和扩展。 ... [详细]
  • 在本地环境中部署了两个不同版本的 Flink 集群,分别为 1.9.1 和 1.9.2。近期在尝试启动 1.9.1 版本的 Flink 任务时,遇到了 TaskExecutor 启动失败的问题。尽管 TaskManager 日志显示正常,但任务仍无法成功启动。经过详细分析,发现该问题是由 Kafka 版本不兼容引起的。通过调整 Kafka 客户端配置并升级相关依赖,最终成功解决了这一故障。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
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社区 版权所有