“agenda之魂”,这章讲述了卡普尔在莲花公司开发agenda,卡普尔开发的这个软件的功能在当时没有软件能与他媲美,agenda突破的计算机严格逻辑与人类的语言之间的阻隔,他在开发软件上有极大的创新思想,这里给我的理解就是第二口吃不到好吃的。还就是㤙格巴的“智慧增进”程序的目标,他执着于这一思想是他没有取得巨大成就的原因之一。在软件开发过程中我们可能会遇到开发黑洞,可能会投入很多,缺没有一点收获。软件开发并没有典型软件,我们开发软件需要直击用户需求要害,才能使得软件“大火”
“原型与Python”。
在每个项目工程的早起阶段,团队开发的语言选择和技术选择,准备切入开发时,这两难问题就降临了,对语言和技术的选择,早期无关大局、重选亦可,转而变得混凝土般坚如铁石、关系重大。软件开发就像洋葱般层层叠叠,每一层都辛辛苦苦地建立于前一层的基础之上,危如累卵,指望着低下那层不要移动或者改变太多。我们把这种结构叫做“抽象层叠”,每当新添加一层时,就要把一些复杂而特殊的东西转换为简单而通用的东西。
Python是一种解释型语言。通过编译器先将程序员的代码翻译为机器可读的二进制代码后再运行,而解释型语言则是在运行时做类似的工作,解释器逐行翻译源代码,再喂给处理器运行。解释型语言效率较差,因为你要同时运行自己程序和解释器。但这也使得解释型语言较为敏捷。
Python和其他解释型语言一样,为许多软件开发者所轻视,他们吧解释型语言看作“脚本语言”。
对于软件的开发发布,要做最坏的打算,尽量为所会遇到的困难留出解决的时间,让自己软件开发的发布的少走一下弯路。
真的是这样的每个开发语言和技术的选择是很重要的,就拿我在算法上的学习一样,有一些算法在不同的语言中就是不一样,那些算法用C和C++就是比JAVA稍微好写一点,有的题目使用python语言可以10行写完,如果使用C++可能需要五六十行才能完成,对于不同的技术也是这样的,有些题目的含义非常的隐秘,导致你在技术上的判断就出错,出发点就会错误,就拿DFS和BFS来说,有时候你看到那个题目时对这两种算法的选择真的不太好选,有些题目DFS就可以很简单的完成,但是如果你选择使用BFS那么你就需要有很好的剪枝能力,要不然在时间和空间上就会超出题目的要求。