阅读更多

15顶
0踩

编程语言

原创新闻 《Effective Java》: Joshua Bloch访谈

2008-05-23 08:28 by 见习编辑 Eastsun 评论(12) 有6993人浏览
  《Effective Java》,这是一本Java开发者视为圣经的书。该书的第一版于2001发布。这几年Java平台发生了巨大的变化,尤其是Java5中引入很多新的语言特性。当前的实际情况与《Effective Java》第一版中所描述的发生了一些变化。譬如该书的第21条“用类来代替enum结构”,由于Java5中enum的引入情形已经不同。以及第九章“线程”,在该书第一版时JVM的内存模型还存在诸多问题,而JDK5中已经采用了新的JMM规范,一些问题已经不复存在;并且Java5中加入了java.util.concurrent包。
  在今年的JavaOne大会上,《Effective Java》的第二版正式发布。该版中增加和修改了一些条目以适应Java平台这几年来发生的变化。而James Sugrue对该书的作者Joshua Bloch进行了一次采访,谈到了这本书新版本中发生的变化以及Joshua Bloch对这些年来业界发生的变化的看法,并且就JDK中将要加入的闭包询问了Joshua Bloch的观点。下面是采访中的一部分对话:

  Sugrue: What changes have been added to bring to book up to date?
  Sugrue: 在该书的新的版中有那些变化?
  Bloch: I added two chapters, one on Generics, and another on Enums and Annotations. Also I added items describing best practices for each of the new language features in Java 5 (for-each loop, autoboxing, varargs, static import). I changed the title of the Threads chapter to Concurrency and rewrote it to reflect programming in the java.util.concurrent era (where the basic abstractions are tasks and executors, rather than threads, wait and notify). There's a table on page 1 that points you to all of this material.

In addition to adding material on features that were added to the platform since the first edition of the book, I added items or modified existing ones to reflect the evolution of best practices. For example, I added an item describing the Builder pattern (Item 2), and one describing the Serialization Proxy pattern (Item 78). I went over every line of every item, and did my best to make sure they were up to date.

  Bloch: 我增加了两章。一章是关于泛型,另一章是关于Enum与Annotation;还增加了一些讲述Java5中新增的语言特性最佳实践的条目。我将Threads一章的标题修改为Concurrency,并且针对java.util.concurrent重写了该章。在该书的第一页有一个列表指出了这些变化。
  除了自该书第一版以来Java平台上新添的特性以外,我还增加或修改了一些条目以反映最佳实践的演化。譬如,我增加了一个讲述Builder模式的条目(条目 2)以及一个讲述Serialization Proxy模式的条目(条目 78)。我仔细检查了书里面的每一条的每一行,尽我最大的努力确保它们反映出当前最新的变化。

  Sugrue: Since the first book in 2001, what key changes have you observed in Java development?
  Sugrue: 自从2001年发布该书的第一版以来,你认为在Java开发领域有那些关键性的变化?
  Bloch: The biggest changes are the rise of modern IDEs, such as Eclipse, IntelliJ, and NetBeans, and static analysis tools, such as FindBugs. Agile techniques, which were just making inroads in 2001, have become mainstream.
  Bloch: 最大的变化是现代IDE的增长,例如Eclipse、IntelliJ以及Netbeans。还有静态分析工具,如FindBugs。敏捷技术在2001年的时候才刚刚起步,而现在已经成为主流。
     。。。
15
0
评论 共 12 条 请登录后发表评论
12 楼 wufan0023 2008-05-28 13:28
期待中,是在java 5 出现后看这本书的,当讲到枚举的时候作者例举了它的坏处,如何避免使用,而java 5 就添加了这个新特性,这次要看看作者有新的说法。
现在的jdk的变化还是蛮大的。
11 楼 a_nuo 2008-05-27 09:31
期待啊,支持!!
10 楼 wlhok 2008-05-25 00:51
期待中文版~
9 楼 Kevin_zqw 2008-05-24 13:27
出了就立马买来看看,虽然现在不做Java开发了。。
8 楼 Eastsun 2008-05-23 20:36
新闻发布后就不能修改
我博客上的字体颜色改过来了
7 楼 comeon 2008-05-23 20:01
这样只有ctrl+a来看.翻译的还行,意思表达出来了.
6 楼 cddcdd 2008-05-23 17:36


这个字体能看得啊?

5 楼 runjia1987 2008-05-23 15:08
字体 颜色不好,  调调
4 楼 laiseeme 2008-05-23 14:31
期待 希望有中文版 翻译不要太恶
3 楼 Eastsun 2008-05-23 13:07
呵呵,偶E语水平不咋滴~
如果译文有问题希望高手能指正,不要BS我就是了
2 楼 freej 2008-05-23 11:25
期待,到时一定拜读
1 楼 Eastsun 2008-05-23 09:54
我将在(现在有点忙,只弄了一部分)博客中全部翻译这个访谈。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 如何评价软件质量.docx

    如何评价软件质量.docx

  • 软件测试基础理论

    罗列了一些软件测试必要的知识点

  • 牛客网论坛考研计算机组成原理笔记,GitHub已下载量已过百万

    主要讲授信息的数字化表示、存储程序与冯诺依曼体制;计算机的诞生和发展;计算机系统的层次结构和硬件系统组织;计算机的主要性能指标。第一节 计算机系统层次结构硬件+软件硬件部分最底层的微处理机,由中央处理机中算术和逻辑处理单元、寄存器以及操作控制用的逻辑电路组成。第二层微型计算机,是在微处理机的基础上,设计适当的总线结构以及存储器、外部设备接口等,构成一个硬件计算机。第三层是机器语言环境,程序员能够通过计算机提供的机器语言环境,编制机器语言程序,控制计算机完成预定的任务。软件部分。

  • 如何判断软件质量的的好坏,软件质量的特征

    主要从以下六个方面来判断,这是留个打的方面,还有一些子特性就不写了 1、功能性: 用户的需求是否满足,即客户要求的功能是否全部实现 2、易使用性: 对于一个刚上手的用户来讲,软件是否对用户具有友善性以及方便性,即软件的功能操作不需要用户花太多的时间去学习或理解怎么用 3、高效率性: 这里涉及到软件的性能相关,在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。效率反映了在完成...

  • 【测开冲冲冲】测开面试题八股文以及答案

    单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码,使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误,通常情况下是白盒的。 集成测试: 通过测试发现与模块接口有关的问题。目标是把通过了单元测试的模块拿来,构造一个在设计中所述的程序结构。 系统测试: 是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。 回归测试: 回归测试是指在发生

  • 软件质量随感

    一、软件质量以用户需求为开始,以用户满意为结束   软件需求是度量软件质量的基础。往往会有一些隐含的需求,客户没有明确提出来。如果人家只满足那些精确定义了的需求,而没有满足这些隐含的需求,软件质量也得不到保证。所以,我们需要将用户驱动型质量成为一种质量理念。 当然用户是否满意是衡量软件质量的另一要素。为了更好的服务用户,让用户们满意,我们应该不断强化质量管理力度。用户满意,久而久之就会是自己的产品...

  • McCall软件质量模型

    McCall软件质量模型 McCall等认为,特性是软件质量的反映,软件属性可用做评价准则,定量化地度量软件属性可知软件质量的优劣。

  • 软件质量评价标准

    软件质量评价标准 (本文转载自软件工程专家网www.21cmm.com)  我们把影响软件质量的因素分成三组,分别反映用户在使用软件产品时的三种不同倾向或观点。这三种倾向是:产品运行、产品修改和产品转移。信息系统作为一个产品,也可以参照这三种倾向来定义。 我们可以采取以下步骤实施全面质量控制: 1.实行工程化开发   “信息系统开发方

  • 软件测评师--第三小时 软件质量与评价

    1-质量的定义 实体特性的总和,满足明确或隐含要求的能力 2-测度和度量 测度是把数字和符号分配给现实世界实体的属性,根据明确定义规则来定义 测度是用于测量的一种量化的标度和方法 度量是测量的结果 3-软件质量模型 Macall质量模型: 操作特性、承受可改变能力、新环境适应能力 Boehm模型: 整体,系统交付后涉及不同类型的用户考虑 国际标准化组织1991年颁布了ISO 9126-1991标准《软件产品评价 质量特性及其使用指南》 我国,1996 GB/T 16260-1996 ..

  • 如何评价软件好不好,有哪些评判的指标

    下面是20070621写的一篇文章,题目为《如何评价软件好不好,有哪些评判的指标.doc》,我认为这是我个人在软件知识方面的一次总结。 软件好坏标准 本文描述了我对软件好坏标准的看法,仅仅是我个人的想法,不一定正确。 1. 概述 我认为软件的评判指标有下面这些: 功能 Simply and Clear 有文档对应 模块化 可阅读 容易修改 可重用 模

  • 软件的质量与评价(中级软件评测师)--(一)

    1、 软件的质量可以通过测量内部属性、外部属性、使用质量来评价,使用质量是从用户角度看待质量,主要有有效性、生产率、安全性和满意度。 GB/T 16260-2006 《软件工程产品质量》规定软件产品的使用质量特性:有效性、生产率、安全性、满意度 2、 软件的可靠性包括成熟型、容错性、易恢复性、可靠依从性 3、 正式技术的评审FTR是软件工程师组织的软件质量保证活动,评审软件产品,不涉及对生产者能力的评价;评审前要制定严格的评审计划,并严格遵守预计日程安排;对评审中出现的问题记录在案,不要过多的讨

  • 如何评估开发代码质量

    总体思路:如何评估开发代码质量-->千行代码Bug率-->StatSVN工具统计代码量情景小A所在的项目组,每个项目版本都bug数都在400-500之间,每次项目测试期间都要给验证Bug单独安排2-3天的时间进行Bug验证。Bug多的问题一直存在,终于在4.6.0版本发布后问题爆发了,项目上线后线上版本出现了十几个问题,后期针对问题又紧急发布了一个新版本修复问题。针对情景中小A遇到的问...

  • 如何评价程序的好坏(理论部分)

    我们经常看到一些人说别人的程序如何如何的好或者是如何如何的差,那么到底什么样的程序就算好呢,有没有什么标准呢,今天就说说如何去评价一个程序!!!1.  任何一个程序都有空间和时间方面的问题,如何处理好这两者之间的关系是关系程序好坏的一个重要方面.所谓程序性能( program performance),是指运行一个程序所需要的内存大小和时间。可以采用两种方法来确定一个程序的性能,一个是

  • 如何衡量软件设计质量

    首要的标准 满足软件的功能需求 满足软件功能需求的设计并不一定就是好的设计。 好的设计 可读性:软件的设计文档是否轻易被其他程序员理解。可读性差的设计会给大型软件的开发和维护过程带来严重的危害。 可复用性:软件系统的架构、类、组件等单元能否很容易被本项目的其它部分或者其它项目复用。 可扩展性:软件面对需求变化时,功能或性能扩展的难易程度。 可维护性:软件维护(主要是指软件错误的修改、遗漏功能的添

  • P13 - 软件设计质量评审 之 八个评审要求

    【软考-软件设计师-历年真题-2013年上半年上午基础知识】 (32)不属于软件设计质量评审。 (32)A.功能与模块之间的对应关系 B.软件规格说明是否符合用户的要求 C.软件是否具有可测试性 D.软件是否具有良好的可靠性 【答案】A 【解析】本题考查软件评审方面的基础知识。 八个方面:软件设计质量评审 通常,把“质量”理解为“用户满意程度”。为了使得用户满意,有两个必要条件: ①设计的规格说明书符合用户的要求,这称为设计质量; ②程序按照设计规格说明所规定的情况正确执行,这称为程序质量。

  • 软件构架的评估方法:ATAM

    上篇博客中有写到架构设计考虑到的质量属性,这篇文章主要介绍了软件架构的评估方法ATAM,架构评估是十分重要的环节,软件系统中存在问题的潜在的决策带来的问题会影响系统后期的开发和维护。     架构权衡分析方法:一种非定量方法,它可揭示构架满足特定质量目标的情况,及构架对质量目标的权衡;软件结构权衡分析方法(ATAM)是一种评估软件结构的技术,它不仅用于软件系统的结构的特性评估,还能在有质

  • Python-GraphLab简单应用

    GraphLab简单应用

Global site tag (gtag.js) - Google Analytics