本人就读于上海海洋大学,是一名大二学生,专业是计算机科学与技术。构建之法是我们大二这学期最后的短学期需要研读的书,老师为了我们能够尽快为以后做好准备,从现在开始,我们就要仔细钻研这本书。可以说,自己在上大学以前对软件、编程这一块,完全没有任何概念,在上大学之后,慢慢接触到了程序、代码,只能说有一定的了解,但自己的基础还不是太牢固。对于构建之法这本书,只是暂且看了第一章,发现软件背后不止是有程序,还有其他许多东西。
从我们的日常来看,在手机、电脑等数码产品上,我们下载的软件可以说是不计其数,同时,除了我们自己下载的,还有许多软件在我们不知道的情况下就已经安装了。那么,我们在使用这些软件的时候,就会有许多不同的感受,要么是方便快捷,要么是拖沓卡顿,在这背后可能就有许多代码、程序在起作用。用户体验的不同很大程度上决定了这个软件的成功与否。在另一方面,软件也有它的特殊性:复杂性、不可见性、易变性、服从性和非连续性,这些性质,决定了软件工程是一项很难的技术。对于我们这些专业为软件工程的人来说,其实也是一种魅力和挑战。
学我们这个专业的都知道,程序=数据结构+算法。但从这本书上,我们又可以知道软件=程序+软件工程,软件企业=软件+商业模式。程序包括算法、数据结构是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量;商业模式决定了一个软件企业的成败。这可以说是整个构建之法的核心。我自己现阶段还只能在摸索程序的正确与否,算法是够简洁,数据结构是否清晰,这只是最初步的阶段。可能离真正做出一款用户可以使用的软件还需要很久,但是在不断地进步中,终会有这一天的。
软件开发也是一种探索的过程,在这个过程中,很有可能出现很多漏洞,比如,程序正在高速运行,突然发生异常,我们的程序能否正常工作,安然退出,并保证用户的数据不被破坏,这些偶然发生的问题,更需要软件工程师来修复。又比如说,一款新的软件发布,接踵而来的是用户反映的众多bug,这时候软件开发团队就需要在最短的时间内调试解决这些问题,不然就会降低用户对他们的期待,更有可能一款失败的软件,会导致一个企业的破产,许多人的失业。在我们这个专业的学生毕业之后,往往只凭借着自己会哪些语言,自己的分数等来作为自己进入企业的筹码,但是现代企业需要的不仅仅是这些,他们需要多方面的的对软件的考虑,包括会发生哪些问题,这些问题又该怎样解决等。
在学习构建之法之前,可以说,我的目光就集中在怎样编代码,怎样调试代码上面,对于这之后的事情,完全不了解。但在看了这本书之后,我觉得,学习软件工程的目标绝不仅仅是程序,而是要创造足够好的软件,这个足够好并不是一点漏洞都没有,而是这个软件一定要尽可能地符合大众的需求,并且在将来的一段时间中都能有所发展。而且,没有一个软件是一个人在短时间内就能完成的,它需要一个团队的努力,是在一个长期阶段内逐步完成的。这就需要我们在学习过程中,不断向他人请教,在团队中扮演好自己的角色,为完成一个足够好的软件而努力。