微信开发个人总结
我觉得做好每一次的大作业关键靠两点:1.提早动手,只有在时间充裕的情况下,我们才能更细致的思考问题,把基本任务做到精细,并做出一些加分任务。2.学习新范式,新方法的强烈信念。我们说IT行业的迭代是快速的,很大程度上是因为新框架的不断出现。但要意识到这些新框架背后的设计模式,基本概念都是一致的。不论是Django, Flask, Tornado甚至是Node.js, 它们的url匹配、模板渲染都是一回事。无非是具体的语法有出入罢了。对于这种“工具学习”我们要充满信心。只有充满信心,我们才能克服学习时遇到的困难。而“万事贵熟”,框架用的熟练了,项目自然能出彩。
具体到本次微信开发,很遗憾,我们组并没做到“提早动手”,我觉得这主要是我们两人在效率和时间管理上还有待提高——大家的作业都是一样的多,当我们组刚刚开始写管理员登录功能时,有不少组就已经把功能写完了。不抱怨客观原因,必须从自己身上找原因。但我们组在“学习新方法”方面做得还是不错的。unique_id如何产生?学习一下python的uuid模块。怎么前端显示的时间比我预想的要晚8小时?那就考察一下django 的 timezone和 python的datetime有什么区别,究竟该选用哪个?单元测试怎么写?django.test向你敞开大门......我们总是遇到各种各样的问题,但我们也总有信心把他们解决掉——有群主在,有stackoverflow在,有django,nginx, uwsgi 官方文档在,我们怎么可能解决不掉各种“故障”?我觉得,工程师必须具备的一种素质就是——不论遇到什么困难,你总有一种策略解决它。你的策略也许不是高效的,甚至是弊大于利的,但你有办法!!!
通过本次微信开发的训练,我觉得自己离“合格的工程师”又进了一步。对了,在我写这篇文章的时候,我们组的部署还没有使用Docker,但我还是决定把作业交了之后再尝试这个“工具”。加分肯定是不会有了,但我还是要试试——不就是一个工具吗,总可以搞定的~
再谈谈结对编程带给我的感受。客观地说,我们没有腾出很多时间进行结对编程。时间紧,任务重,我跟队友都是各自完成既定的分工任务(总体来说就是我开发功能,他撰写测试)。但是在我们有限的结对编程时间内,我们还是体会到了结对编程的优越性:我编程的语法错误会被队友在静态检查的过程中指出,我所需要的模块和语法都由队友代劳为我查询。结对编程使我觉得自己在开发的过程中任务不是那么重了,代码码起来速度也更快了——毕竟在一些我不熟悉的部分可以先写伪码,等队友查询完文档后指导我填充就可以了。
每一次的作业都是一种历练,微信抢票应用的开发让我收获颇多。希望自己在大三繁重的编程任务中快快成长起来!