《构建之法》听起来就高大上,当怀着敬畏,又好奇的心打开阅读时,又被它深深吸引。它让你给你了解这个软工行业。从陌生到熟悉,从无知到懵懂。涵盖了多种方法,拥有很多精华,让我为之惊讶。
从开始的软件=程序+软件工程,到软件企业=软件+商业模式,都在谈软件是什么。了解之后我们可以从生活中对它开发,如玩具阶段,业余爱好阶段,探索阶段,成熟的产业阶段。俗话说,兴趣是最好的老师,对软件充满热情,是做一个好项目的基础。在软件开发中我们会因为它的复杂性,不可见性,易变性,等特性而焦头烂额,但这也正是它的魅力所在,它正与“没有银弹No Sliver Bullet" 相吻合。刚开始我选择计算机科学与技术这个专业时,只认为它是和电脑有关,到后来分专业成为软件工程的学生时,我知道软件工程创造性的应用科学原理,设计和实现建筑,机器,装置或生产过程。计算机科学与软件工程有很多交汇,从硬件设计者,计算机工程的工作人员分享了他们的思想和术语,我不再纠结“科学”和”工程“。我懂了我的目标是创造足够好的软件。
当然好的软件不是靠我一个人就可以完成,我们需要团队,团队有一致的目标,团队的成员有各自的分工,相互依赖,共同完成任务。团队的模式有多种,如主治医生模式。明星模式,社区模式....每种模式都有自己的特点,选择自己合适的就好。我们在开发、运营、维护软件的过程中的很多技术、做法、习惯和思想,这些相关的技术和过程统一到了一个体系被称为“软件开发流程”。而对于整个团队的效率和发展来看,每个人的能力都很重要,同样最重要的合作、平等的、互补的共同完成任务。软件开发流程是为了开发、运营、维护的效率,以及提升客户满意度,软件的可靠性和可维护性。我们可以写了再改模式,其中瀑布模型是其他模型的基础。但在团队合作的过程中总会对软件进行测试,为了保证模块内部的质量稳定,我们要用单元测试。当然好的单元测试必须又熟悉代码的人来编写,测试后机器状态不能改变,并且测试要快,重复测试的结果要一致。在单元测试的基础上,还要有回归测试来保证的代码的确改正了缺陷,并没有破坏现有功能。开发一个软件又怎能少了分析,通常我们采用抽样和代码注入。
如今,科学技术也越来越发达,懂电脑的人也越来越多,出现的黑客也比较多,所以我们的职业道德提升也是必要的。在团队合作中,团队的力量靠每个人。一个团队需要长期的磨合,要重视每个人的意见。要清楚每个人的角色。团队内部要解决矛盾,不能有历史遗留,否则团队会解散。
单丝不成线,独木不成林,团队要按流程,再加上自己的意见,努力在可能有好的项目。