`
hzbook
  • 浏览: 261376 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

阅读者(十一):简单之美

阅读更多

本书的内容有些另类,绝不似书名所呈现的中规中矩,但确实体现了一种美,是一种简单到极致的优雅,似乎又繁复如星空般的深邃,包容如峭立千仞之高的山壁。这是一本可以称之为轻松加愉快的思想随笔,又是一篇如杜拉拉升职记般的职场小说,它还贯穿了整个软件开发过程,揭露了从方法论、需求、架构设计、编码实现,到测试与维护以及团队管理的诸多要诀。这正是本书的另类之处。

我在阅读本书时,情不自禁地被放在书中每章篇首的实践场景所吸引,甚至忽略了本书的重要内容,直接根据提示转到下一个章节的实践场景,一气呵成,直到将这些实践场景阅读完毕。作者挥洒自如的文笔,入木三分的人物刻画,以及细腻含蓄的情感描写,将我彻底吸引住了。在大结局中,孔如之与儿子在阳光中巴黎圣母院前的对话,让人意犹未尽,似乎满怀希望,却又历尽沧桑,真是让我产生“情何以堪”的感慨。

这是本书感性的一面了。只是看完这9篇由实践场景片段组成的小说,就已经值回票价了。而从技术书籍的角度来看,本书的意义显然并不在于此,作者完整地勾勒出软件开发的全貌,诸多感悟与体会都可以成为软件开发人员的重要借鉴。作为本书理性的一面,这些内容需要反复阅读和分析琢磨,才能引起你的共鸣,许多模糊在心头的概念,在作者简明扼要的叙述下,或许就会产生“拨开云层见月明”的感悟。

以本书第4章为例。作者给出了一个简单的实例描述了框架构建的过程。首先从背景描述出发,展现了对保险业务中对保单进行处理的需求功能。这段背景描述将复杂的保险需求阐述得非常清楚而富有条理,体现了作者撰写文档的高超能力。

接下来是作者对这一背景描述的抽象。这段抽象有理有据,较好地体现了从需求捕获到分析的过程演变,利用抽象搭建了基本的领域模型。紧接着是对约束的思考,这是架构师必须完成的工作。根据对需求的抽象和关于约束的思考,就能够做出合理的架构决策。作者在本书中反复强调的“使用自然语言和讲故事的方式”,通过实例得到了具体的展现。事实上,在Joel on software一书中,Joel Spolsky也提出了同样的观点,认为通过讲故事的方式描述用例场景,可以更好地促进理解与交流。本书作者扩大了这种方式的应用范围,引入到架构设计过程中。对这一做法,我深表赞同。事实上,我在架构过程中,也常常采用类似手法,通过在文档撰写设计的故事场景,帮助我梳理设计思路,有时候,甚至在文档中自问自答,在这样的编写过程中我慢慢找到了解决方案。

本书对领域模型的讨论也有着个人独到的见解。例如他对静态模型和动态模型的分类,又例如他提出了使用贫血模型的好处。在Martin Fowler提出贫血模型之后,业界曾经掀起过对贫血模型与充血模型的争论。然而,争论到了最后,也没有一个确切的结果。从经典的OO原则来看,它要求将对象的数据和行为组织在一起,这正是批判贫血对象的主要论据。我比较倾向于这个观点,认为对象没有行为,就是“死”的,缺乏自治的能力。但在实际开发过程中,我也常常体会到贫血模型的好处,尤其是在模型重用与解耦方面,贫血模型都有其显著的优势。本书作者认为,贫血模型的“第一个好处是,有利于信息交换。第二个好处是,清晰了对象的职责。第三个好处是,实体对象(贫血对象)的实现更加灵活。第四个好处是,可以确保实体对象(贫血对象)只能在内存中用于计算。”这些好处都说到了点子上。虽然,我对于贫血对象的使用仍然抱有谨慎态度,但本书对此的阐述依旧给我提供了不错的参考。

在项目管理方面,书中强调了“负责制度”的实施。这首先关系到责任定位的问题。项目延迟或失败,究竟是项目管理的问题,还是架构设计的问题?是编码实现的问题,还是测试维护的问题?作者认为,负责制度的缺失可能会影响项目的质量。书中提到:“在软件开发过程中,人是最重要的因素,而责任、权利和利益是保证这个因素发挥作用的关键。”“建立负责制度的目的,不是为了惩罚某人,也不是为了永久取消某人的职业发展权利,它只是通过责任人利益损失的形式,来表明这样一个事实:没有金刚钻,别揽瓷器活。”事实上,负责制度的关键不在于制度的确立,而在于执行。如果没有创建公平、公开、公正的执行环境,这种制度只会给软件开发带来负面影响。这也是作者仅仅提出问题,却没有给出好的答案原因所在。相对而言,我个人更倾向于Scrum“回顾会议”,在基于迭代与渐进式开发的基础上,这种方式更能够有效解决项目开发中存在的问题。

倘若是新手阅读本书,由于缺乏足够的工作阅历与开发经验,很难理解作者写作的意图。但我们绝对不能因为这种认识上的障碍,而将本书拒之千里之外。事实上,越早阅读本书,越能够开拓读者的眼界,提前感受业界的真实与谎言,反而能够帮助新手更快地确立自己的职业生涯规划。对于混迹行业多年的老鸟而言,阅读本书,一定能找到那些似曾相识的画面。作者对技术的深入探讨,也一定能给予我们启发,即使观点不同,也可以求同存异。所谓“嘤其鸣矣,求其友声”,这是我在阅读本书时收获的如遇旧友般的快乐!


图书信息

作者: 倪健
出版社:机械工业出版社
出版日期:2010 年4月

内容简介

本书不是一本关于方法论的理论性书籍(尽管已经尝试在大量的思考上进行一些理论归纳),也不是一本关于具体技术的操作手册。本书为读者呈现的是作者在软件 开发实践中的思考和体验,目的在于探究实践中的问题的根源,并给出思想上的解决之道。

本书以软件开发的基本顺序为主线,以简单、想象和文化的开发思想为线索,以为软件开发实践提供指导价值为目标。本书力图做到传递经过组织的、可操作的软件开发经验,使软件开发领域的新手在知识(软件开发思想)积累过程中少走弯路,也使软件开发领域的老手可以对照自己的经验把可能的困惑降到最低。有一些有趣例子为那些有价值的思考提供支持。

本书中,作者尝试对简单、想象和文化做一些形而上的思考。这些思考会比较抽象,但却是很多话题的基础。

作者介绍

倪健,资深软件工程师、项目经理和架构师,拥有12年IT行业从业经验。从事过电气设计与装配、单片机开发、软件系统设计与开发、项目管理、软件架构、软件培训以及性能调优相关的工作。精通汇编语言、VB、VC、Java和C#,自主设计过一些框架。12年的工作经验帮助他建立了一个完整的认识世界的思想 体系,这个体系的核心内容就是简单、想象和文化。他擅长想象,善于归纳,内心坚持,追求有意义的生活。

<script type="text/javascript"></script>

分享到:
评论

相关推荐

    《简单之美——软件开发实践者的思考》

    《简单之美——软件开发实践者的思考》这本书深入探讨了软件开发中的一个重要原则——追求简单。在信息技术日新月异的今天,简洁的设计理念已经成为高效、可持续发展的关键。本书旨在引导读者理解并应用这一原则,...

    简单之美——软件开发实践者的思考

    《简单之美——软件开发实践者的思考》一书的PDF版本,允许读者在电子设备上随时查阅,大大提高了阅读的便利性。无论是在通勤途中,还是在工作间隙,读者都可以方便地获取书中的知识精华。书中大量的实例分析,使...

    win8应用推荐:享受阅读甜美.docx

    iReader读书以其丰富的图书资源和优秀的阅读体验满足了广大读者的需求,起点读书则凭借与起点中文网的深度整合和个性化设置吸引了小说爱好者,而阅读器作为系统自带工具,以基础但实用的功能成为处理PDF和XPS文件的...

    代码之美(中文完整版).pdf

    第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. 结论 第7章 美丽测试 7.1 讨厌的二分查找 7.2 JUnit简介 7.3将...

    贪吃蛇_贪吃蛇_

    通过编写贪吃蛇游戏,开发者不仅可以锻炼基础编程技能,还能学习到游戏设计、用户交互和优化等方面的知识,是初学者入门编程和游戏开发的一个理想项目。在提供的"贪吃蛇.c"源代码中,我们可以看到C语言实现这个游戏...

    一款非常漂亮,简单大方的欧美风格的静态网站

    4. **易读性**:清晰的字体、合适的字号和行间距,使得文字内容易于阅读。 5. **用户体验**:良好的交互设计,如直观的导航、快速的加载速度和明确的呼叫操作,提升用户满意度。 【压缩包子文件的文件名称列表】:...

    iOS开发之美光盘源代码

    "iOS开发之美光盘源代码"很显然包含了关于iOS应用开发,特别是与TableView相关的实例源码。虽然没有提供具体的视频教程,但源代码本身就是一个很好的学习资源,可以让我们深入理解如何在实际项目中运用UITableView。...

    元照英美法词典安装软件

    此外,安装《元照英美法词典》的过程也是非常简单友好的。用户只需下载相应的压缩文件,解压并按照提示进行安装即可。安装完成后,用户可以在灵格斯词霸中加载《元照英美法词典》插件,使词典成为用户桌面的一个功能...

    精美的简易的java图书管理系统源码

    【标题】"精美的简易的Java图书管理系统源码"提供了初学者接触和理解Java编程语言在实际项目开发中的应用。这个系统设计简洁,易于理解,是学习Java基础和实践的好例子。 【描述】中提到,该系统有以下几个关键点:...

    代码之美Beautiful Code

    《代码之美》是一本深入探讨高质量编程实践的书籍,它集结了众多软件开发专家的经验与智慧,旨在引导读者理解并创造出优雅、高效且易于维护的代码。这本书的核心理念是,优秀的代码不仅在于其功能实现,更在于其内在...

    Golang之美ppt

    ### Golang之美——深入探索Go语言的独特魅力 #### Golang的哲学 1. **背景介绍**:Go语言是由Google在2009年推出的第二代开源编程语言,它旨在为多处理器系统的应用程序提供高效的编程解决方案。Go语言编译出的...

    电子杂志精美模版

    在数字化时代的浪潮中,电子杂志凭借其独特的魅力成为了信息传播和阅读体验的新宠。它不仅仅是一种将文字、图像、音视频等多种媒体形式集于一体的数字出版物,更是一种承载创意和信息的时尚载体。然而,想要让自己的...

    代码之美英文版

    ### 代码之美英文版知识点概览 #### 一、书籍简介 《代码之美》是一本在计算机领域享有盛誉的经典教材。它不仅为初学者提供了深入浅出的基础知识讲解,也为经验丰富的程序员提供了宝贵的进阶指导。本书通过一系列...

    29个Zzone 精美PPT模板

    5. **字体选择**:字体是PPT中不可或缺的一部分,Zzone的模板可能使用了易于阅读且有设计感的字体,使得文本信息既美观又清晰。 6. **图片质量**:高分辨率的背景图片和插图可以提升整体的视觉体验,这些模板可能已...

    车乐美操作编程简易版4795

    在此背景下,车乐美操作编程简易版4795便应运而生,它旨在为用户提供一个简洁、明了的编程与操作指南,特别是在JANOME桌上型机器人JR2000N系列的操作与维护上。 JR2000N系列作为一款集节能与紧凑设计于一身的机器人...

Global site tag (gtag.js) - Google Analytics