梦断代码阅读笔记01

   延续着上一本书《构建之法》良好的阅读习惯,我开始了《梦断代码》的阅读。这本书一共有12章节的内容,接下来将会分为三篇阅读笔记来完成这本书的阅读,那么在这一篇阅读笔记中将会完成前四个章节的阅读。

   一、阅读内容

   怀着很好奇的心情,我开始了第零章的阅读,这一章的标题是软件时间,其实大致浏览了一下目录发现这本书的标题其实很灵活,有的标题让人感觉摸不着头脑,但是我相信当我读完这本书的时候我就会豁然开朗了。言归正传,在这一章中主要是编者的自述,读起来更想是在读一篇小说,在编者的自述中可以看出他的编程经历,从他的身上其实是可以看到自己的影子的,因为将来我也会是一名程序员,那种心境是我完全可以感受和体会到的,其中有一句话我觉得说得很有道理,作者之所以将本章标题命名为第零章,是想指出计算机程序员和其他人的一处小小不同:程序员从零开始计数,而不是从一开始。作者这一个小小的搞笑其实也使我们产生了共鸣。在作者的叙述中我也了解到了软件的发展历程以及过程中好多伟大的研究者为其发展而做的贡献,让我深刻的体会到软件工程的摩天大楼不是一下子就能够盖好的,是需要我们付出数百万倍的努力的,这一章使我对软件工程的发展陷入了深深的思索。。。

   接下来开始了第二章的阅读,同样,标题让人捉摸不透--死定了,怀着疑问的心情我继续读了下去,这一章同样是运用叙事的方式,一开头讲述了程序员们因为完不成任务而陷入深深的苦恼中,他们其中的人认为原因是一直没有蓝图,才会碰到难以预料的问题,而另一个人认为不确定因素太多,所需时间取决于他人所花的时间。然而他们记录在Bugzilla中的第44个缺陷过了好长时间仍然没能修复,一开始他们认为是一个小问题,没想到居然花掉了他们大把的时间,最终意见取得一致:黑洞式的缺陷,即无法确定修正所需时长的缺陷,,在Bugzilla中应该用特别的警示词标记出来,后来又提到了软件项目难以按进度安排实现,这种情况极为常见,而且为众人所宽容。在软件开发的世界里,进度延误普遍到人们特意生造出一个委婉词来描述它:slippage,也就是失速的意思。作者用了一个很形象的比喻来解释这种状况:就像是在软件开发项目中暗藏有一条线缆,线缆系紧时,进展迅速,线缆断开时,工作停止。然而历史上任何软件均曾有其隐藏的线缆,对于改进软件开发所做出的努力,都是为了让线缆保持系紧。弗里德里克.布鲁克斯在《人月神话》中曾经说过,对软件时间所导致问题的最早也是最好的诊断。他曾经也提到,软件开发者通常都是乐天派,他们认为每个缺陷都可以被迅速修正,且修正旧缺陷必能减少新缺陷的数量,这种盲目乐观,加上程序员想要取悦主顾,往往让进度在一开始就偏离正轨。在预计及安排项目进度上的每一分努力,都是危险且具欺骗性的神话,所谓人月,是一种科学管理概念,它假定生产力可被拆分为不连续,无差异,可替换的单元。并且布鲁克观察到,只有在任务能分派给许多互相之间无需沟通的工作者时,人和月才是可互换品。了解到了布鲁克斯法则暗示最理想的开发组规模是一个人--无须停下工作与同事沟通的单个开发者。学术计算领域一直提倡开元,1985年,麻省理工怪才斯托曼对于商业软件产业封闭代码积习的憎恨,创办了自由软件基金会,发布了一种特殊的许可,即将全部代码,复用组合到新产品中,,这种被称为GPL的许可显然意在限制将自由程序私有化的行为,但是批判者将他看做是可怕的传染病毒。直到后来归纳出了开放源代码软件开发模式。开元不仅给出了一种生产和分发软件的替代性经济基础方案,它还能彻底改变软件开发的具体过程。在瑞蒙德的《大教堂与集市》中了解到了大教堂模式。接下来了解到了莲花开发公司的创始人卡普尔,了解了他创建软件公司的辛苦历程以及OSAF开发者的辛苦,以及Chander项目的运行历程。

   很快便读到了第二章,这一章的标题是Agenda之魂,这一章的情节延续了第一章的内容,开头的主题依然是Chandler项目,它正是为改变世界之梦所驱动。接着提到了Exchange,由此又引出了P2P技术,卡普尔为莲花公司命名,并发布了Agenda这个项目,这是个简单的列表管理软件,但是有几个突出特性让它跻身于软件传奇之列:管理日常生活,组织学术研究,音乐收藏,工作项目。它还引入了一种管理数据的新手段--介于传统计算机数据库的严格结构和字处理软件的自由格式之间。Agenda突破了计算机的严格逻辑与人类的语焉不详之间的阻隔,在这一片黄土上拓出一片新天地。在当今社会,程序或网站总是要你按照它设定的方式而不是你自己的方式填空--社会保险号码里面不得包括连字符,信用卡号中不得包括空格,而Agenda早有独门秘技让用户随意输入。然而,它却没能达到杀手级应用的境界。部分原因是已经成为巨兽级企业的莲花公司急于在商业市场大获全胜。后来Agenda被公司遗弃了。卡普尔在投身于开创开放网络的工作时依然放不下Agenda项目,他珍视项目中动态适应性的程序精髓,他决定,无论新软件外观如何,都必须具备Agenda之魂。接着又介绍了链接以及鼠标的出现以及提靴带的含义:让改进的过程得到改进。恩格巴特认为,就达到智慧增进程序的目标而言,提靴带更像是一种抽象,一种奥秘,而不仅是一个工程上的难题。还了解到了三阶现象,它并不改进过程,它改进的,是改进过程的速率。05年FBI开展了Trilogy的计算机现代化项目来搭建更为安全和现代化的数字通信网络,然而遭遇困局,这一章让我看到一个软件的诞生的多灾多难,以及发展的曲折。

    很快来到了第三章,这一章的标题是原型与Python,开头用整理CD的例子引出了在每个编程项目的早期阶段,当团队选择语言和技术,准备切入和开发时,就会受到自身工具和材料的限制。卡普尔在吸取Agenda的经验,研究出了可以用三段式模式描述任何事物,看起来就像是英语简单句中主语-动词-宾语的结构,然而语义网已经描绘出了轮廓,它基于一种名为RDF(资源描绘框架)的技术,它用三元组来储存所有信息。后来了解到了Vista:一个面向用户的程序,它注重向用户展示数据,注重输入,组织和修改数据的方式。接着了解到了OSAF的发展历程,芯片的兴起,汇编语言的诞生,众多编程语言的诞生例如:Lisp,Cobol,Algol,Basic等等,接着了解到了第一个被广泛使用的是Fortran,它将编写汇编语言的费力过程概括为简短的命令,并取得了成功。它大获成功的原因之一是:它挑战了专家们关于这类高级语言运行起来一定比手工编写的机器代码慢的预言。在Fortran发明的时代,计算机时间相当昂贵:机器稀少,体积庞大,贵得离谱。众多编程语言构成的巴别塔确已矗立,这些语言既坚固又脆弱。后来赫兹菲尔德使用Python语言来编写Vista原型。Python是一种解释型语言,编译型语言通过编译器先将程序员的源代码翻译成机器可读的二进制代码后再运行,而解释型语言则是在运行时做类似的工作--解释器逐行翻译源代码,再给处理器运行。接着了解到了Python语言的发展历程,以及和Perl的激烈竞争,不过最终采用Python,Python开源而且跨平台,即同一个Python程序可以在Windows,Macintosh和Linux系统上运行。

  二、 个人感受

   以前,我并没有觉得做一个软件项目会遇到这些麻烦,道路会如此曲折,读了这几章的内容以后,通过说中讲述的,那些研究者为了软件工程的发展所做的努力使我很是敬佩,也许是我们之前接触的软件和代码都太过简单,并没有意识到这些问题,也没有那么缜密的思维,之前也没有这样详细的按时间轴了解过软件的发展史以及中间穿插的人或事,对Agenda以及Python这些词也很陌生,不了解他们是如何被提出和完善以及发展的。

   现在,联想到我们,我觉得我们在做项目的时候之所以没有创新,没有提高是因为我们没有在遇到问题是努力的思考,书中所说的研究者在遇到问题都是努力钻研,在克服了一个个困难之后成功。再来就是解决问题的方法没有找到。

   通过阅读这几章的内容,我觉得要想解决我们当下的难题,我们应该学习书中研究者的精神,通过整个叙事的过程,让我仿佛看到了那个年代,每一位研究者的努力,痛苦与惆怅,他们遇到的问题以及当下他们所处的环境以及在特定环境中所创造出来的产物,这段鲜活的历史使我对软件的发展又有了新的认识,从中学到了在遇到软件黑洞以及遇到困难时的解决方法,以及伟大研究者的风采,是非常值得我们学习的。现在,我知道了其实相比之下我们还有很多没有做到的,因此在今后做项目的时候要延续前辈的谨慎的研究态度,遇到问题要认真做好的良好态度。

转载于:https://www.cnblogs.com/haoying1994/p/5399137.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值