梦断代码读后感(三)
《软件工程》教员课上推荐梦断代码作为课后读物,在大致浏览了一遍读物之后,结合半个学期以来软件课程的亲身实践,感触颇深。
《梦断代码》中对软件工程所面临的种种困难与艰难的描述,很符合当下编程工作,自己对于软件编程也有切身感受。正如一队人马并肩扛起代码大石,虽历经磨难仍欲将其推上山顶的故事。正是这种磨砺与艰难的爬山过坎,成就了各种各样的运行的软件,构成了一个五彩缤纷的虚拟世界。
自身对于何为软件,何为代码仅有一些肤浅的认识,半学期下来,编程能力也有了较大的提高。但是其中的痛苦和艰辛,也很值得自己去慢慢的回味。
书中描述一群人们怀抱着改变世界的理想上路了,却在追寻时发现,那些近在眼前的理想之峰,变得那么的遥不可及;每当翻过一座横亘在面前的山峰时,总以为已经来到理想之峰的脚下,却发现这又是另一座需要攀越克服的阻隔之峰。
在我编写计算函数以及嵌入游戏主程序时,总感觉思路简单,逻辑可行,操作方便。但是一到具体编程,调试程序时便抓耳挠腮,无从下手。特别是遇到bug的时候,总感觉自己是对的,跳不出错误的怪圈。软件开发过程有时就是这样的一种体验,目标看是唾手可得,却又总是在你伸手摘取时,发现还有一段距离要走,问题随着开发的深入而不断涌现;这就像是坐在大象背上的训象师,用吊在大象鼻子前的香蕉,给大象耍的把戏。
是什么原因,导致软件开发有时会进入这样一个令人惋叹的黑洞?
书的作者没有,也不可能给我们一个答案,但通过作者忠实记录于书的、就发生在当下不久的、这一真实案例,以及对软件开发历史和方法的部分介绍,本书应当能带给我们很多有益的启示和思考。
为什么软件如此难做?这是我本人,我想也是很多人都在苦苦思索的一个问题,虽然无人能有完全确定的答案,但通过书中的记述,和个人思考,还是可以获得一些启示,其本质还是主要在于沟通:
一是计算机严格的逻辑性和精确性。同人类不严密的逻辑,模糊多变的思维模式之间的矛盾,造成的人与机器之间沟通的障碍。
二是项目目标不明确,标靶变来变去,因此有时决定说什么,比怎么说更困难。
三是项目目标不切实际,从一开始就想做一个适合所有人的,能做所有事的系统,造成就如要做永动机一样的结局。
我想人们大多都知道古老圣经中巴别塔的寓言,软件工程难于成功的原因,也许就蕴藏在这寓言启示之中,本质上在于沟通的问题。软件使用者与软件的沟通,软件需求者与开发者的沟通,程序员与程序员的沟通,程序员与机器的沟通。
所有这些层层累叠起来,构筑了一道道通往成功彼岸的屏障。
也许有一天所有这些沟通的障碍都能被消除,人们能轻易的相互理解,软件工程的巴别塔真的就能轻易的建造起来了。