《梦断代码》

《梦断代码》

读完韩磊翻译的《梦断代码》样书,不免让人掩卷长叹!一群人们怀抱着改变世界的理想上路了,却在追寻时发现,那些近在眼前的理想之峰,变得那么的遥不可及;每当翻过一座横亘在面前的山峰时,总以为已经来到理想之峰的脚下,却发现这又是另一座需要攀越克服的阻隔之峰。
      软件开发过程有时就是这样的一种体验,目标看是唾手可得,却又总是在你伸手摘取时,发现还有一段距离要走,问题随着开发的深入而不断涌现;这就像是坐在大象背上的训象师,用吊在大象鼻子前的香蕉,给大象耍的把戏。
      是什么原因,导致软件开发有时会进入这样一个令人惋叹的黑洞?
      书的作者没有,也不可能给我们一个答案,但通过作者忠实记录于书的、就发生在当下不久的、这一真实案例,以及对软件开发历史和方法的部分介绍,本书应当能带给我们很多有益的启示和思考。
      我一直认为,读书最大的功用之一,就是能激发我们的思考,是打开思维源泉的阀门;这本书很好的起到了这一作用,它让我们去思考软件开发的过程、方法、管理…,为我们思考这些提供了真实生动的案例,也对现实的工作有些指导和警示作用。在当今社会,软件已经成为人类生活中不可或缺的一部分,“人类文明运行于软件之上”的说法虽然有点自卖自夸,但它很是明确的反应了软件在人类社会中的地位。它存在于厨具里、汽车里、玩具里、建筑中,商业、科研、医疗、基础公共设施哪里都有它的影子,人类生存之所需都系于计算机代码这根易断的细线上。软件事业发展至今,也不乏面临过、面临着许多困难。而从事与软件事业的程序员们,最优秀的品质莫过于面临困境还不忘幽上一默的乐观态度,也正是这样的乐观态度,才使得软件能够不断地被修复、被更新,以至于发展到今天这个软件纵横的社会。

 整本书以一个发生在当下的真实的故事写成,不仅仅是写给程序员的,也是写给软件产品经理和其他与软件开发相关的或对此感兴趣的人的。每一个经历过软件开发过程的人,对书中的生动描述都会感同身受!

本书是讲一事,也是讲百千事;是写一软件,也是写百千软件;是写一群人,也是写百千万人。任何一个在软件领域稍有经验的技术人员看完本书,必掩卷长叹:做软件难。软件乃是人类自以为最有把握,实则最难掌控的技术。

这件事之后,我也是充分认识到了架构的重要性。如果在动手开发之前没有合理的设计方案,没有列出可能的错误,没有给定开发的方向以及注意事项,最终的结果就是白费力气,要知道,软件不等同于程序。一个简单的程序可以不用明文的设计,一股脑的敲代码或许就能实现,但是软件不一样,如果一开始不确定软件的功能模块、体系架构,到后期就会出现无数种不确定性。在后来的web开发中,我充分吸取了以前的教训,无论多么简单的web项目,都首先确定其架构,列出功能项和子功能分布,数据库的数据表结构设计,以及开发过程中需要注意的事项,这些开发前的准备往往会大大减少编码时间,让编码时的思路更加清晰。

在《梦断代码》中,Chandler的开发过程中就有我碰到的问题的放大版,虽然Chandler开发过程中制定了很多的开发计划,但是每一个决定中都包含了不确定性。构建软件最难的部分是决定说什么,而不是怎么说。如果没有一个好的决策,就像在没有凝固的地面上建楼,怎么能站得稳呢?

书中提到一句话,“唯有万丈雄心能助你艰难前行”,这其实是对软件开发过程中某种现状的讽刺,即仅仅抱着自己的工作能改变人们生活的期望投入开发,没有合理的、完整的、优秀的设计与决策,仅靠“万丈雄心”,是很难做出成果的。

综上,清晰的思路、合理的设计是开发软件必须的第一步。

原文地址:https://www.cnblogs.com/utube/p/14955079.html