软件工程实践总结&个人技术博客

这个作业属于哪个课程 2021春软件工程实践/S班
这个作业要求在哪里 作业要求
这个作业的目标 回顾自己列出的5到10个问题:尝试解答、继续分析、提出新问题。5个阶段中,每个阶段收获最大的知识或能力是什么。结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得。
其他参考文献 CSDN,SegmentFault

第一部分 课程回顾与总结

一、寒假作业二链接

软工实践寒假作业(2/2)

二、解答寒假作业问题

问题1 面对庞大而又零碎的需求,是如何从中化繁为简,捋顺思路,将各个需求串起来已进行功能的实现的呢?

我的解答:结合这次软工实践中我们自己对琐碎需求的分析,我们小组在面对复杂的需求开展了多次的需求会议,而且要求我们全员都要到场共同讨论,因为每个人的思维都是不同的,也就能发现更多不同的问题,提供不同的解决方法,再结合构建之法以及软件项目管理那门课中所学的,需求的分析在方法上分为四个步骤:1.要制定有效的计划和方案(例如多次需求分析会议).2.要收集更多的数据(例如我们的问卷调查).3.要找到这个项目的切入点或者中心点.4.要与用户进行多次的沟通,反复确认.

问题2 那么作为团队中的一员,如何快速的找到自己的定位,完成自己可以胜任的任务呢,并且作为初入职场的新手程序员,如何让正确而又全面的向领导展现自己能力呢?

我的解答:就拿这次软工实践中的换组来说吧,我从原来的逐梦校友圈小组被换到了青青草原小组,为了快速找准自己在团队中的定位,我先明确了自身的能力,我自己比较擅长前端部分的工作,所以希望在新的小组中依然能够负责前端开发,当然如果要转去后端我也可以接受,所以我首先找了组长和他沟通了自身的情况,描述了之前在小组中负责的部分以及自己技术上哪些还存在欠缺,组长也与我达成了共识就很快地安排好了我的工作,以及要和我交接的小伙伴们,最后换组经历下来我感觉我的部分就刚好契合了小组的开发进度.结合构建之法以及之前作业二中曾助教的解答得出,找准定位的关键就是认清自己的能力以及积极有效的沟通与反馈,而且一定要直接和与你工作关系最密切的人谈,例如项目经理或者开发组长之类的.

问题3 假如作为一个个人开发者,考虑的测试情况总是有限的,有什么办法可以帮助我们拓宽自己对软件可用性测试的思维呢?

我的解答:依然是从这次的团队作业中出发,我两次团队开发的都是微信小程序,并且我在两个项目中负责的都是类似的工作内容,第一次开发的时候很多代码细节与代码规范没有注意好,为了赶进度导致遗留了许多的bug,但是我自己有的是不太清楚的,所以我就请了舍友从用户的角度多次体验和测试了一下可能的出现的各种情况,以及一起开发的组员以其余开发者的角度再测试一下,在第二组里面开发的时候就会注意到类似的问题,最后结合我们所学的软件质量与测试那门课中的内容以及构建之法,可以得出,拓宽测试思维的方法主要有:1.懂得总结经验,之前开发中碰到的问题都可能成为你后续项目中测试可能会碰到的。2.多和非开发者以及同事等进行沟通,尽可能多了解软件在不同用户下可能面对的不同情况是否都能妥善处理。3.多查阅资料,这次微信开发我了解到小程序的wetest(虽然要钱。。),它提供了许多不同的测试方法如性能测试,压力测试等,这在我之前开发的时候都是没有想过的。

问题4 有着各自的见解,无法迅速的达到统一,所以请问在这种情况下到底应该如何达成一样的意见,团队又应该如何去沟通交流思想呢?

我的解答:在第一个小组中我们就曾经因为返回的时间戳(以毫秒为单位的时间转化为正常的时间)是由后端处理还是前端来处理一直无法达成统一,双方都各执一词,争执不下。但我们的处理办法是首先决策人先吸取所有开发者的意见,让每个人的想法都表达出来,再分析每种方案的可行性然后选取可行性最高同时最节省人力的方法,并且做出果断的决定以将团队重新凝聚拉回正轨。事实证明这种方法是有效的。

问题5 请问作为程序员在接受了用户这样的体验反馈后会做出如何的调整呢,如何在软件收益和软件使用体验之间做出均衡呢?这种现象是否也是与我们国内用户受众以及软件开发的范围所决定的呢?

我的解答:这个问题实话实说我还是有疑惑的,首先我的开发经验不足在每次项目中得到用户反馈也没有那么充足,几次项目的问卷调查收回来得到的结果有效的意见十分的少,并且众口难调,每个人的体验都是不一样的,例如我们的青青草原项目有的人觉得界面十分美观好看,有的人又觉得有的细节需要调整,取得平衡是不容易的,再谈软件收益,我们目前开发的项目都还没有收益(除了课程的成绩),我们在开发的时候都是不留余力的提升用户的使用体验,还没有考虑到为了收益去牺牲哪一部分,最后一个问题在两次的实践中更是没有得到解答了。

三、在项目的需求/设计/实现/测试/发布阶段(一共5个阶段)中,每个阶段收获最大的知识或能力是什么?

需求阶段

​ 收获到的最大能力就思考能力与自省能力吧,思考能力就是通俗来说我们到底要做啥,要做到什么地步,我们可能会遇到哪些问题,开发过程中是否为出现课程冲突,我们需要学习什么技术来面对这些问题,我们的工作要怎么安排,自省能力就是首先直面自己的不足,分析自己在能力和细节上还存在哪些“自以为是”的点,打破自己的不切实际的幻想。

设计阶段

​ 收获到的最大能力是沟通能力,知识是开发文档的准确在软件实现过程中的重要性,因为我帮助组长与后端小伙伴一起确定了我们的接口文档,也参与了我们软件的原型设计,我认为沟通是十分重要的,你要知道和你合作的人哪些能做,哪些不能做,哪些怎么做更快,并且要考虑到软件的情况要够多,因为如果在测试阶段出现问题让后端去调整接口是一件很“痛苦”的事情,也影响了项目的进度,而且要明确自己的能力,画饼画大了实现不了也是很伤士气的一件事情,也影响了项目的质量,不如把能力范围的东西做精,

实现阶段

​ 实现阶段最大的能力收获就是对代码规范的认知以及对低级错误的排查还有对难题的克服能力,低级错误的排查是极为重要的,因为在这次团队实践中我被换组了,换组前我发现我负责的部分还存在许多小bug,后来接手的小伙伴告诉我bug的主要原因还是一些低级的错误,例如请求发送时参数的格式大小写,或者是函数没有正确的判断和调用,这些本来都是可以在开发过程中注意到的,所以在第二个小组中开发同样内容时,每次代码打完我都要进行一次排查,对单词的大小写,参数名称的使用,参数的格式,图片的后缀等等等都进行了检查,节省了许多因为低级错误而持续debug的时间,同时在面对难题时一定要讲究冷静处理循序渐进,在第一个小组的开发中我常常这个问题解决不了我就跳过去开发其他的内容,最后导致每个部分都有或多或少的bug并且每次改动还会影响到其他的部分,让人很是心态失衡。第二个小组中我保证每个难题在当前这个部分就要解决,而且一定要冷静!冷静的话你的思维就不会被情绪影响,考虑到解决问题的可能性也就更多,开发过程也顺畅了不少。

测试阶段

​ 收获的能力是学习了微信小程序的相关测试内容,测试工具的使用。

发布阶段

​ 收获的能力是了解了微信小程序的发布流程,发布所需要的材料等等。

四、结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得。

心得:这门课下来最大的心得就是六个字,态度决定一切。我的软件工程课可谓是在坐过山车,从一开始的寒假作业一因为态度不够端正导致自己被倒扣分,到后来的作业二开发的程序因为没有仔细测试是否能够编译而导致跑不了得0分,再到后来结对作业中调整心态端正态度与小伙伴取得优秀作业的好成绩,再到团队项目中态度不断的变化影响自己的编程质量,最后以好的心态交出了两份自己感觉还算不错的答卷,我深刻体会到态度的重要性,认为这门课的最大收获还是在于严谨认真的态度真的可以带来好的结果,希望在未来能够继续坚持。

第二部分 个人技术总结博客

个人技术总结 技术博客标题
概述 微信小程序的promise异步请求
posted @ 2021-06-27 23:16  nafup  阅读(95)  评论(4编辑  收藏  举报