读《构建之法》1-5章有感
这个作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2178
第一章概论
首先,在第一章中我大致了解了我可以在书中学到什么,如何落实学习。1.1节通过三个简短的对话,启发我对什么是程序,什么是软件,什么是软件工程,也了解到了一个软件不是简简单单就能说写就写的,还需要考虑各种因素,如人们的需求,功能的可行性。软件开发包括四个阶段:1.玩具阶段 2.业余爱好阶段 3.探索阶段 4.成熟的产业阶段 。1.2节详细的给软件工程下定义,介绍软件工程的特殊性,介绍软件工程中的“工程”的由来,讲述了软件工程与计算机科学的关系,告诉我软件开发中应用工程化原则的重要性。
第一章我有一个疑问就是:软件工程在社会发展处于什么地位,发展潜力在未来究竟有多大?
第二章 个人技术和流程
看完第二章后知道软件是需要单元测试的,之前对这个没什么概念,而且单元测试要跟软件更新同步,单元测试要覆盖所有代码路径,单元测试可以把你的软件能做的不能做的事都在“单元”中表达出来。如果没有单元测试的话有时候有些隐患自己不知道,等到后期发现再修改就很复杂了。有单元测试的话后期出现的bug修复起来也比较容易,而且会容易知道错误是什么,在哪里。需求分析和测试的时间比写代码的时间要多,软件的形成应该更注重需求分析还有测试,这样才能减少软件后期出现的bug,更加满足用户的要求,软件才能一直被人使用和延续下去。
第二章我有一个疑问就是:对我们这种没有写过单元测试的要怎样开始去编写单元测试?
第3章 软件工程师的成长
软件工程师的成长,这章主要是讲个人能力的衡量和以及软件工程师的职业发展。成为软件工程师,首先要学习和积累软件开发相关的知识,不断学习,不断积累,提升技术技能,理解通用的软件设计思想和软件工程思想。学好专业技能以外,还要有一定的自我管理能力、与人合作能力等。
第三章我有一个疑问就是:想要成为一名软件工程师,大概需要付出多少时间?
第四章 两人合作
合作说易不易,合作的好势必效率质量调高,如果只是自己做自己当然失去合作的意义。软件开发的过程是复杂的,显然的一个人的智慧是不够的,遇到问题一起解决,工作一起分担能使开发的效率提高很多。以后到公司团队工作,合作很大程度上实现优势互补,比如说有人擅长界面设计,有人擅长实现功能,这样的合作能减少工作量提高整个开发效率。有些人技术很好,可是在沟通这方面十分欠缺,这是很不利于合作的,在项目的开发中,一旦项目出现问题或者自己对一些代码功能的修改都要及时跟同伴沟通,不然将给其他人带来很多不必要麻烦。作为一位程序员,难免会因为各种各样的原因要阅读其他人的代码,这时候我们往往会有数不尽的吐槽和疲倦。
第四章我有一个疑问就是:如何代码规范,如何让对方看懂你写的代码,是需要按照国际标准,还是内部自我协调?
第五章 团队和流程
在第五章中教会了如何在编程中团结合作。在第五章的学习中我了解到了开发流程有以下几种模式:写了再改模式、瀑布模式、由瀑布模型的各种变形、渐进交付的流程、tsp的原则。我们要学会需找合适的团队合作模式和开发流程。书本上提到了很多的团队合作模式和开发流程,都各有优缺点。仅仅从校园合作的角度出发,我认为使用功能团队模式更适合彼此合作交流,而开发流程在校园合作阶段,容易被忽视或是考虑的不全面。我对于第五章颇有兴趣,因此存在的疑问也稍多。
第五章我有几个疑问就是:1、在团队中,每个人的水平层次也不尽相同,那在团队中如何合理分配每人的任务?2、在团队中有可能会有这样的情况:“为什么他的任务比我的少?”,“为什么他工资比我高?”。那么团队中这样的分配如何找到一个平衡点?3、在团队开发中,每个人的性格也不尽相同,有人喜欢把事情尽早做完,但也有人喜欢把事情放在后面,拖到最后,出现两极分化,这样就会产生冲突、工作进展缓慢、合作不愉快等,那如何协调和解决这件事情,从而来保证团队的高度团结和团队开发的效率?