个人作业收官
个人作业收官——软件工程实践总结
一、回望过去
软工实践嘛- -、在我还在读大一的时候,就听说了。当时栋哥在给我们班上C++。栋哥说了一句你们大三还有机会上我的课,软件工程。高冷的补了一句:你们还不一定能选的上呢。- -当时栋哥的小姿态老高老高了。不过转眼到了大二下,栋哥的软工课在他的毒奶之后好像不那么热门。不过在学长学姐的安利下我还是坚持选择了栋哥的软工实践。额额额,好像扯远了,陈年旧事都提起了。
对比现在的你和开学初博客开篇的课程目标和期待
当初
项目完成后学习到的能力的预期
对安卓的知识有更加深刻的理解和认识。特别是安卓四大组件的应用、活动碎片的生命周期等。
锻炼自己的逻辑思维,使自己的思维更清晰。
提高编码能力以及编码的规范性,写出结构清晰,规范易读的代码.
提高与团队成员沟通交流的能力。
对项目课程的期望
- 希望自己的能力能够有所提高,学到更多的知识,积累项目开发的经验
- 希望通过这次的软工实践的项目课程,能够提高自己的团队配合的能力。
对项目的愿景规划
- 我们开发的app有实用价值,能够方便人们的生活
- 如栋哥所说,有“情怀”,让我们的app在交互的时候更具人性化。
如今
- 通过这次开发学生导师互选系统安卓端,基本达到了我当初对学习到的能力的预期。对安卓的开发懂得更多的知识。举个栗子:向队友学习到了okhttp的使用、android原生的侧滑菜单栏的实现、gson解析json数据,当然还有我自己摸索的一个常用的功能——搜索。搜索是我网上找的开源框架导入我们的项目的。刚开始不会用别人的框架,硬是捣鼓了两三天。到最后实在是没办法只能硬着头皮去看一下人家的源码。以前都没想过去看源码,不过这次尝试了一下,有种体会,就是要多看别人的源码,看看别人是怎么实现的,而且开源框架很多都是大神写的,人家的代码规范,实现的逻辑是我们这些小菜鸟应该要学习的。
- 代码规范,自我感觉还是挺好的。规规矩矩来,一样的套路- -、每个函数之前都有备注。不过也有做得不太好的小点就是每个activity没有备注一下这个activity是做什么用的。看了同组的瑞钰写的,才发现自己这一小点没做好,争取下次做项目改掉。
- 至于团队的配合嘛,可能不那么尽如人意,但是总体来说还是可以。可能也是我带的不够好吧,没有很好的磨合大家,所以做出反思。然后自己也参与编码,导致时间没有全心全意的投入项目管控上面。所以、如栋哥所说,组长还是编码少一点的好。
- 谈谈以前做项目没有体会的过程。我现在想想,栋哥前期花那么的时间让我们做需求分析、原型设计是很重要的。特别是原型设计,后期编码很经常就要回到原型上面来。有时候会感觉没有原型的参考,无法进行下一步。原型没有做好,没有做清楚,开发起来就很棘手。
- 对于博客,当初还不懂md是什么呢。在栋哥的强制要求下,学了一下!没错爱不释手了- -。而我目前对博客认识的只停留在每次学到一个东西可以记录下来,为了以后自己再用到的时候可以随时翻阅,毕竟我自己的记忆力没有那么强。不过等到我可以装逼的时候,我更想在自己的博客上面写一下有内涵的东西,跟大家一起分享学习。
- 最后就是对整个软件开发的流程有了更深的理解。
总结这门课程的实践给你带来的提升
学习和使用新的软件
-
android studio(安卓死丢丢)
-
Typora(来自小乔的推荐)
-
processOn这个网站很不错的,思维导图、类图甚至原型设计都可以哦。关键是不用下载不用安装,让我特别喜欢。
-
leangoo,项目协同的工具,我们alpha、beta版本的燃尽图都是采用它生成的。同上是一个网站,使用起来很方便。
学习和使用新的工具
- 这次体会最深刻的当然是git的使用了!默默的告诉自己,熟练使用图形化的工具的同时一定一定要回归命令行!熟练使用git命令行的才是大神。
- md咯- -、排版比Word强多了。而且可以专注码字,效率杠杠的。
学习和掌握的新语言、新平台
- android开发暑假接触过,不过那时候没有这次理解的深刻。
统计一下,在软工实践上完成了多少行代码
不好统计呀- -。2千?3千?应该有吧。不过有很多是冗余的代码。我决定利用寒假的时间好好重构一下。
学习和掌握的新方法
- 结对编程。真心感觉这个方法很好!当一个人在编码的时候,队友在一旁看着,可以帮忙纠错。累了就队友上。
- 团队一起在活动室开发:这是我们小组的规定,冲刺的时候,每天都集中在一起。有问题当面可以提出来。
其他提升
和客户沟通交流的能力。
二、自己的人月神话
项目实践中的经验总结
- 作为组长php后台的代码我审核的很少,可以说几乎都没审核php的代码。一个是我自己不懂php代码,另一个是小黄同学挺给力的,各个方面都做得不错,所以我就要求他自己做好自我review再提交。并且让他带智强学习php方面的知识。很不错!他也带的很好,让我省心了很多。
- 大部分的时间都花在了android端的代码审核。发现看别人的代码是一个痛并快乐着的过程吧。一方面是可以看着别人的代码学习知识,但是也有个问题是,队友有的代码也不是很规范。所以会要求队友修改,可能要求多了会烦躁,所以团队之间会有小摩擦。
- 还有一个就是作为组长,我还要修炼修炼。对项目的把控做得不是很好,虽然到最后还是把项目做完了,但是过程可能没有那么轻松愉快。哪些时间点要完成哪些工作,还有分工上面有待提高
- 要懂得知人,用人。(栋哥指导的- -,表示下次再做项目,我一定要像栋哥说的那样,站在另一个角度,予以一些满足。)
实例/例证结合的分析
alpha版本的时候android端的分工没有那么明确,导致了队友间做了重复的工作,效率不高。
三、建议
- 选栋哥的软工、软工实践不亏。
- 没有做过项目的一定要选栋哥的实践!
- 基础还是蛮重要的,如果学安卓开发,java的那些知识点还是得搞清楚一下,比如多线程之类的。还有内部类啊,像我写着写着new一个内部类都不会了。
- 还有多看几遍第一行代码,android入门书籍。很基础!
- 多看看别人优秀的代码。有时间当然可以阅读阅读源码。
- 三个臭皮匠赛过诸葛亮。
四、团队成长
萌芽
刚开始组队的时候,我们打算做一个打赌的软件。不过在评审之后,栋哥给我们建议别反人类、反人性设计。所以后面考虑了一下就做学生导师双向选择这个系统。
**磨合 **
alpha版本的时候分工不细致,队友间有做了重复的工作。然后git提交出了一些问题,引燃了团队之间的矛盾,所以alpha版本推倒了一次,让队里的大神重新写了个框架,然后我们一起按照栋哥安利的那种方式,分层,每个人只负责一个层的代码。不过后面好像还是跑偏了- -。又回到了分模块的那种模式去了。
**规范 **
在Beta版本中,我参与编码就少了。主要负责一些自动化测试的代码、博客、项目管控、审核android端的代码,以及教毛仲杰同学一些自动化测试的代码。整体来说代码还是相对规范的。
**创造 **
这次的团队合作还是给了我很多经验的。让我再一次体会了团队开发中沟通、理解、合作的重要性。
五、代码质量
由于期末考鸭梨真的好大好大,只能粗略看看论文。
我自己感觉自己在写java和xml代码的时候还是比较规范的。但是设计写menu文件、style文件的时候,自己就会一团糟,写得比较乱。一方面可能是比较少涉及这方面的UI的开发之类的。所以有机会好好研究一下,好好想想怎么规范。
六、怎样证明你学会了软件工程
- 首先当然是能够理解用户的需求。有句话叫做"万事开头难"。最难的也是最重要的。要理解用户的需求,并且要理清楚,否则开发到一半,发现跟当初的用户需求不一致,那么面临的可能就是当初的活都白干了,白忙活了一场。
- 我们是一个团队。通过这次android端的互选系统,我感受到了,一个人是绝对绝对完成不了这种项目的。所以就需要团队的合作。而团队的合作也是需要磨合的,通过燃尽图等协同工具可以掌控整个项目的进度。通过每日的站立式会议又能够了解队友间彼此的进度以及分享一些技术上面的干货。
- 工具的使用,Git我只想给它膝盖!还有就是android的可视化工具也是很赞的,能够提高开发的效率。
- 后期的维护:这只是开始,并不是结束。如栋哥说的,软件的开发只占过程中的30%,70%是维护。所以接下来的时间,可能我寒假都得贡献给我的互选系统了。呜呜呜---
七、自我介绍
陈逸超,性别男,爱好女。来自福州大学数学与计算机科学学院计算机五班。很开心(其实我说了反话- -在紧张的期末的时间里,还深爱着我的软工实践,到这里我已经码了3457个字了)通过我的不懈努力终于选上了栋哥的软工实践(- -当初投分数的时候可是投得老高老高了)。这次的软工实践让我经历了很多。分享一下这次的开心吧:通了四次宵Orz--、几乎数据挖掘的课全翘了、和队友吵架了。回头想想还是别有一番滋味啦。
安利自己一波鸡汤,革命尚未成功,同志仍需努力。