合作与学习---软件工程实践总结

这个作业属于哪个课程福州大学2023软件工程
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标软件工程实践总结&个人技术博客
其他参考文献《构建之法》

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

1.1 寒假时的问题思考

寒假时的问题思考
Q1:如何区分一个好的程序员和不好的程序员呢

A1:在开始实践之前,我认为区分一个好的程序员和不好的程序员可能涉及以下几个方面:编程技能、解决问题的能力、沟通与团队合作以及代码质量。在完成本次软工实践后,我仍然觉得这几个方面还是用于区分二者的关键点。而在这几点之中,我认为编程技能和沟通能力是最关键的,编程技能保证了你可以按时按质量的完成任务,而好的沟通能力可以提高效率,更好地配合团队中的其他人完成任务。在本次的团队编程中,我们组在前期的任务分配、接口文档编写等工作中所有人积极沟通,有问题及时提出,后期开发的工作中对于文档的问题也及时反馈,建立在这样的工作基础上,我们组项目进展非常迅速,顺利的完成了任务。

Q2:我都是大学生了,上课还要认真听老师讲课么?

A2:其实还是要好好听课的,可能你会觉得老师上课所讲的的技术都是基础且过时的,但技术的发展往往是站在巨人的肩膀上的,当你对一个技术的前置技术了解充分后,可以帮助你更好的理解学习这个技术。

Q3: 程序员是否有必要为满足小部分人的需求去做软件,或者为软件添加某些功能?

A3:还是要看这个功能的具体价值。如果这个功能没有什么特别大的用处,或者对于这个功能的需求人数很少,我们不可能说投入大量时间和精力去开发,最多最多对这个功能完成一个简单版本,然后等待后续反馈。就比如说这次的Tomato Time项目中奖杯这个功能,其实作用并不是很大,仅仅只是用于展示,没有什么具体价值,但是在初期原型设计的时候,有组员提出想要有这样的一个功能,可以把今天的专注时长具体化成一个物品,这样子可以比较直观的反映出今天的专注情况,针对这样的情况,我们就做了一个简单的根据时长获取奖杯的功能来满足这部分人群的需求。

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

A4:还是那句话,不断地学习,但是不要浅尝辄止地学习!在本次项目的开发中,我是负责后端代码编写的,由于我有学习过SSM相关的内容,在代码编写中其实没有遇到什么大的问题,很多时候都是各种小问题调试半天,比如说数据库查询到的时间戳数据如何将其转换为具体的时间返回给前端,就这一个小小的转换方法,我在网上查阅资料的时候就有很多解决办法,例如添加注解,使用日期类进行转换等等。虽然我对SSM的整体使用没有什么问题,但是像这种细致的小问题处理的还是不太好,就有点浅尝辄止地学习了。故在我看来,学的越快不一定是一件好事,在接受一些新知识后,一定要更深入地学习下去,不然什么都只是学个表面,竞争力也不会有太大提升。

Q5:软件的行为和用户的期望值不一样,就一定是 Bug 吗?

A5:不一定。软件的行为和用户的期望值不一致并不一定意味着存在 Bug。我觉得Bug应该是偏向于开发过程中逻辑出错之类的问题。比如说Tomato Time项目中一个用户完成了待办事务后应该让这个事务从代办列表中去掉呢还是交个用户手动删除呢,这个我们开发中不可能一概而论的,我们满足了希望完成后自动删去这个事务的用户的需求,那另外不希望这么做的用户就能说这是个BUG吗?故我还是认为Bug应该是偏向于开发过程中逻辑出错之类的问题。

1.2 实践中学习知识点
  • 需求

在需求分析阶段,一开始总想着功能越多越全面越好,故一开始的功能点设想是比现在多的,但是也有很多无用功能,比如说一开始想着做空间和论坛,相当于朋友圈和bbs的感觉,但是在后续的组内讨论中,大家一致认为这两个功能高度相似了,没有区分点,后面就合并起来了。这也让我认知到,功能点不是越多越好,而是要精。

  • 设计

在设计阶段。我学会了如何使用墨刀去设计一个初期的原型,便于后续前端开发的参考。而在后端数据库的设计中,我也学习了如何使用触发器进行数据的绑定更新,减少后端接口编写的工作。

  • 实现

我是负责后端接口编写的任务。由于我们组是做微信小程序的开发,故会调用到微信官方的接口,我也是第一次学习了后端代码如何去调用第三方接口,对整个流程有了大致的了解。同时也学会了如何去处理MybatisPlus由于没有配置主键而导致插入数据的主键溢出问题,这个真的是一个很大的坑,由于开发初期没有注意到这一点,导致我们每张表的数据都出现了主键过大的问题,解决起来非常头疼。

  • 测试

在以往的编程中,其实是不怎么接触测试这一方面内容的,一般都是写完,自己能跑通就上线了。在这次团队编程中,也是第一次接触Apifox这样的自动化测试工具,能根据事先设定好的数据集进行一键测试,同时也提供了测试并发的功能,方便了测试工作。

  • 发布

虽然我是负责后端接口编写的,但基本的服务器部署工作还是要掌握的(毕竟不可能你更新一个小功能就麻烦一次运维),也方便自己测试功能。在这次的团队编程中,我对docker的基本使用更加熟练,同时也浅浅接触了一下Linux shell脚本的编写,通过编写一个包含了部署所需要的基本指令的脚本,就不用每次都敲一堆指令了,方便了代码的部署任务。

1.3 实践结束后的收获
  • 个人项目阶段

这个阶段的任务比较简单,主要是熟悉了如何获取网站的json文件和Java操作文件的方法,属于是巩固了基础操作,补充了我在json文件方面知识的不足。

  • 结对编程

在结对编程里,我们队伍是采用了前后端分离进行开发,我是负责后端开发的,在这一阶段主要是复习了一下SSM框架的使用,同时也是第一次体验结对编程,体会到了在合作编程中,最重要的是沟通,要提前和前端开发的人员沟通好接口数据格式,这样可以有效的减少后续开发中的问题。

  • 团队编程

在团队编程中,我是小组组长和后端开发人员。作为组长,我需要在作业布置下来后分配好每个人的任务,及时解答团队成员对任务的疑问,这提高了我的沟通能力和协调能力。作为后端开发人员,我对SSM+springboot的使用更加熟练了,在开发中也学会了如何去调用第三方接口,补充了以往知识的不足。在服务器部署方面,对docker的使用更加熟练了,懂得编写dockerfile文件配置程序环境,也学会了编写简单了shell脚本来一行指令部署jar包,方便代码的上下线。

1.4 自我评价
目标评分解释
目标1:理解软件工程师的职业道德规范和实践要求91了解了国情社情民情,理解了软件产品对社会、健康文化等影响,树立了积极向上的软件开发理念。
目标2: 掌握需求分析的全过程88能够熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型。
目标3: 掌握软件开发的全过程87能遵循体系结构设计方法和基本设计原则,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案,
目标4:能够执行从组件到软件系统的技术评测89具备设计模型的评判能力,能够优选设计方案
目标5:遵循软件开发各阶段文档标准89能够使用用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法。
目标6:具有良好的团队意识和合作技能92能够与其他成员开展有效的沟通和协作,能够组织、协调或指挥团队开展工作
目标7: 能够辨别具体软件项目管理中涉及的构成要素86掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置。

第二部分:个人技术总结

MybatisPlus的使用总结
技术概述:
Mybatis-Plus 是 MyBatis 的一个增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 已经封装好了一些 CRUD 方法,因此不需要再写 xml 了,仅仅通过少量配置即可实现单表大部分的CRUD操作。使用时直接调用这些方法就行,可以大大加快开发的效率。

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值