读《大道至简》第六章感想

    语言确实是种工具,但我们不应该忽略工具的作用。我们想什么,去做什么事会决定使用什么工具,但反过来我们有什么工具也会决定我们怎么想,怎么做事。如果工具没有提供这个功能,你就不会向这方面想,也就不会这样做。我们编程的时候,多数不是全部事先想好再写的,而是边写边想,你会发现你写得越多,你就会想得越多。我觉得,软件不是设计出来的,而是进化出来的。从这角度来说,编程语言是有好坏之分的,简单的说,就是越能帮助思考的语言就越好,要灵活,表达力强,少约束。编程语言就如同数学符号。数学符号也是种工具,好的数学符号会帮助使用者思考,更奇妙的是似乎符号本身也会思考。编程语言会引导思考。语言在设计或者演化的时候会提倡某种思考方式。有些语言提倡函数式编程,有些语言提倡面向对象,有些语言提倡结构化编程。语言确实一种工具,但它可以帮助我们思考,甚至决定了我们的思考方式。

    作者向我们介绍方法,作者提到推动逻辑向前发展的动力是“方法”和“方法论”。方法是长期实践的结果,作者以GoF为例,他的成功之道即为不断实践,不断总结,抽取,归纳这些规律。看到这里不由想到了王老师说的,没有学不会编程的人,只要动手去实践,也不由使得我意识到了实践的重要性,想到这里不由得心生惭愧,自己只会照猫画虎,在编程的时候总是以完成任务为目的,从来不到做一点点,多实践一点。从来不回去多考究推敲一遍代码。

    工程理论是包含组织学的。如果说工程关心的是“需求”、“配置”和“文档”等等这样一些要素,那么这样的工程还是停留在技术层面的:关注的还是工程的实现细节,而非目标。从角色的角度来看,这是项目经理和技术经理所共同关注的那一部分。 然而项目经理还必须关注于人力资源、项目资金以及多个项目之间的协调等等。这些与工程本身并没有直接关系,而是“组织”方面的内容。工程不是做的,是组织的。不是有了模型,有了项目经理和开发人员,大家按照模型去做就可以成功的,这又不是煮饭烧菜,有原料人手和菜谱就可以的。这需要项目经理起好领头人的作用,组织这个工程中的各个角色,了解每一个人的特点和所长,把他们分配到适合的位置上,进行弹性分工,让每个人的价值在团队中得到最大的发挥。组织好工程中的各个角色,使得大家分工明确,步调一致,才能共同完成好项目。 

    实现是开发软件的本质需求。为了实现,我们设计了数据结构或逻辑结构来映射物理模型,我们不断的积累和实践来总结和归纳方法。分析、设计和编程因此出现顺序和实现顺序不一样。由于“实现”的需要,我们有了团队组织、有了过程模型、有了语言、有了工具。“实现”如同上帝之手一般,推动着软件工程的理论体系的形成。

posted @ 2015-11-07 19:56  Fanyalei  阅读(153)  评论(0编辑  收藏  举报