个人作业----软件工程实践总结
一、回顾过去
上学期吃了栋哥的安利以及学姐学长们的推荐,抱着壮士断腕的决心选了栋哥的软工实践。主要是想学习一下一个正规的软件开发的流程和github的使用,虽然不是很懂为什么要用博客的形式写作业。 /对不起我至今还是没有明白/
其实之前也做过项目,不过代码和流程都很不规范。虽然是几个人合作,但是毫无配合可言,写到最后要对接接口时发现,数据库设计的就很问题,然后就开始从头折腾。
所以想从栋哥的课上体验一下一个团队有计划的、互相配合的开发项目的过程。
选了这门课以后学习了Axure RP这个软件的使用,以前也听过原型设计,但是没想用,觉得在脑子里设计好就好了(或者用笔画)。用了之后才发现原型设计工具的便利,在设计原型过程中会发现很多之前没想到的逻辑问题,还有一些原本认为很简单的功能,会发现要清晰易懂地展示出来也是个大问题。
还有我最想学的github,大一的时候就被学长安利了,也下载安装好了,但是没有和别人一起做过项目/没有和别人一起写过后台,所以一直搁置在电脑里。一个人写的代码也不太想用github托管。 /因为懒/ 使用github托管代码是很方便,但是每次都担心冲突,特别是给前端赋值的时候,害怕赋值的同时前端大大去修改了他的界面;还有两个人改一份controller的时候......心塞到爆炸。还经常pull下来之后发现之前写的东西都不见了,瞬间爆炸.jpg。
还有markdown,排版比word好用,效果简介美观/虽然我不怎么会word/
有次做作业的时候,被婷婷安利了一个在线画图表的网站,折腾了半天发现还是powerpoint好用(并没有在黑什么的意思)
另外这次做项目还学历点PHP,虽然觉得连基础的小项目都没练习直接用框架不太好,但是因为自己拖延症太严重,所以连语法都不怎么熟悉就开始写了,前期走了好多弯路,好在组里有两个有PHP项目经验的人,慢慢地也写出来了
写PHP的时候被婷婷安利了Sublime Text 炒鸡好用,各种好用,毫不犹豫地吃下了安利
Beta版本结束后,粗略地统计了下代码应该是六百行左右,实际写的应该比这个多,因为初期的不熟练以及项目逻辑的不严密,写了很多废掉的代码
整个项目最喜欢的过程就是一堆人一起在活动室敲代码,一起讨论、一起改BUG、一起点外卖、一起吃(组长请的)夜宵
非常喜欢团队合作的氛围,整个过程非常活跃与轻松,即使有困难也不方,压力比一个人敲来的小
二、经验总结
时间安排特别重要,拖延症越重,后期越痛苦
- 刚开始要敲代码的时候我一直拖着,又是看剧又是过双十一的,导致后面站立式会议的时候别人汇报进度都是自己写了什么什么功能,而我都是还在学习
- alpha版本的时候没有空出时间来进行测试,大家写完代码就很开心的休息了,想着没事做了应该,结果想要按照项目流程走一遍的时候就熬到了天亮
- beta版本我们就学乖了,进度很快,测试也提前了,别的队伍熬夜的时候我们早就上床睡觉了
BUG一直存在,只要你有发现BUG的眼睛
- alpha版本测试的时候,我们都觉得自己的功能写好了,只要走一遍流程就好,结果测一个功能出一个BUG,跟踩地雷似的,等一个人负责部分的BUG改完,另一个人负责的部分又出了BUG……
- beta版本测试的时候,大家把自己写的功能提前测试了一遍,觉得应该没问题了,结果一起测试的时候发现自己部分没有写好的地方,会引起别人的BUG
代码的可扩展性十分重要
- 面对一个不知道什么时候会改需求的客户(比如栋哥),要充分保留扩展性,以免到一个重新写大部分代码的境地
客户和你关心的重点丝毫不一样
- 项目拿去给教务处老师时候,想要演示一遍流程给她看,结果她毫不在意,只关心最终的导出结果是否正确(还顺便改了下需求!!!!!!!!!!)
三、给下一届
软工实践是个神坑,但是要是用心做收获非常大,把课余的时间用在学习软件架构、敲代码、团队沟通上面,总比在宿舍睡觉、看剧、打游戏好得多。
栋哥的实践尤其坑,但是好在辛苦的都是前期,期末的时候舍友还在敲软工你就可以复习啦
虽然栋哥的实践坑,但是学到的东西也多,比如gayhub、markdown
听说下一届要强制拆一个队员出去,希望学弟学妹们不要因此打起来
如果有一个从学长学姐那边传下来的项目,不要接
四、团队发展
- 萌芽阶段
刚开始认识的时候,大家还维持这(表面上的)客气,彼此互夸大腿(似乎现在还在干这种事)- 磨合阶段
确定选题的时候别扭了一阵,大家彼此不喜欢对方的选题,曾经在活动室僵持到凌晨一两点
要转去做网站的时候,PM不太乐意,觉得我们组的优势在安卓,然后就怼了起来- 规范阶段
确定选题后,最大的冲突没有了,大家开始听从PM的分工合作起来- 创造阶段
我觉得我们团队到达了这个阶段,或许在alpha版本还有些不协调,但是在beta版本的时候,我们的分工、合作已经十分完善,不仅是项目进度完成的快,团队内的气氛也很和谐与活跃- 解体阶段
感觉没那么快的样子,比较我们的项目还要给15级以及以后的小盆友用,还要负责维护
五、读书笔记
论文:Code quality analysis in open source software development
这次写代码比以前都更加规范,团队有统一的编码规范,自己也就遵守着这个去做
命名也没有以前那么随意了,不会用一些拼音之类的东西
还不合格的就是注释不够多吧,因为中途改过一次逻辑,有时候翻看自己前一阶段写的代码回发现连这个方法是用来干什么的都不知道
自我感觉代码的可读性、高效性还行;可靠性一般,偶尔会出现难以言喻的蜜汁BUG;维护性和移植性不太好,很多地方都写死了,换句话说我写的代码在这个系统可以好好运行,换一个类似的系统可能要改动很多地方
六、团队合作
alpha版本和beta版本的燃尽图:
gayhub上面的issues:
我们团队的任务和进度都在github上面发布,组长定期人工催促,每个人都有一定的代码量,不会出现一个大腿做完大部分工作的情况。熬夜情况也很可观,除了alpha版本发布前期和第一次在活动室敲代码到两点,剩下都没有熬夜
七、自我介绍
一心渴望自助餐券//其实真的很好奇福州最好的自助餐到底是哪一家
//其实记不住我也没什么关系,我会记住老师(期末给的分数)的
//做完软工感觉自己的痘更多了
八、个性发挥
沉迷代码,毫无个性