0%

RISE

这个作业属于哪个课程 2021春软件工程实践 W班(福州大学)
这个作业要求在哪里 软件工程实践总结&个人技术博客
这个作业的目标 课程回顾与总结 个人技术总结
其他参考文献

第一部分:课程回顾与总结

提问链接:

寒假作业2

提问回顾与回答

问题一 :结对编程是否一定比个人开发更具效率?

根据我在结对编程中获取到的经历来看,如果从单从工作量的角度出发,并且两个人的开发部分没有重叠,2个人开发的速度肯定比一个人要快得多。但是如果两个人的工作高度重叠,并且两人的开发水平差距过大的话,可能会造成1+1<2的情况,所以我觉得结对编程不适合长期开发。

问题2:当软件开发者认为的需求和客户的需求不一致甚至出现冲突时怎么解决?

在团队开发过程中,我发现开发者认为的需求和客户的需求其实大致方向是一样的,其主要冲突还是在部分功能或者在开发实现的过程,比如客户觉得某个动画很好看,但是在开发过程中实现困难或者实现与否不影响主要功能的使用,但是客户不了解我们的开发技术,他只是从使用的角度出发,这个时候我觉得开发者可以自行决定这部分需求的取舍。

问题3:什么时候该改良代码,什么时候该重构代码?

这个问题是我在开发 福大校友通App 中思考的问题,因为这个App的代码经过几代人的迭代,已经掺杂了非常多冗余的代码,并且最早的代码可以追溯到2015年,当时使用的框架和技术已经非常老旧,开发效率都比现在低,而且在新的系统上使用会出现不少的问题,但是这部分代码已经遍布App的各处功能,成为App的核心代码,我多次尝试对这部分代码进行改良,但是花费大量的时间(代码不规范、无注释等)效果不佳,这时候我觉得对App重构是非常必要的事情,重构所花的时间甚至会比去改良旧代码的时间要短。

问题5:书中提到了很多软件被长期使用之后,软件会越发难用。当一个软件在交付给用户以后,用户经过长期使用,对软件产生了厌倦,使得用户丢弃了软件,那么在这种情况下,是用户还是软件开发团队的错误使得软件被弃用呢?

这我觉得应该是开发的锅,在这个技术革新很快的时代,一个软件的保质期是有限的,如果不能做到对软件的功能经常性的更新,对软件使用的技术进行革新,软件被代替或者被弃用是迟早的事。

五个阶段的学习成果

需求阶段

万事开头难吧,需求阶段说白了其实是在画大饼,饼画的越大你的软件就看起来越诱人,但是这个饼如果过于夸大, 其实对自身产品的定位就更加不准确。

设计阶段

我觉得设计阶段就是为你的饼准备原材料,构思做饼的步骤,最后的饼能够做的多大不是看画的多大,而是你为了你准备了多少的材料,对于软件而言,无论是整体架构的设计、数据库设计、还是原型设计对于后面的实现过程至关重要,虽然我在设计阶段参与的不多。

实现阶段

在这个阶段,你一定会臭骂自己当初的饼画的太大了 ,但是自己画的大饼,哭着也要把他做出来,作为做饼的主厨,曾经多个夜晚都在熬夜赶进度,这个时候,很多技术开发的框架能帮助你加快进度,这个阶段其实就是纯靠自己的技术面,如果技术不过关,实现过程其实就是在反复折磨。

测试阶段

终于把自己画的饼做完啦! 但是到测试的时候你会发现,要么就是你的饼没熟,要不就是它坑坑洼洼的,开发阶段由于都在赶进度,最终做出的软件实际上会出现很多的BUG或者在细节上没有处理好的地方,测试阶段就是把你的饼反复回炉,实际上也是在弥补整个软件的完成度。

个人心得

个人项目

我觉得这次的个人作业就像在黑屋子里洗衣服,在开灯之前你永远不知道你的衣服洗干净了没有,虽然是次个人项目但是我觉得这个作业的意义好像不是非常大(指内容)

结对编程

结对编程是我觉得在软工实践中做的最好的一部分了吧,我觉得从需求到设计再到实现都是做的最好的,而且学习技术的过程也是比较顺利,最终做出的产品也比较让人满意。

团队项目

团队项目的结果不是非常尽如人意,因为我们的技术栈缺失非常严重,所以团队的几次作业都做的非常非常糟糕。

个人技术总结

IOS封装自定义选择器

posted @ 2021-06-28 14:07  EdmunddzzZ  阅读(117)  评论(4)    收藏  举报