不知道为什么,上了软工有一种之前的课都白学了的感觉。。。。
一.课程内容总结:
1)对比现在的你和开学初博客开篇的课程目标和期待。
软件工程结束了,是时候总结一下了,看着栋哥说去看看之前的期许和现在有什么不同,我才发现要找到我对开始的博客要四页之后了,因为担任组长的缘故,博客写的比较多,可看着这四页的博客,还是有些感动的。
看看当初定下的目标,就能像想起当时写目标时候的犹豫,又怕定太高完成不了,又怕太低没什么意思,而现在看来,还是很有意思的,细细看来,还是有些没有做到的地方:
①最开始说要在这次写一万行代码,但是这次的作业中并没有达到,但是这次课程让我对安卓开发有了很大的兴趣,我和我的小组队员一起报名了几个学校的软件设计大赛,继续向一万行努力。
②说实话,我们小组对于项目冲刺做的还是不够好,也是因为时间太紧,有时候把一天做的事冲了两天,有时候因为学习的关系好几天做的为了凑一天的冲刺而写成一天,我相信在假期我们小组有充分时间开发的时候这种情况会有很大的改善。
③我感觉,我们小组的四个人确实爱上编程了,我们都觉得安卓比之前的C好玩,但是却玩的有些“忘我”,作息时间一塌糊涂。。。。。
④原本以为我能成为一个合格的PM,但是我还差得很多,遇到问题经常不能冷静分析,说话太大声让队友在讨论中很有压力。。。。。
2)总结这门课程的实践给你带来的提升
说了不少的不好,当然我也有不少收获。
1、学习和使用的新软件:
这次软件工程课程,完全是从零开始,我学会了eclipse编写安卓工程,学会了用Axure制作原型模型,用star uml画类图。
2、学习和使用的新工具
js单元测试工具,当然,最重要的就是github的使用,虽然我们到了第一次冲刺第七天才在兄弟小组的帮助下学会了git的使用,但是还是让我们在后面的开发中方便不少,也瞬间觉得我们自己高大上了起来,告别了QQ流,当然,这个是建立在网站能上去的基础上的,几K的上传速度的痛苦只有经历过才懂。
3、学习和掌握的新语言、新平台
原生安卓的开发,从零学到现在。
4、其他的提升。
技能上面的提升是这些,更重要的是心态的改变
①求人不如求己,这是最重要的,很多东西只有掌握到自己手里,才能把知识用到如指臂使的程度,太依赖队友,什么不懂得都无问,其实对于自己一点提升都没有,锻炼自己解决问题的能力,才是关键。
②时间是最重要的,遇到问题千万不要拖延,感觉会出现bug的地方要第一时间去尝试解决,这样就不会出现到了beta版本演示之前一个小时才发现有一个跳转是存在逻辑错误的。
③坚持就是胜利,我们的工作不管有多少,只要坚持下去,不用管结果如何,努力过才懂,让地图运行的哪一刻,只有我们做过的才懂。
二.项目历程--人月神话:
项目开发当中占据了实践课程的绝大部分,从最开始的结对编程,到后来的团队开发,不得不说,都是一段艰难而难忘的回忆,摘录其中一些印象比较深的地方:
1.如何引用一个陌生demo:
在项目实践的过程中,因为是能力有限,需要引用很多现成的demo来实现,但是对于一段陌生的代码,很多函数都不能确定是什么功能,这时候,我就用了一个比较笨的方式,把每一个函数一次注释点,观察每一个函数的功能,找到需要的功能,在我们自己的开发过程中,我对于搜索功能的实现就是用的这个方式。
2.命名问题
在软件开发的过程中,变量的命名是不可避免的,这个时候一个统一的变量命名在团队开发中是必不可少的,我们就因为在最开始的没有一个统一的命名,是的在第一阶段冲刺中途的时候停止了很长一段时间来调整变量命名。
3.不停的搜索
在整个课程过程中,我们会面对很多困难,而互联网就是一个答案库,只要你用心,一定能找到解答,因为一定有人和你遇到过相同的问题,千万不要放弃求知欲,不要放弃希望。
4.git上不仅仅是自己的版本管理工具,上面还有很多开发样例,这个才是一个无形的宝藏,等着大家去发觉。
再说说从团队合作里面收获的一些经验:
1.站立时会议的时间不宜过长,十分钟左右即可,采取站立式会议的就是为了让开会的人能够更集中注意力,但是如果时间过长,成员会很疲惫,而每日任务的分配和总结本来就应该在10分钟左右完成;
2.组长提早拟定好今日主要内容,让成员做好准备,不能开会了才想今天要干什么,让成员干等着。
3.最好在每次会议开始先对上一次会议的内容进行总结,让大家知道现在的效率。
4.项目冲刺安排在连续的一段时间,敲代码,隔得时间越长手越生,最好是一鼓作气,将项目完成好。
5.遇到队员遇到困难,在一定时间内解决不了,组长应该及时召集大家一起解决,之前我们在增加音乐的地方肖阳一个人卡了很久,结果再一次会议之后我们商量了一下五分钟就解决了。
6.每天的任务要分配清晰,不能模棱两可。
7.最后谈一下关于github的使用。github是一个版本管理的工具,由于早期的认识和经验不足,只把它认为是一个像网盘、qq群一样的存储类工具,我们不认为他比前面两种快多少,每次都是直接覆盖上去刷commit次数,知道在alpha冲刺的第七天才在别的队伍的帮助下了解了使用方式,git在网速好的情况下真的比QQ好太多。github最大的优势就在于版本的管理,我们在写项目过程中,会有不断的更新和迭代,每个人负责的部分不一样。也会有很多冲突。如果对于每一个人的修改的代码人工搜索到别人的电脑中,一来工作量很大,二来无法直观看出各个文件之间的差异,而github不仅保留了从项目上传到结束的每个版本,而且可以看到每次修改和更新的内容备注,有了分支管理的功能,在团队开发的时候会更加方便。
git刚刚使用起来确实会有很多按难题,千万不要放弃。等到熟练以后就会感受其中的好处。
三.写给后来的学弟学妹
1.栋哥的课选了后悔,不选更后悔,就像我最开始说的,上了这门课,感觉之前的课都白上了,这节课给我们的锻炼比之前多了不少,当然,每个人的作业也多了不少,我感觉真的不适合在大三开这门课。要是在大二上或者下就开设,我觉得会更好。
2.当你发现你可以选软件工程的时候,在那个假期一定要去学一门可以做项目的语言,因为软件工程不教编程
3.git的使用,不要用git for window,虽然是图形化界面,但是逼格很低,一个专业的程序员是用键盘操作世界的,用命令行的时候才会对git有更深层次的理解。
4.坚持,坚持,在坚持
四.对未来的期许
1.虽然课程结束了,但项目的修改不会停,我们已经用这个参加比赛了,称霸福大的地图不只是说说而已;
2.希望自己在编程能力上会有更大的提升;
3.我和小组的成员参加了别的项目比赛,也接了别的项目,希望PM的角色能做的更好
五.最后的最后
课程结束了,要说遗憾和不舍有很多,不过,我更想说的是感谢,感谢和我一起冲刺了这么久的队友,我们从秋高气爽冲的寒冬腊月,两个月的奋斗让我们收获了成长,收获的喜悦,我们有103吴彦祖肖阳,淡定无比的蔡哥,自称大腿的彦宁,还有身为组长,不过也没什么耐心的我,我们为了共同的目标努力,一起讨论一起学习,这段时间的会议,会成为四年大学生活中不可抹去的一页。We are F4!!!!!!!
当然,还要感谢两位老师,是老师的不辞辛苦,才有了我们这一次十分有意义的课程,感谢栋哥对于软件开发每一步的认真规划,感谢范老师对每一份博客的审核和点评。感谢在这门课上帮助过我的所有人。
软件工程结束了,但是我成为一名专业的程序员的路还长,我会继续努力的!!!