提问回顾与个人总结
提问回顾与个人总结
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2019春BUAA SCSE软件工程 |
这个作业的要求在哪里 | 提问回顾与个人总结 |
我在这个课程的目标是 | 学习团队开发项目,为以后的工作提供经验 |
这个作业在哪个具体方面帮助我实现目标 | 对软件工程课程进行总结 |
以前的博客
请尝试对自己曾经提出的问题进行解答,并阐明,是如何通过看书,实践,或者讨论弄清楚的
1.关于结对编程的效率
我后来觉得,结对编程在普通的任务上可能看不出效果,但是在一些非常重要、开发难度高、容错率低的时候,结对编程的效果将会大大提高,毕竟能显著避免错误的产生,在后续的测试、修复会省很多功夫
2. 关于goto语句
仍然是尽量不去使用goto语句,但是为了逻辑清晰,在避免使用goto的地方都写上注释,就会好很多。
3. 迷思之四: 创新者都是一马当先
创新者不一定是一马当先,但是一马当先的肯定是创新者,除非他使用他的力量禁止了别人在这一领域的继续研发。
4. 用户体验之不让用户犯简单的错误
让用户犯一些简单的错误是有效果的,比如高防的广告,能够加大用户点击广告的概率,同时客户也不会产生比较严重的困扰,只会觉得自己太不小心了。我自己经常在贴吧、微博等不小心点到广告,有时候尽管没点到,也会看上几秒反应过来,我觉得这种设计的效率比大大的广告两个字贴上效果好了很多。
5. 迷思之五:要成为领域的专家,才能创新
创新谁都能创新,即使成为了领域的专家,创新也不能停止,创新当然不只是在自己的研究方向上,也要在自己的研究方向之外,思考是否有新的空间可以开拓,这样或许就能和领域之外的研究者一样了。
请问你们在项目的 需求/设计/实现/测试/发布/维护阶段(一共6 个阶段)中都学到了什么“知识点”。
需求
学会了NABCD,即N(Need),A(Approach),B(Benefit),C(Competitors),D(Delivery),我们在讨论用户需求的时候都会在这几个方面进行综合考虑评估,最终确定下来用户的需求。
设计
在设计的过程中,我所在的前端开发是靠着设计人员的模板来进行网页的设计,对于代码的编写则由两人一起共同商定,比如函数、变量、文件的命名,缩进等等。双方对于规定都尽量做到落实。在样式确定好了之后我们则商定功能的具体实现方式,看是否会有更好的方式,比如对于分页的处理,前端分页和后端分页到底哪个更好,确定了之后我们再开始编写。
实现
实现过程中要严格按照设计的时候来完成,脱离了设计将会带来很大的麻烦,比如Alpha阶段本身设定是两个人基本上一人一半,可是另外一个前端开发人员可能能力略有不足,速度比我慢了很多,最终导致大部分工作都是由我一个人来完成的,然后这一现象继续延伸到了Beta和Gamma阶段,对整个项目进程虽然影响不是很大,但也造成了一定的困扰。
测试
单元测试非常重要。我们只有一个测试人员,因此他比较辛苦,而我们也是按照要求,开发人员都进行了自己的单元测试,保证自己的功能能够通过基础测试,不出现bug,确认后再提交到开发分支上去。同时前端开发人员还会进行互测,检查对方的代码里是否存在漏洞。
发布
发布的时候要着重于创新点,这里当然是对比与友商而言,因为两者的功能基本一样,大家对第二组的基本功能肯定没兴趣了,所以要靠创新部分来吸引大家。
维护
前端的维护主要在于页面的功能稳定性以及页面的访问速度。在开发过程中,经常会出现添加了新功能后导致旧功能出现了瑕疵的现象,不过好在绝大部分都在单元测试中就发现并解决了问题。对于页面访问速度我们主要靠减少ajax请求数目及长度,调整页面加载逻辑来实现。
结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得。
虽然这门课程难度不高,但是工作量还是挺大的,也有可能是我负责的内容实在是太多了,自己在后面几个阶段的心态不是很好,对于工作失去了积极性,但还是尽量在项目结束前将前端部分所需要的功能都完成了。虽然在一开始的阶段自己还不是很熟练,对于html/js基本不会,但是到了后期,已经能够较为熟练的添加上新的功能了。在绝大多数时间里我还是比较开心的,也有非常急躁的时候,比如当我们的网站被攻击的时候,看着14W个用户真的是哭笑不得,只能怪我们在Alpha初期当初没有考虑到安全性的问题,正准备添加安全验证的时候就被攻击了。还有就是,希望有的人态度认真一点,认真对待编程,认真对待测试,按时完成,不要写完代码自己都不进行测试,一堆BUG就往分支上面推,导致其他人还要给你的代码擦屁股,给大家的项目带来麻烦。