《大道至简----软件工程实践者的思想》读后总结
从软件工程的名字来分析,软件工程=软件+工程。软件是命令的集合,工程以最短的时间和最少的人力、物力做出高效、可靠且对人类有用的东西。所以将这两者综合起来,便是软件工程。
本书开篇就利用人们耳熟能详的愚公移山的故事来阐释编程的精义就是顺序、分支和循环。这其中强调了一个很重要的观点,讨论语言的好坏是没有任何意义的,每种语言都有其特点和存在的价值。合适的项目用合适的语言,比如做Windows平台的应用可以使用C#,Android的app可以使用Java。
第二章中以战国时李冰开山为引,阐释了”懒人”造就方法这个观点。我个人不太喜欢”懒人”这个词,不如说是”发明家”更好。一些有想法的技术人员总喜欢搞些大动作,通过创造或改良来形成效率更高更好用的技术手段。当然这些思考都是来自于总结,这些思考促进创造或改良。此外这章里面有一小节很有意思,说的是书桌上书摆放的一个隐喻,在学习编程语言的过程中也是这样,不要过分纠结于代码怎么敲,要注意代码背后的东西,明确你的实现方法,理清你的设计思路。
第三章主讲团队,团队领导不仅要有责任感,更要管理与组织的手段和承受压力的能力。先确立组织机构,再建立一个合适的制度来制约和规范团队中每个人的工作。作为一个领头人要掌握好尺度,好比要跟随蚂蚁,但不要栽进蚂蚁洞里。作者在这个章节里还结合自身经历谈到了团队内角色转变的问题。我认为他的观点很有道理。能力可以通过学习来增强,转变的关键在于先转换思想和思维方式。
第四章和第五章涉及到了沟通。团队内部和与客户的交流,也需要一种内部达成共识的沟通方式,只要是有效的、能在各个项目角色间通用的就是好的沟通方式。工程本就是寻求实现的过程,要搞清楚工作的重点,组织好人员分工,还要制定好一个工程的模型,何种模型并不重要,还是要以适合团队工作为主。
最后三章紧扣软件工程这个主题。书中的”牛屎图”很鲜明的展现了软件工程的特点:在实现对象的基础上凸显工具、方法、过程三要素。这部分内容作者分析了几则实例,又进一步阐释了关于软件工程的思考。
作为一个freshman,能通过这本书得到大概只有些对软件工程的初次印象。书中提到的那些思想和理念对于我目前这个层次来讲无法理解和接受但是一种视野上的拓展。除此之外了解到一些未有耳闻的概念,比如AOP、RUP、MDA等,也算是专业知识上有所丰富。这本书所呈现长久以来的思考成果,肯定是有糅合作者周先生曾经作为程序员时的思考,不过结合书中大部分内容来看,他更多地在以一个公司高层的身份来阐释自己的观点,再加上这种掉书袋式的旁征博引,想必会有非管理层的读者对此并不感冒。在我这个freshman看来,即使接受不了书中的观点,也只需明白三条就好:首先完成项目是第一位的,其次项目的真实情况要比理论来的更重要,再者就是从这本书中能否取经不要紧,重要的是读者自身要学会思考。
总的来说,这本书方法甚少,全是思考的精华。作者以隐喻的方式提出了很多问题并未做出解答,能引发读者深入思考。