软件工程实践总结&个人技术博客
|这个作业属于哪个课程|2021春软工实践S班|
:---😐:---😐:---:
|这个作业要求在哪里|软件工程实践总结&&个人技术总结|
|这个作业的目标|总结软件工程实践整个阶段的收获|
|其他参考|无|
一、软件工程实践总结——在挑战中提升自己
早期不够重视的“小问题”,与后期对“小问题”的理解。
Q5.在构建之法NABC框架模式中有人提到的“D”推广,指出Delivery是在前人实践后意识到Delivery的重要性,那这个
D是跟开发人员 完全无关的吧,在我的认知中推广似乎和技术层面没什么太大的关系吧.所以书中只是提及一下子,并没
有什么太深刻的意思是吗?
:这个问题算是鄙人刚看构建之法的时候作为一个外行,发自内心最想问的问题。我也确实没想到这个问题,会引来很多大佬,为我答疑解惑。过了四个月经历了,团队编程后,我自己似乎又对这个问题有了自己的见解。7楼的YukioLee早些时候的说法被我本人所证实,由于能力的问题我甚至产生了“自己嫌弃自己软件”这种情绪。俗话说“子不嫌母丑,狗不嫌家贫”我打死也想不到四个月后的自己会这么嫌弃自己参与开发的软件。这直接导致了对软件不自信,怕丢脸,不敢宣传。想必如果真投入市场,做推广的也会和我想的一样吧,这样的产品就是死路一条。所以实际上程序员参与推广“D”了吗?我想是的。而且还是核心的“推广人员”。借口好找,什么要复习考研没时间写,没学过学起来麻烦等等一找一大堆,但就我来说,我觉得导致推广不出去的原因就是软件不行。难怪随着人们对软件质量要求的上升,近些年来才会出现NABC中又多了个D的情况。可能我的想法不够全面,但我所提到的就是我能切身体会的。
软件工程这门学问有很多 “知识点”, 这门课强调 “做中学”——在实践中学习知识点。
:提到这个,我不得不说,软件工程实践这门课完全对得起2.5个学分我觉得算5个学分都不为过。全部都得自己自学。我本以为是如果大家都会技术A例如70%人会技术A则30%的人去学。但我还是太天真了,事实上是哪怕只有10%的人会技术B但只要用到了技术B全部人都得学。从来技术适应团队,而是团队去适应技术。做中学,在这门课中体会的淋漓尽致,我的身边不乏有抱怨这门课花费大时间的人,当然包括我自己。但我觉得这个就是这门课的特色吧,也是为了提前适应将来可能出现的“做中学”
请问你在项目的需求/设计/实现/测试/发布阶段(一共5个阶段)中,每个阶段收获最大的知识或能力是什么?
:说实话在需求阶段,并没有收获太多知识,老实说,需求阶段我完全把自己当成甲方了,要求随便提。硬要说可能就是准备相关知识时候对java编程的掌握吧
:设计阶段:我收获最多的就是我们小组想方设法应用“软件设计模式”中学到的知识,事实上我们小组的软件确实是按照里面的一些例如“单例模式”“状态模式”等设计的,我体会到了将理论转化为实际的满足感。
:实现阶段的测试阶段:我以为我会收获很多的代码编写的能力,但我错了,收获最多的其实是抗压能力。这两个阶段最多的就是争吵,反复的争吵,尤其是两个人都对小组做出巨大贡献的时候(代码量)。互相都不一样退让一步。例如状态更新接口,前端希望后端管理,后端希望前端自己去拓展具体的功能。双方都表示自己工作多到做不完,争的面红耳赤,冷战。测试就更加激烈了,当测试的同学说出bug的时候,写代码的人都不愿意相信先要和测试吵一架,然后确实是有bug也不愿意承认是自己那部分的。这期间我们学到了一个很重要的实用测试“插装测试”全部tostring打印出来谁负责的那部分报空指针就谁负责。期间代码能力测试能力的提升比起抗压能力的提升根本不够看
:发布阶段:由于不是我去演示,但我可以感到理亏,因为确实不如曾经说的那样功能丰富,几乎演示的时候都在和别人的对比中反思自己。硬要说收获,可能就是对批评的虚心接受。但我觉得经历了实现/测试两个阶段的抗压能力之后,我变得特别耐骂了。
在个人项目/结对编程/团队项目的经历,自己的理解或心得
:主要的心得还是来自结对和团队吧,我认为结对就是一个很好的过渡期,从和自己最好的朋友一起结对编程的过程,过渡到不得不照顾一些不熟的成员的团队编码过程。团队作业的队长这个角色至关重要,编程能力要强,管理组织协调的能力还得强。但事实上在大学里往往找不出这种人,俗话说鱼和熊掌不可兼得。会编程不会管理团队松散,“能者多劳”,拧不成一股绳。会管理不会编程,主要代码量贡献者看不到队长的“付出”,队长不能服众。我想明白了抗战时期,为什么八路都要配政委了。因为打仗能力强的团长还需要能笼络人心的政委。一个团队才能团结一致。这也算是我最大的收货,这一点在结对的时候就很难发现,因为毕竟2个和9个还是差挺多