《梦断代码》阅读笔记1

   《梦断代码》讲述了OSAF开源基金会开发日历管理软件Chandler的过程,前后两打程序员,3年时间,4732个bug,耗费百余万美元,只为了打造一款全功能的日历软件。本书是讲一事,也是讲百千事;是写一软件,也是写百千软件;是写一群人,也是写百千万人。任何一个在软件领域稍有经验的技术人员看完本书,必掩卷长叹:做软件难。软件乃是人类自以为最有把握,实则最难掌控的技术。书中的许多内容确实就是我的感受,例如在做软件的过程当中,时间似乎确实时快时慢。如果一切顺利,你会沉浸在心理学家称之为“流逝”的状态中,全然忘记了时间。如果事有不谐,你又会陷入困境,四顾茫然、举步维艰。无论是哪种情况,时钟都被抛诸脑后——这是“软件时间”。正所谓,行百里者半九十。

        开发软件应该经可能的都往前赶,这样才能有足够多的时间来应对突发的状况。否则,随着软件的开发,却发现时间越来越少,软件缺陷列表中却又成千上百的任务需要完成,陷入深深的沮丧。这是无数程序员都会经历的开发远远落后于进度的境地,哀叹死定了。这可能是软件开发人员最绝望的时候,眼睁睁看着交付的时间来临,却束手无策。另外创新往往十分困难,一味追求创新,会使我们举步维艰,但正是这些创新才是那我们赢得用户的最根本保证,所以,做软件正确把握这个度很重要。

第四章乐高王国主要描述乐高积木式的软件制作方式,如果这一块块积木是程序代码,则很难做到尽善尽美,完全适用且精简的代码。最终这个方式是卡塞尔团队在这方面的一个尝试探索,值得我们钦佩和敬仰。乐高假设指未来程序将由可复用的部件组合而成。部件将在全球范围内提供。虽然实际上这种假设不太容易实现,甚至不能实现。做好项目的关键在于复用,而不是重复发明。把前人的成功经验集成进来,少写新代码。软件复用的两难选择:创建还是借用?

     可复用软件之梦有一个悖论:几乎总能找到一段满足大部分需要的代码。但这些拿来的代码所不能做到的部分,恰恰是项目与众不同的创新之处----也是创建这个项目的出发点。模块化和组件化是软件人员的梦想,谁都想把几个模块插到一起就可以完美的运行并完成任务,但现实却相当残酷,可以运行的模块通常不能与自己想写的程序配合工作。程序员们很久前就解决了“小复用”问题,即通过构建子程序库来为自己减负。但一直悬而未决的间题则是“大复用”——创造并使用真正有用的软件大型可复用组件。

    书中提到一个叫考克斯的人,他创办了一家叫做Stepstone的公司,致力于向C语言系统搭造者提供插入式芯片级软件组件,最后的结论是:即便采用最新的技术,要想设计和制造既有用又真能复用的组件、为组件写文档以便于客户理解、移植组件到潮水般不断涌现的新硬件平台上、确保最新的改进或发布版本不与现存接口冲突、将组件销售到类似威廉姆斯堡枪械行业那种鼓励从头做起的价值体系,都是极其困难的。

posted @ 2021-11-26 18:42  第厘  阅读(36)  评论(0编辑  收藏  举报