读《大道至简》之从编程到工程
读《大道至简》第六章之从编程到工程
“得其精而忘其粗,在其内而忘其外;见其所见,不见其所不见,视其所视,而遗其所不视。”
-------《列子·说符》
上文是取自秦穆公与伯乐之间关于九方皋相马的对话,直译是,天地间的奥妙:得到了它的精微,而放弃了它的粗略,省察它的内部而忘却其表象,看见了他所应当看见的地方,而没有看见他不必看见的地方,考察了他所应当考察的地方,抛弃了他所不必考察的地方。这则故事教给我们一个道理:认识一件事物就要像九方皋相马一样,避开纷繁复杂的表象的迷惑,先抓住事物最本质的特征,这样不仅事半功倍,而且有助于更深刻地看清细节。就编程的语言而言,我们实在不该费尽力气去讨论到底是哪家的语言略胜一筹,这样是可悲的。不管是什么语言,哪管是甲骨文也罢,它只是一个工具,传达某些涵义的工具,而我们所要注重的就是这些涵义的产生与发展。
软件工程中,代码、方法、过程、工程与组织的关系:
算法=程序+结构,编程的精义所在。
方法,是随着不断地长期的实践衍生而来,这是一个自然而然的过程,也是一个积累的过程,所谓久病成良医,犯过的错误多了,自然就会产生新的方法去避免这个错误。但最重要的是,回顾。从过去中吸取教训,更能促进现在的你在正确的方向上越走越远。
过程,伴随工程而出现。工程不论大小,要实现就要有过程,有过程就会有分工,有分工就会有角色,角色之间的良好沟通促进了工程的建立,这不能仅仅只停留于表面。不管是一个程序中,还是一个项目中,角色的沟通都是占一定地位的。
工程,从最开始接触计算机(对C++语言的学习)我们就听到过这个词------工程,最狭义的工程,是描述“做什么”和“做到什么”。工程有大有小,小工程一个人能完成,其实大工程也可以一个人完成,不过这样的事情可能不会发生在一个软件公司里,因为没有哪一个老板愿意看着你一次一次的将项目延期。这时,需要一个团队,团队意识是内在的精神支柱,起决定性作用。团队越强大,软件规模越复杂,对人员的要求也就越高。
组织,身为一个组织者,要协调好各个方面的关系。一个好的项目经理并不是不犯错误的人,而是以尽可能少的失败来获得成功的那个人。
当我们做好了一切准备,就可以静静的看着这个项目去实现,实现是最本质的需求。