构建之法阅读笔记一
构建之法阅读笔记之一(1-3章节)
我过去只是简单的编程,没有想过一些本质的问题。这次看了《构建之法》让我看到想到了一些软件工程的本质问题。
软件是什么,是如何发展起来的?
软件就是,程序加软件工程。程序就是数据结构加算法,就是一行行的程序,其中有建立在数据结构上的算法。但是这还不足以成为一款能为大家服务的软件,正如书中所说的构建过程,一个复杂的软件不但要有好的软件构架、
软件设计与实现、还要有各种文件和数据在描述各个程序之间的依赖关系,编译关系,链接参数,等等。高效的构建软件,还有源代码管理,软件设计,软件测试,项目管理就是软件工程的大概描述。
但是究其本质,软件的产生还是为了满足需求,也就是为了创造价值。那么软件就需要商业模式来推销自己,从而产生了软件企业。代码才是一个软件企业的灵魂,但是显示却告诉我们,没有好的商业模式,它终将走向灭亡。
那么软件业是如何发展起来的,是像中彩票一样,一夜发展壮大的吗?当然不是,正如飞机产业的发展,从纸飞机到莱特兄弟的创造,其中不为人知的是一次次人类伟大的幻想和实践。
如何做出一个能够被用户接受的软件?
软件必须注意以下几点。用户满意度,可靠性,软件流程的质量,可维护性。我认为根本就是用户的满意程度,软件工程师消灭bug就是为了让用户用起来更加自然。
说到bug,就是软件的行为和用户期待它实现的行为不太相同。但是,世界上没有可以实现任意功能的程序,只有达到预期目标并且能够保质保量,物有所值的才能叫相对的“完美”。
那么如何减少bug呢?
就是第二章的单元测试,好的单元测试能够准确,快速的保证程序基本模块的正确性,这样能够增加写程序的效率,体现在能够及时准确地发现错误出现的地方,还能够帮助其他工程师更好的理解自己的程序。
一个程序员的成长过程在我心里就是从能写出课上布置的程序到能够独立思考并且用已经学会的语言来解决手头的问题。这也是大一软件工程概论上学习到的。但是不清晰也不具体,在读了第三章后,知道其实大概就是这个意思,但是成长应该更有目的性。