软件工程课程总结
软件工程课程总结
个人项目与结对项目
说实话这两个项目我都忘得七七八八了,只知道在这两次作业里我c++ STL库用得更熟练了,也尝试了一些c++得高级特性(模版类和抽象类)。隐约记得个人作业统计词频好像每个人的统计结果都不一致,焦头烂额了半天;结对作业我和结对的同学合作得很愉快。当然这里简单轻松的合作也就为我之后的团队项目合作困境埋下了伏笔。
团队项目
对于一个团队而言,突出的个人并不是很重要,重要的是规范与合作。
我本来是一个只着重技术和能力的人,觉得其他一切都是浮于表面的、虚的,没有实力作底子一切都是假的。固然这有一定的正确性,但当我真正面对一个团队任务时,我才知道三个会合作的臭皮匠的确能比过诸葛亮。
项目刚开始,大二的同学们几乎什么都不会,所有任务都是我和大三的另一个同学完成。一开始我还是激情满满地选技术学技术,但我也不是什么圣人,当我得知和我一起做后端的大二的同学什么都不会(我选了flask作为后端框架,而当时他不会python不会linux不会数据库)而且似乎并没有在努力追赶的时候,我的内心就波动了起来。
至于中期大家普遍情绪低落,甚至alpha版本时都没有一个能用的app做出来,当然中间还夹杂着对老师的不满等等,这些小情绪现在看来似乎可笑然而当时却是真实存在的。我自己有,我也能感受到组员有。当时每个人的节拍似乎都不在点上,就是合作不到一起去。为此到最后也不得不采取了规范的软件工程开发模式(可能还是不太规范),也算是不到黄河不死心吧。
而最后大家一起努力冲刺的阶段,大家都开始努力地干活。虽然大二的同学还是不太会debug碰到问题还需要帮着解决(由于时差我经常从晚上9点帮着debug干到凌晨三四点甚至更晚)但有人一起做的感觉确实给人很大的鼓舞。合作在精神上就给人不一样的感觉。
至于规范,我们却是从一开始就受益的。我负责的是后端,在实现了基本的http和数据库操作之后,我没有就此直接将代码用于实际,而是不断去规范代码,合理组织结构,必要的地方用更高级的工具封装等等,这让之后大二同学着手写代码时方便了不少,至少写出的代码逻辑简单不啰嗦,而且出错的概率也更低。同时,高级的工具往往自带了一些功能,一些可能的安全问题(例如cookie,注入等)就不需要我考虑太多。
Android端的代码也十分规范。当然我对此的了解不是很多,但后期由于Android端的开发工作量实在是太大,在后端稳定的前提下我也尝试着去帮忙,顺着清晰的代码逻辑很快也就上手了。
谈谈课堂
软工的课堂相对于其他学科的课堂有很大区别,甚至可以说有点像文科。尽管布置的课后任务都是代码工作,但课堂上讲的都是管理规范,开发规范,代码规范等等,不仅对我们今后的工作上有帮助,也给我们开拓了较高的视野(尽管可能老师讲的会有点无聊,,)
最后
讲了这么多似乎没有什么技术性的东西,因为我不想在总结里放入过多的技术性内容,技术这种东西大家现在不会将来也迟早都要学会。也不太想讲结果,因为最后这个app做得甚至不能说差强人意,我闭着眼睛都能随手指出不足之处和诸多缺陷。我想这门课给我带来的经历才是最宝贵的,不仅收获了经验,还有一个个随着课堂与项目进展的故事。