关于结队编程:带UI的小初高数学学习软件的小结
本次结对项目我们的分工不再是一个人写全部,而是队友复用出题算法和解题函数,我负责前端的展示和代码优化,在初期我们打算使用js+servlet完成,先在B站上学习了相关知识点,但是在应用到本项目时,因为前后端的通信写作方式不熟练,进展举步维艰,在调试的时候也没有javaEE 的经验,调试系统bug耗时漫长,之后考虑时间原因我们开始使用Swing组件快速完成,因为原来的个人项目也是java,在代码复用方面只做了以下几点:
- 封装原有的出题函数,明确入口参数,对括号进行优化
- 优化原有的用户类,在无法使用数据库的情况下,增加本地文件保存用户信息
- 对用户注册进行完善,例如原来只是插入用户即可,这次我们对用户名(手机号)进行了规则判断和短信验证码的校验,以及对密码设定有了更加复杂合理的要求
本次结对实现了需求中所有要求,但是还有以下几点,我们没有做到很好
- 没有对javaee进行深入学习和思考,导致在项目开发中一败涂地
- 在前后端开发中,我已以为和队友心有灵犀,就没有事先沟通前后端的数据接口,在最后整合代码中,因为数据接口不一致,改动非常大,几乎重新实现,耗时耗力。就像显示题目,本以为他会给我传题目和四个选项,正确答案的编号即可,但是万万没想到他给我了一个面板组件。
- 在前面开发中,没有先沟通各个组件等变量的命名,导致各有风格,在后期整合中非常痛苦
- 没有协商好任务点,之后回顾发现是我的工作只做了一部分,导致队友优化代码时还得删除无用的函数,深感愧疚
基于以上复用代码和项目经验回顾,我有一下想法和成长:
- 在基础函数实现时,必须做好函数体的注释和主要功能的易拓展考量
- 例如:用户类的实现,就算开始没有考虑到后期各个属性的获取和赋值,也应该单独写类,为之后写set get方法留有余地
- 严格遵循MVC的分层思想,不应该把代码存在一个包下,而是按照实体层,控制层、业务逻辑层与数据访问层 分门别类放好类
- 前后端分类必须要沟通接口,书写接口文档,规范开发流程
浙公网安备 33010602011771号