几天就读完了倪建大牛写的这本别具风味的作品,主要是对软件开发过程的一些思考,读后感。作者的写作方式很特别,通过叙述故事的方式讲解了软件开发的一整套流程和流程中需要注意的地方。作者的主要态度是批判的,带有理想主义的色彩,然而却是发人深省的。
这本书给我最大的收获就是在软件开发中要学会思考。思考所有步骤和方法存在的目的与意义。是否符合软件开发行业发展的趋势。
作者主要涉及的是方法论上的层次,俯瞰着大地上的开发组织和人员。看到的问题和解决方案往往是直指本质的。
这里摘几条印象深刻的见解和需要识记的名词。
学习新知识最快的途径是将新知识纳入自己所理解的一套知识体系。所以,如何在学习的同时建立起各个技术的联系和区别是很重要的,有利于建立自己的体系。修炼好内功,在接触新知识的时候,才能很快上手并理解其本质。
软件的本质是2进制和与非逻辑。软件开发的本质是人的创造,而创造的根源在与想象,这又引出了“隐喻”和“故事”。隐喻是指从生活阅历中抽象出与所要开发的软件的运行流程相像的事件与关系。故事,则是讲述故事的方式想象软件运行的流程。关于第6章 关于软件测试的思考
本章讨论了软件测试的本质和原则。软件测试是一种破坏,只有当破坏推动了建设才是有意义的。
我们以一次性能测试(以及随之而来的性能调优)为例,说明了破坏的意义。在这次性能测试(性能调优)过程中,几乎所有的问题都可以在软件生产过程中解决,这说明了软件生产是不完整的,而不能说明性能测试是成功的。换句话说,如果在下一次的性能测试过程中,我们仍然碰到同样的问题,那么,从软件开发本身来说(非商业性的因素),这次性能测试几乎没有任何意义。
另外,没有设计,就无所谓测试。软件开发离不开团队,可是,什么是团队,怎样才能发挥团队的作用,很多人并不是很清楚。所以,我们常常看到团队建设和团队管理走入各种各样的误区。例如,团队决策,无责管理等。本章对这些问题进行了思考,对团队的价值观,团队成员的沟通展开了详细的讨论。