“忆苦思甜”,这一路很值得

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

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

课程回顾与总结

以前提问题的博客链接(由于当时没完成第二次个人作业,在这里对于第一次作业中提出的问题解答,并谈谈目前为止对于软件工程一些问题的理解)

对自己曾经提出的问题进行解答

问题一:在团队协作中,大家能力不同,思维方式不同,如何才能让分工更加合理,让项目推进更快。

  • 经历了结对编程以及α冲刺与β冲刺,我也算是初步进行了系统且合理的团队协作编程。在此之前确实想不到,几个思维能力都不同的人在一起如何做好一件事,甚至是用代码构建一个项目。团队作业后我才明白只要安排得当没有什么不可能。首先团队协作必定离不开一位负责且善于组织的组长。接下来就看分工了,我个人更加偏向按照个人实力以及擅长方向分工,因为做自己擅长的和喜欢的无疑会效率高。除此外每个组员都有团队合作意识,互帮互助,也就是团队凝聚力,这应该才是项目成功推进的必备因素。

问题二:在面对一个新的项目时,如何预估自己是否有能力完成,或者说从何下手,如何确定自己目前掌握的技术是否足以完成此项目。

  • 结合个人的团队编程经历,现在我任然清晰记得在α冲刺我的学习经历与变化。得知我们小组的前端工作要用vue框架,然后从完全没有接触过,到自学到一头雾水到逐渐有成色,再到最终做出成果;一路过来从一开始的迷茫无助到成功时的喜悦,心路变化很坎坷。但是我也发现了,没有什么是学不会的,哪怕你多么零基础,只要你肯学那么肯定可以学会。所以当面对一个新的项目时,做的不是质疑自己能不能完成,而是要想自己完成需要学习哪些技术,学习成本与时间开销是多少,要计划学习用多少时间,开发用多少时间。只要做的准备足够充分,那么到时候开发的时候就会更加顺畅。

问题三:面对过于庞大的代码时,如何让每一块代码都起到最高效的作用同时保证项目的安全性。

  • 结合个人经验我觉得主要有两点。一是要做好测试工作。学习完软件质量测试以及软件工程相关章节后,我才知道在实际开发中软件测试有多么重要。历史上重大项目由于一个小bug而导致系统完全崩溃的实例比比皆是,在我们个人编程时也会有同感。拿我自己说,我一开始没有养成测试代码的习惯,都是一写完就运行,页面显示没啥问题就去找后端对接。有一次对接时,接口路径,传入参数,代码逻辑啥的都没有错误,但是就是和后端无法成功交互。两个人凑一起找了好久最终才发现原来我的一个参数名多打了个字母。从那以后我每次都会先自己在浏览器上测试各种数据,确保无误后在和后端对接,这样既能保证代码准确性,还节省了双方的时间。从这个问题也能引出第二点,那就是有良好的代码编写习惯。要严格按照代码规范书来写,在团队编程中我们确实也经历了个别同学没有按照代码规范书的来,导致对接工作出了很多问题。所以开发越是庞大的的项目时,就越得规范,谨慎,只有每个环节都做的足够细致规范,那么对接环节自然会轻松很多。

(此后的问题是现阶段的我对一些新问题的看法)
问题四:合作项目中精通一门技术重要,还是做一个全栈,啥都会一点更重要。

  • 这这次的团队编程过程中,这两类同学我都有碰见过。出现的问题是,全栈同学无论属不属于自己的任务都要负责去考虑去解决问题,而精通一门技术的同学早早完成了自己的任务。因为我个人偏向于分工时按照个人擅长与兴趣分工,所以我认为在这种分工模式下精通一门技术的同学更加重要。因为分工是明确的,只有你技术足够强,你才能高效快速地完成工作,甚至可以去帮助负责相同部分的队友。这样也避免了全栈同学既要操心前端还要操心后端甚至连产品规划也离不开他的情况。大家的工作量都差不多,就不会出现有人摸鱼而有人要包揽全部的情况了。

问题五:团队编程,大家在一起同时编程效果就会好吗?就会起到监督作用吗?

  • 通过个人经历我觉得是这样的。在一起编程的时候确实效率提高了不少,摸鱼的情况也大大减少。在遇到问题时还可以和大家一起讨论,增进小组内感情。我个人觉得这是一个好的方法。

软件工程实践确实是从软件编写以及工程推进两方面对我们的综合考察,从各个阶段丰富了我的认知

需求阶段:

  • 通过实际项目的开发,我才知道这个看似没有啥技术含量的环节,决定了你未来项目的开发意义和发展前景。单红老师当时说过一句话我至今印象深刻,“开发就是要做出有用的东西,如果人家不用你做的再好人家不用不是闲的。”我们团队当时缺乏调研,按照我们个人思维决定我们开发二手交易网站,后来被老师否决。当时还很不理解,后来自己去了解后发现确实有很多前人做了这个项目且都失败了,不是说他们做出的东西不好,而是针对大学生这个群体,这种二手交易平台各个方面确实存在很大问题。这就是需求分析的重要性,有需求才有开发。

设计阶段:

  • 这一部分我学会了使用原型工具对项目进行初步构建,对于一些之前过于偏执,自认为美观的界面设计上也有了新的认识。同时对用功能接口的设计思维也大大改变。

实现阶段:

  • 最大的收获就是学习了vue框架。不得不说确实很方便而且完全颠覆了我对web前端开发的认识。也让我接受了这种崭新的组件化的编程思想。

测试阶段:

  • 让我认识到了软件测试的重要性。改掉了我从不做测试,写完代码就急于对接的坏毛病。同时通过他人对自己代码进行测试,并且虚心接受他人的看法观点这种方式也帮助我完成了许多工作。

发布阶段:

  • 虽然自己没有参与到部署服务器的工作,但是利用github随时提交代码,完成issue的这种编程方式也让我学到了很多,也体会到了这样协同工作的便利。

心得

  • 不知不觉软件工程实践已经接近尾声,从一开始个人的孤军奋战,到后来两个人结对同行再到最后九个人的共同奋进,一路走来我受益匪浅。这无疑给我留下了一个难忘的记忆,在这里先感谢一下我的队友们,谢谢大家互相帮助,在我遇到困难时细心帮助我,缺了任何一个人的努力都不会有我们这次的成果。在这个过程中我最大的遗憾就是由于一些个人原因,漏交了两次个人作业。除此之外这门课程让我发现了很多平时没有暴露出来的问题。经过团队协作我意识到自己技术真的很是欠缺,以后这方面要多下功夫才行。在这个过程中,我觉得我最大的收获就是这用一种全新的方式vue来写前端代码,尽管一开始自学的时候并不顺利,这种组件化的编程方式无疑让我适应了许久,也遭遇了许多难题。但是当我真正学会它并且可以使用它来完成项目时,一切都是值得的。

个人技术总结

posted @ 2021-06-28 17:56  coding曼巴  阅读(92)  评论(6编辑  收藏  举报