“得其精而忘其粗,在其内而忘其外。见其所见,不见其所不见;视其所视,而遗其所不视。”作者引用了九方皋相马的故事中的名句开篇。

我们学了各种语言,却总是在纠结哪种语言好哪种语言坏,而作者却说:“谈论这些事情的甚至是可悲的。”他提出一个观点:“语言只是工具”,对于一个程序员,或者以程序员自命的人来说,这才是看清楚一切的第一步,换句话说,这是最基础也是最正确的一步。

程序=算法+数据结构,这才是程序的本源定义,如此简单,是不会受到语言的约束的。编程的精义在此。从有开发行为开始,它就存在了。回到开篇作者引用的那句话,其核心思想正是,看问题要抓住事物本质,不能为表面现象所迷惑。无论什么样的语言,都无法改变那样简单的本质。

说到程序就不得不提到方法,长期的编程实践,自然的归演与总结,必须沉淀为某种软件开发的方法,于是过程出现了,对象出现了,相关的方法论也出现了。它并不神秘,因为它就是我们今天正在做的、从事的和实现的。大师们众口一词:“模式需要一定的编程经验才能理解”,这可能就发生在你去回顾的你上一行代码编写的经过,或者上一个项目失败经历的那一瞬息。

“经验来源于回顾、理解和分析,而不是你将要写的下一行代码。”多少次我们总是抱怨程序出了各种各样的错误,却没有去深入思考为什么会这样,没有去总结错误的方法,当然会出无数次的错误。有的人寺院扫了一辈子的落叶而得道,也有人因为一句话而得道。我们因为无数次的总结和回顾而得道。

在做工程的过程中,过程伴随着过程出现,是解决工程中角色的关系问题。在做工程的时候不要拖工期,要明确极少数的客户是“玩家”。伴随工程出现的还有协作问题,要步调一致,要求不同知识领域的角色参与,做工程是一个团队协作的结果,而不是一个大神单枪匹马地开发,所以这里也包含了组织学的知识。

即使做好了上述所说的一切,项目也可能不够理想,但是我们应该知道,回顾每一个项目,或者项目的每一个阶段,以及与每一个团队交流的细节,是我们以后的日常工作。

既然有程序员,必然会有BOSS,我们还应该清楚,BOSS才是经营者,他决定的不只是你的薪水,他决定了一个方向,组织者必须与之同步,而工程是在这样的一个方向、决策的架构下的一个具体行为。所以:“工程没有BOSS”。

实现一个软件才是我们的最终目的,所以“实现,是软件开发的本质需求。”

posted on 2015-11-08 14:22  憧憧  阅读(183)  评论(0编辑  收藏  举报