梦断代码阅读笔记——3

Posted on 2020-10-25 00:17  ZG龙灬珂  阅读(48)  评论(0编辑  收藏  举报

 

《梦断代码》中对软件工程所面临的种种困难与艰难的描述,很符合当下编程工作,自己对于软件编程也有切身感受。正如一队人马并肩扛起代码大石,虽历经磨难仍欲将其推上山顶的故事。正是这种磨砺与艰难的爬山过坎,成就了各种各样的运行的软件,构成了一个五彩缤纷的虚拟世界。

自身对于何为软件,何为代码仅有一些肤浅的认识,半学期下来,编程能力也有了较大的提高。但是其中的痛苦和艰辛,也很值得自己去慢慢的回味。

书中描述一群人们怀抱着改变世界的理想上路了,却在追寻时发现,那些近在眼前的理想之峰,变得那么的遥不可及;每当翻过一座横亘在面前的山峰时,总以为已经来到理想之峰的脚下,却发现这又是另一座需要攀越克服的阻隔之峰。

    在我编写计算函数以及嵌入游戏主程序时,总感觉思路简单,逻辑可行,操作方便。但是一到具体编程,调试程序时便抓耳挠腮,无从下手。特别是遇到bug的时候,总感觉自己是对的,跳不出错误的怪圈。软件开发过程有时就是这样的一种体验,目标看是唾手可得,却又总是在你伸手摘取时,发现还有一段距离要走,问题随着开发的深入而不断涌现;这就像是坐在大象背上的训象师,用吊在大象鼻子前的香蕉,给大象耍的把戏。

     是什么原因,导致软件开发有时会进入这样一个令人惋叹的黑洞?

     书的作者没有,也不可能给我们一个答案,但通过作者忠实记录于书的、就发生在当下不久的、这一真实案例,以及对软件开发历史和方法的部分介绍,本书应当能带给我们很多有益的启示和思考。

    为什么软件如此难做?这是我本人,我想也是很多人都在苦苦思索的一个问题,虽然无人能有完全确定的答案,但通过书中的记述,和个人思考,还是可以获得一些启示,其本质还是主要在于沟通:

     一是计算机严格的逻辑性和精确性。同人类不严密的逻辑,模糊多变的思维模式之间的矛盾,造成的人与机器之间沟通的障碍。

     二是项目目标不明确,标靶变来变去,因此有时决定说什么,比怎么说更困难。

     三是项目目标不切实际,从一开始就想做一个适合所有人的,能做所有事的系统,造成就如要做永动机一样的结局。

     我想人们大多都知道古老圣经中巴别塔的寓言,软件工程难于成功的原因,也许就蕴藏在这寓言启示之中,本质上在于沟通的问题。软件使用者与软件的沟通,软件需求者与开发者的沟通,程序员与程序员的沟通,程序员与机器的沟通。

     所有这些层层累叠起来,构筑了一道道通往成功彼岸的屏障。

     也许有一天所有这些沟通的障碍都能被消除,人们能轻易的相互理解,软件工程的巴别塔真的就能轻易的建造起来了。

 

 

 

“原因很多。建造之前,先有蓝图。我们一直就没蓝图,所以会碰上没有预料到的问题。除非你确定自己能做出某个东西来,否则很难说会话多长时间。”

 “这跟寻宝差不多。你得找个入手点。在开工前,要找到线索,而且你不知道花多长时间才能找到。”

  在实际开发中,编程只占项目开发时间的1/6,有一半时间用于测试和修正缺陷。

  这是我在梦断代码中找到的几个句子,我认为在平时写代码时,能够在开始之前对自己要进行的工作有一个大体的认识,大致了解完成这项工作需要的技术,才能够在碰到问题时不至于无从下手。

  另外,在写代码时,测试也占了很大一部分比重,正如文中所说,有一半时间用于测试和修正缺陷,测试代码,逐步测试代码正确性,正是我们现在所缺少的。今后写代码,要按照老师所说,做出来一块,就测试一部分,免得最后完成时后出现问题,无法修改。