第1~17章
问题:合格的软件工程师,有什么具体的标准吗?还是说能写代码,又能发现问题解决问题就可以成为了呢?我们现阶段可以从哪方面开始培养自己的开发思维和能力,向工程师迈进?
回答:作为一名软件工程师,仅仅会写代码还是不够的,还其他的方面的能力。如1. 编程语言能力2.编码能力3.面向对象思维能力4.利用工具能力5. 英语能力6.学习能力
7.创造能力8.文档能力9.抽象能力10.代码评审能力11.单元测试能力12.DRY
问题:若以后毕业了,刚刚出来的我们仅仅凭借在校学习的知识是远远不够的,一般公司招聘时都会要求有一两年的工作经验或是说有经验的优先,那我们应届生该如何加强自己的价值?公司需要的是为其创造价值的人才,还有机会让我们慢慢学习吗?
回答:引用邹欣老师的话,就是说我们在学校要
1. 学习好理论,锻炼自己 “快速学习的能力”。 这样到了现实世界里才能快速发挥作用。
2. 探索一些自己感兴趣的方向, 做出一些具体的成绩。
问题:本章4.3.3中提到的断言是什么?仅仅从书上写的代码,我理解就是判断语句,这样的理解可以吗?
回答:编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设 可以将断言看作是异常处理的一种高级形式 断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真 可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。
问题:团队合作模式和开发流程的关系密切?两者能否脱离?
回答:关系密切,相互影响。一个优秀的团队是要具有合理的团队模式和开发流程。
第6~7章
问题:书上介绍了敏捷开发的流程,每一步做什么,考虑什么都很详细。若在实际情况中流程仅仅限于形势,没有真正的实现共享信息,交流问题,那将如何解决?
问题:书上介绍了MSF的原则,MSF团队模式和开发模式,MSF和CMMI。我重点感兴趣的是我们大学生该如何实现软件的商业价值。写出能运行的项目就实现 了?参加比赛的项目获得好评,就有了?我们对自己的程序,有所要求,要不断的完善,能为客户解决,就具有商业价值?还比如说我写了一个android的 app,通过平台发布,有用户下载使用,这样算是实现了其商业价值了吗?
问题:如何灵活运用典型开发模式,要怎么才能更好的管理设计变更?
回答:根据团队的特色,选择合理的开发模式,做好规划。要学会总结变更的原因并将其分类,在生命周期中对项目的变更要有所控制。
问题:要做出便于用户使用,减少使用者和企业服务人员的不必要因素的软件-->要做好用户界面设计和用户体验。用户体验是否贯穿整个开发流程?
回答:我的理解是,若一开始脱离用户,未能从用户的角度出发,而后期的用户体验中会很容易产生难以修改的问题,如UI界面设计不合理,没有考虑用户年龄段。
问题:我们一般都是写程序就写程序,实现具体的功能就好了,脑子里都没有写测试的概念,该如何加强意识和提高测试水平?
回答:要多看书,多学习,多练,慢慢培养,从细微处做起。
问题:测试角色独立,容易产生依赖,如何才能保证团队人员各司其职?
回答:团队领导者要有统筹管理能力,了解开发团队人员的能力,争取做到物尽其用,人尽其才,这样每个人都能发挥自己的长处。其次,开发团队成员要有团队意识,为团队做贡献,了解自己的能力,为团队做一下力所能及的事,不打酱油。
问题:一个项目若是规定时间内,无法完成或是bug还很多,怎么办?一般的专业人士会如何避免、处理?
回答:为了不让团队的bug很多,影响整个项目的运行,一般团队会让出现bug最多的开发人员解决好bug,其他人员继续开发。
问题:创新需要什么?可实行的技术,足够的成本?
回答:创新不仅仅需要灵活的思维,创新的想法要符合实际情况,有可能实现的,对人们有益的,能为人们解决问题的想法才是创新。
问题:团队成员按贡献体现价值?可是他们所完成的功能不同,难度不同,这该如何正确的评价?
回答:一个团队项目工作有难有易,只有每个人都好好完成自己负责的那部分,才能做好一个大的好的项目,所以我认为这应该具体情况具体分析。