软件工程实践总结——终点可能只是中点

222000101白文成 学生 2023-06-06 10:38:43
这个作业属于哪个课程<软件工程-23年春季学期>
这个作业要求在哪里作业要求的链接
这个作业的目标课程回顾与总结、个人技术总结
其他参考文献CSDN、《构建之法》

目录

  • 一、课程回顾与总结
  • 1.对曾经提出问题的解答
  • 2.五个阶段中收获的知识或能力
  • 3.个人项目/结对编程/团队项目中的收获与心得
  • 4.七大课程目标的掌握程度
  • 二、个人技术博客

一、课程回顾与总结

问题思考的博客链接

1.对曾经提出问题的解答

Q1:结对编程是否太理想化了

结对编程并没有太理想化。其一,有些人的技术栈不同,在结对编程的过程中是需要互相弥补的;其二,两个人都写的是不同技术栈的代码,可能不存在代码问题,如在这次结对编程中我的队友负责前端而我负责后端;其三,结对编程队友帮助进行小型项目开发是十分有帮助的,在这次结对编制中我也学到了很多。

Q2:花费时间越多,代表工作量越高吗?

花费的时间越多,并不一定代表工作量越高。就比如在这次的团队项目的图片上传中,我和前端先是用了表单上传所有数据包括图片,然后不得不造成了后期不得不通过for循环发送请求的奇怪代码,最终我们还是决定将图片上传和其他数据上传分成不同的接口。

Q3:如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?

这个问题我的解答还是不变的,如果要跟上软件工程的发展,就是需要不断的学习新的更好用的技术。

Q4:如何区分一个好的程序员和不好的程序员呢?

我认为好的程序员不一定要懂得很多底层的代码,懂得很多底层代码的已经是非常厉害的程序员了。通过这次实践,我认为好的程序员应该能够遵循团队定下来的代码规范,完成自己份内的事情,不给别人添麻烦,应该多多和团队成员进行交流,有不会的技术积极的提问,避免后期还要返工。

Q5:什么人适合看《构建之法》这本书

对于这个问题的观点,我的答案没有什么太大的变化,这本书依旧适合开发过项目或者正在开发项目的人看。

2.五个阶段中收获的知识或能力

需求阶段

需求阶段,我主要负责撰写需求规格说明书和画类图。这个阶段我认为最主要的事情和最好的收获就是如何画好一个类图,因为类图是要贯穿一个项目的始终的,如果一开始设计得不好,可能会导致后期需要返工类图、数据库等等,非常的麻烦。在画类图的过程中,我也学到了很多,比如如何处理一对多、多对多的关系。除了类以外,我也学会了使用NABCD模型对项目进行需求分析。在项目的后期,我也意识到需求规格说明书是非常重要的,它可以帮助前后端进行有效交流也帮助项目以外的人员看懂我们的项目。

设计阶段

设计阶段,我主要负责数据库规范设计,接口设计,类图改进。对于数据库规范设计,我学习到了原来数据库的表名、字段名等等的设计都应该符合一些规范,比如不能将字段名命名为order,否则会产生冲突。而在接口设计部分,我学会了后端人员应该是根据前一阶段设计好的界面原型来进行接口设计,规定好每个接口的功能、传入参数和返回数据。

实现阶段

实现阶段,这个阶段最大的收获就是学会了如何通过GIt进行多人项目开发。这个阶段我的代码能力也得到了显著增强,对于springboot的使用更加的熟练了。同时,在这个阶段我也意识到了前期准备工作如类图设计、接口设计等的重要性,如果这些工作没做好,将会对这个阶段造成很大的影响。

测试阶段

测试阶段,我主要负责测试所有的接口是否能完成设计阶段设计的接口的功能,并进行及时的修改。这个阶段最大的收获就是,有时接口的修改是必要的,因为可能会由于功能的改变、技术的限制等。

发布阶段

发布阶段,我主要负责前后端接口的对接工作和将项目部署到云服务上。在这个阶段,我发现前后端在接接口的过程中可能会遇到很多奇奇怪怪的问题,如跨域问题、token不能传输的问题,这些问题是在测试阶段无法发现的,这就要求程序员有解决bug的能力。同时,在部署服务器的时候,我发现作为一名程序员,要有一份自己的技术文档的重要性,否则之前做过的工作,可能第二次做完全就不记得了。

3.个人项目/结对编程/团队项目中的收获与心得

个人项目

在个人项目中,我收集了澳大利亚网球公开赛的相关数据,并实现了一个能够对赛事数据进行统计的控制台程序,这个项目提升了我的数据收集和处理能力,让我知道了原来数据也是要经过复杂的处理的。

结对编程

这次项目让我明白了,有时候看懂客户需求比自己觉得自己厉害要重要。我和我的队友采用前后端分离的方式完成了第二次项目,但是由于时间问题没有完成附加功能,所以导致了得分不高,我也明白了,只要能完成客户的需求,技术只是工具。

团队项目

第一,我学习到了一个好的项目,代码可能只是其中的一小部分,更重要的应该是前期的准备工作,如设计类图、设计接口、设计原型等等,前期基础的夯实,才能让项目走得长远。第二,一个好的项目光有一两个会写代码的人是远远不够的,总有一些人会偷懒,这也导致了项目进程缓慢达不到预期效果,所有,对于一个大型的团队项目,应该要有合理的制度规则,这样才能使得每个人人尽其才。同时,我也明白了,为什么有些公司强调团队向心力,一个不够团结,没有共同志向的团队,也可能无法走得长久。

4.七大课程目标的掌握程度

目标分数理由
目标181理解并自觉遵守软件工程师的职业道德规范和实践要求,开发的应用也是针对在国情社情民情之上,我们的项目是希望人们可以培养自己的一些爱好,让自己能在在生活的闲暇时间陶冶情操
目标286学会了如何用NABCD模型在项目初期进行需求分析,与团队成员进行有效的沟通和协调,并利用pixso等原型设计软件地建立可运行原型,快速将客户需求具象化
目标389主要负责类图设计、数据库说明书、系统说明书,其中对软件体系结构、类图、数据库规范、代码规范以及接口进行了较为详细的设计,对于软件开发的全过程有较为充分的理解
目标478整体项目采用的设计模式不多,在创新方面也没有什么较大的进步
目标585参与了需求规格说明书、系统设计说明书的主要撰写工作,遵循软件开发各阶段文档标准,对于这一部分有一定的理解
目标682能够与团队成员进行有效的沟通,但有时也会安排不周
目标783根据项目的特点和需求,估算软件规模,针对每个成员的特点合理分配任务及时给予帮助

二、个人技术博客

概述:springboot的图片上传和如何返回给前端

博客链接:个人技术总结——springboot的图片上传和返回图片

...全文
111 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
郭渊伟 助教 2023-06-17
  • 打赏
  • 举报
回复

我发现作为一名程序员,要有一份自己的技术文档的重要性

这是很重要的,希望你在后续开发中多多记录,分享经验

SoftwareTeacher 2023-06-14
  • 打赏
  • 举报
回复

第二,一个好的项目光有一两个会写代码的人是远远不够的,总有一些人会偷懒,这也导致了项目进程缓慢达不到预期效果,


你们制定了什么规则来解决 / 预防这些问题呢?

688

社区成员

发帖
与我相关
我的任务
社区描述
2023年福州大学软件工程实践课程W班的教学社区
软件工程团队开发软件构建 高校 福建省·福州市
社区管理员
  • FZU_SE_teacherW
  • 张书旖
  • 郭渊伟
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧