作为软件程序员必读之书(2)

发表于:2013-05-07来源:Csdn作者:happydeer点击数: 标签:
作者:Tom DeMarco / Timothy Lister 译者:UML China翻译组 出版社:清华大学出版社 出版日期:2003年6月 Jeff Atwood的推荐:如果你曾经亲眼目睹一支全明星运动队在

  作者:Tom DeMarco / Timothy Lister

  译者:UML China翻译组

  出版社:清华大学出版社

  出版日期:2003年6月

  Jeff Atwood的推荐:如果你曾经亲眼目睹一支全明星运动队在一个糟糕教练的带领下表现平平,你一定会喜欢这本书。不管你有多少“编程高手”,如果他们相互之间没有沟通,或者互不认同,结果你还是会失败。这本书还指出,不管开发人员多么有天赋,如果他们持续不断地受到各种干扰(哪怕干扰很细微),没有人能在这种情况下有效地开展工作。说白了,开发人员在人际技能方面并不见长,但具有讽刺意味的是:项目成功与否常常取决于人际的问题。如果你渴望成为真正的“团队领导”(而不是徒有虚名),你必须好好地读一读这本书。

  尽管这本书里充斥着绝妙的、完全正确的观点,但它也暗示了:员工需要对工作场所有一定的控制权——这在大部分公司里完全是痴心妄想。不过,至少你会认识到,工作环境或你的团队有时候就是症结所在。更重要的是,你将学会如何去处理这些情况。

  英文版:《The Design of Everyday Things》

  中文版:《设计心理学》

  作者:Donald A.Norman

  译者:梅琼

  出版社:中信出版社

  出版日期:2010年3月

  Jeff Atwood的推荐:开发软件可能给人带来难以置信的挫折感,因为过程中有太多的陷阱。我们所做的事中很多都是带有预防性质的:在一件事情还没出错之前,先试想它将会出错。这能使人心智衰弱,而且最终可能以一些负面的方式让人“心想事成”。在向不懂技术的人解释的时候,我有时候会说:这就像制造一块有1000个零件组成的手表一样,在哪怕最轻微的震动之下,任何一个零件都可能随机出错。这真是一份“好差事”啊!

  毫无疑问,设计软件是很难的。但是,设计一扇门也是很难的。不管是热门的SQL引擎,还是卑微的鞋子,设计的细微差别会渗入你能触摸到的每一个角落。“魔鬼藏在细节之中。”读过这本书之后,你将对这句话有一个全新的体会。如果设计一扇门不像我们当初想的那样不费吹灰之力,也许我们也该停下来想一想了:为什么我们设计不出完美的软件呢?

  英文版:《About Face 3: The Essentials of Interaction Design》

  中文版:《About Face 3:交互设计精髓》

  作者:Alan Cooper / Robert Reimann / David Cronin

  译者:刘松涛

  出版社:电子工业出版社

  出版日期:2012年3月

  Jeff Atwood的推荐:Alan Cooper是“Visual Basic之父”,他还是“可用性”方面的教父。说实话,我是很多年前读的这本书。这本书大约在1995年第一次出版,我就是在那时候买的。也就是说,我买的是最“老”的第一版。而如今已是第三版了!(用新版淘汰旧版,这可以认为是一种糟糕的可用性吗?)

  在展现风格一致的图形用户界面方面,这本书和《GUI设计禁忌》一起被认为是具有教育性质的规则手册。但这本书满满地记录了更为通用的指导原则。在用来做范例的GUI问题中(很多都是古老的Windows 95界面),评判一下哪些已经基本被解决了(使用可视化的方式来展示对话框选择的效果)以及哪些还没有被解决(白痴的模态对话框让程序中止运行),这其实挺有趣的!

  与《GUI设计禁忌》不同的是,这本书是在互联网应用盛行之前写的,因此它没有讨论到Web应用以及Web对GUI设计的影响。但这不要紧,它仍然是一本非常有用的书。在最近的一个.NET项目中,我在错误消息的处理方面所遵循的模型就源自于这本书。

  英文版:《The Inmates Are Running the Asylum: Why High Tech Products Drive UsCrazy and How To Restore The Sanity》

  中文版:《交互设计之路——让高科技产品回归人性》

  作者:Alan Cooper

  译者:Chris Ding(丁全钢)

  出版社:电子工业出版社

  出版日期:2006年3月

  Jeff Atwood的推荐:Alan Cooper就是从这本书开始给大家推介了“人物角色”这个概念:与其把用户想象成抽象的、难以描述的、琢磨不透的一群人,还不如用“人物角色”来促使我们谈论一些具体的用户,他们有名字、有个性、有需求、也有目标。我们的用户想要一个打印预览的功能吗?谁知道呢?但如果作为客户经理的Gerry Manheim必须每周打印他的费用报告(这是他工作的一部分),你最好相信打印预览功能是必需的。其实没什么神奇的;像以前一样,归根结底你还是要知道你的用户是谁,以及他们真正想要的是什么——“人物角色”这个方法用来达到那个目的是再适合不过的了。

  书里面还有一个有趣的分析:开发者倾向于认为自己能够代表“普通”用户来做出“可用性”方面的决定,但实际上,他们根本就不够格。开发者充其量只能算是异想天开的极端用户——“逻辑人”与“智人”的对抗。除非你碰巧是在开发一个编译器,而开发者正是最终用户……

  这本书里还有一个容易被人忽视的“教训”:有时候,不管你的设计有多么优秀,你还是可能会失败。Alan Cooper在书中举了两个例子——一个是扫描仪软件,另一个是Web应用软件——Alan参与了咨询工作,事实也证明它们都是非常出色的软件,但因为某些原因它们没有取得商业上的成功,而这些原因跟“可用性”没有任何关系。有时候,不管你多么努力,伟大的产品还是会因为一些不受你控制的原因而失败。记住这些案例吧,不要被书里有些地方自鸣得意的论调冲昏了头脑!(顺便说一下,书中提到的“放在键盘后面的”USB扫描仪,我恰好也买过一个。我对它附带的扫描软件印象非常好。后来,我把这个扫描仪送给了我父亲。有一次我和父亲通电话的时候,在没有任何暗示的情况下,他居然向我说起了他非常非常喜欢那个扫描软件。这还是发生在这本书出版以前的事呢!)

原文转自:http://blog.csdn.net/happydeer/article/details/8795687