写点什么

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

  • 2011-04-25
  • 本文字数:2558 字

    阅读完需:约 8 分钟

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

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

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

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

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

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

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

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


图书信息

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

内容简介

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

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

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

作者介绍

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

2011-04-25 21:174525
用户头像

发布了 109 篇内容, 共 42.5 次阅读, 收获喜欢 14 次。

关注

评论

发布
暂无评论
发现更多内容

数字化转型与架构-架构设计篇|建模之数据模型

数字随行

数字化转型

百度垂类离线计算系统发展历程

百度Geek说

数据处理 计算引擎 架构优化 企业号 8 月 PK 榜 搜索架构

Apache RocketMQ 5.0 消息进阶:如何支撑复杂的业务消息场景?

阿里巴巴云原生

Apache 阿里云 RocketMQ 云原生

如何实现AI的矢量数据库

3D建模设计

人工智能 机器学习 AI

对线面试官 - MQ之如何保证消息的顺序性及消息积压问题

派大星

MQ Java 面试题

最强远程管理 Royal TSX for Mac激活+补丁教程

胖墩儿不胖y

远程办公 远程软件 Mac软件 远程工具

可观测系统实践:基于海量数据的采集优化方案

博文视点Broadview

01.崩溃捕获设计实践方案

杨充

美团 Flink 资源调度优化实践

Apache Flink

大数据 flink 实时计算

深入解析G1垃圾回收器

Java随想录

Java JVM

深入解析CMS垃圾回收器

Java随想录

Java JVM

生成式AI浪潮下,那些不可忽视的安全问题

网安云

AI安全 系统安全 开源治理 软件系统安全

活动回顾丨云原生技术实践营长沙站(含 PPT)

阿里巴巴云原生

阿里云 云原生

802.11be-IPQ9574+IPQ9554 802.11ax-IPQ8074+IPQ8072 Support 8 data streams in 4 frequency bands, with a peak rate of 16Gbps

wifi6-yiyi

802.11AX 802.11be

19 个最佳Three.JS 示例

3D建模设计

ThreeJS

Programming abstractions in C阅读笔记:p132-p137

codists

深入解析ZGC垃圾回收器

Java随想录

Java JVM

​ iOS加固保护新思路

iOS 架构RxSwift 重签名

数智化转型背景下的火山引擎大数据技术揭秘

字节跳动数据平台

数据库 大数据 数字化建设 企业号 8 月 PK 榜

R语言之基础绘图

timerring

R 语言

活动回顾丨阿里云 Serverless 技术实践营 Serverless+AI 专场

阿里巴巴云原生

阿里云 Serverless AI 云原生

WebGpu VS WebGL

3D建模设计

WebGL webgpu

SRE方法论之减少琐事

不思jo

SRE 运维‘ #运维

响应式编程——初识 Flux 和 Mono

java易二三

Java 程序员 计算机 程序

快速测试Mybatis复杂sql,无需启动spring

java易二三

Java 编程 程序员 计算机 科技

5 种 可帮助开发人员提高工作效率的AI 工具

3D建模设计

人工智能

阅读者(十一):简单之美_架构_张逸_InfoQ精选文章