梦断代码阅读笔记02

   《梦断代码》书中所写:编程已不再处于萌芽期。我们的世界依赖于无穷复杂的软件。在长达半个世纪的研究和实践之后,为什么还是很难做到按时限,按预算做出计算机软件?为什么还是很难让软件可靠而安全?为什么还是很难把软件做得易于学习使用,且具备按需修改的灵活性?这只跟时间和经验有关吗?是否有出现某种根本性突破的可能?在软件得到本质特性(抽象性,复杂性及延展性)上,是否存在某种总能击倒我们的无常之物,将开发者咒入充满不可挽回的延误和根深蒂固的缺陷的世界?

   第六章关于设计方案这方面,作者想把一个重要的文件夹移到更方便的位置,一不小心将文件夹移到了屏幕外面,导致文件夹被系统默认删除了,出现这样的错误怪谁呢,软件设计者,是他们没有考虑的这种情况?还是软件使用者操作不当所造成的?这里留给读者自己考虑,我也不是很清楚。有人可能会说,肯定是程序员的错啊,是他们没有考虑全面,这里我想说,有些用户疯狂的举动,又有何人能做到全部想到。当然程序员也有相当一部分责任,通常情况下,由程序员们负责猜测用户使用程序的各种情况,但他们却不善于站在用户的立场考虑问题。除此之外,程序员们还要负责考虑各种各样极端情况和不太可能出现的情形。他们太执着于警惕会出现的问题的情形,在边缘案例上绞尽脑汁,以至于偏离了中心点。为了解决这样的问题,设计方案成为了重中之重,设计方案的好坏直接影响到软件的最后的使用情况。

   个人感受:我不觉得自己比前人更聪明去解决问题,或者是有比前人更多的时间去解决这个问题,好吧,这个问题就在这,我选择不去关心这个问题,这和我这样的一个刚刚学习编码的菜鸟有什么重大关系。人类的文明已经有几千年,这是应该庆幸一下,可是这跟地球已经有几十亿年相比,我觉得出现一大堆解决不了的问题实在太应该了,而且这样才算正常,如果有人说他无所不知,无所不能,那么他是疯子比他是天才的概率更大,或许我还会忽略概率,直接认定他是疯子。

   从历史上一些重大的发现来判断,居然很多是来自于直觉,无可断定但却常伴于人身上的,直觉。我们不知道它有没有,好吧,那就先当它是有,从相信它有的基础上,做出假设,进一步在证明和发现,我想数学上很多问题都是这样的逻辑来思考的,所以我那种想一步一个脚印,脚踏实地的学习方法才那么行不通,毕竟老师能教你怎么做数学题,却不能看到你脑子里在想什么,正因如此,软件开发者们用着五花八门的“武器“去和问题对抗。我们对软件的需要,远甚于对它的仇恨。所以我们永远不能关上电脑一走了之,留下麻烦一堆。如果不能解决全部的问题,就解决最主要的问题。如果不能解决全部的问题,就让问题更少!

原文地址:https://www.cnblogs.com/marr/p/14899933.html