一、请参考第一次作业,当初你对课程的承诺和期望都兑现了吗?
基本上都实现了,因为我以前也不是软件工程专业的,也不知道这门课具体是怎么样的,所以当初是抱着好奇的心态报了这门课。在上完这门课后,我发现收获还是蛮多的,特别是组队动手实践这一块,以前从未有过这种经历,所以还是感觉很有趣的,也结识了好几个小伙伴,也学会了如何团队协作。
二、总结这门课程的实践给你带来的提升,包括
1.学习和使用的新软件
Qt。
2.学习和使用的新工具
github:一个很强大的项目管理工具,以前只用过github下载一些源码,但是这次课程中还学会了使用github来管理项目。
博客园:以前只是看别人博客,但没有自己写过博客。这次使用博客园来记录自己在学习中的成长过程还是很有趣的。
3.学习和掌握的新语言、新平台
虽然Qt也是属于c++,只不过是把界面部分封装起来方便开发者使用,而且在组队项目中我也不是负责做界面的,但是我其实也有去稍微学下Qt,感觉用来做界面很方便。
4.统计一下,你在这门软件工程实践中,完成了多少行的代码
在个人项目中大概有500+,结对项目大概有500+,团队项目2800+。
5.学习和掌握的新方法
1.单元测试:写完程序后,要去测试一下程序的性能和其它可能潜在的bug,不能输出正确了就不再去管它。
6.其他的提升
- 学会如何进行团队协作,出现问题时该如何协调解决。
- 团队成员之间相互学习,对彼此的代码提出改进的建议,完善自身没发现的地方。
三、项目实践中的经验总结+实例分析
- 在个人项目中,由于个人代码风格有些不好,虽然功能实现了,但是到要写博客时,发现代码有点混乱,不知道怎么写到博客中去,结果又返回去修改代码,整理出像样的代码结构出来。所以说平时要养成好的编程风格。
- 在结对项目中,由于赶上国庆放假,和搭档没有及时沟通好,结果国庆回来时发现与彼此设想的方案有很大出入,结果花了不少时间协调修改,才把代码赶出来。所以说在与别人合作过程中一定要及时沟通,这样可以少走一些弯路。
- 在团队项目中,我们的项目分成客户端界面-客户端逻辑-服务端逻辑-数据库及数据库接口,而我负责客户端逻辑-服务端逻辑,因为我们项目要用c++来写,所以很多东西都要自己封装,因此从底层开始要逐层封装,这样在最上层才能轻松。再加上我写的处于中间,所以又要与负责客户端及数据库的同学进行沟通,由于一开始没有定好格式,导致数据在通过socket传输时出现了问题,后来协调了一下才解决,所以说,在分工合作时,对接的数据格式要事先定好,不然后面还要浪费时间改。
四、 分析一下自己所处的团队。《构建之法》上说团队的发展有几个阶段,你的团队都经历过么,最后到达了“创造”阶段了么?
萌芽:一开始我们是打算写web客户端的,但是由于我们都是选择c++,考虑到用c++在两周编写web后端有些不现实,所以做成了PC软件了。
磨合:分配好每个人的任务,由于上课和其他事情,所以还要协调好时间问题。
规范:因为我们是分成三个互不干扰的代码部分,彼此之间提供接口,因此规范很重要,需要对每个调用接口做规范说明,才能让调用者知道如何使用这套接口。
创造:虽然我们的软件做出来可能看上去效果一般,但是还是我们根据日常生活中的体验想出来的创意。
五、你对课程设计(授课内容、方式、作业内容)有什么建议吗?另外,作为学长/姐的你,对后面的学弟学妹们有什么建议?
- 对这门课的建议:因为每个人擅长和感兴趣的都不一样,所以我建议说不要每周都布置一份作业,所有人都去完成同一份作业,而是布置几个不同方向、类别的作业,由同学去挑选自己感兴趣的作业来做,这样同学的积极性会更高。
- 对于以后的学弟学妹我的建议是代码能力要通过不断的动手实践才能提高,光看资料是没用的。
六、你对助教老师的工作可以哪些意见和建议?
我觉得上课时可以添加一个环节,让老师挑选出每周作业做的最好或者左右特色的同学上台演示他们的作业,因为平时同学们很少去看其他同学的博客,所以不清楚别人做的怎么样。而增添了这样一个环节后可以让同学之间互相学习,同时可以提高同学学习的积极性。