首页 > 代码库 > NewView在线面试网站开发感想
NewView在线面试网站开发感想
长达一个多月的终于要结束了,感觉在结对编程地过程中,不仅学会了为你这个项目,最重要的是学会了测试驱动开发,对代码进行完善地性能和功能测试,这样才可以做出一个高质量可用于实用地项目。
本次微信实战开发,包括结对编程地时间,自己大概花了100小时进行开发。我主要负责地部分是功能部分地debug,服务器部署,功能测试和单元测试。测试最终也达到了很高的覆盖率,基本文件覆盖率达到90%。
以下是一些具体地开发感想:
- 框架
- 感觉这次微信实战开发可以很快地写完所有功能,最需要感谢的就是助教所给的代码框架,助教将django的各种配置都已经完成,包括和微信端的接口,前后端的接口,handler都已经写好了,我们只需要在接口上完成功能,这样大大减少了工作量。同时助教还定义好了BaseError,templates,同时写了虽然不是很漂亮但也能用的前端,减少了很多工作量。
- 不过,坏处就是,当一个你很信任的框架中出现了bug,真的还是好坑!!
- 功能+单元测试
- 单元测试主要使用了,django的测试类TestCase,模拟后端进行get和post方法,包括创建测试数据库,设计很多测试用例来正反多个角度测试后端的功能,覆盖了后端的每一个接口。
- 功能测试方面,我学习了selenium,包括phantomjs、expected_conditions、WebDriverWait、By,Keys等,使用django的LiveServerTestCase进行测试,学会了模拟浏览器行为,并且拿到请求去后端的处理,判断之后的浏览器端是否正确。同时使用mock和fixture来构建测试用例,基本测试了所有的用户功能和部分管理员功能。
当然,测试的过程中我们发现了一些bug:
用户在活动结束后仍然可以检票 |
用户查看电子票时,后台没有检查用户id的合法性 |
- 服务器部署
感觉部署上真的花了好多时间,踩了无数的坑,真的要好好讲一下我的心路历程。我使用的是DigitalOcean的服务器,最初在买了服务器不久,就根据上面的教程配置了nginx+gunicorn,当时在静态文件那部分卡了好久,面向stackoverflow终于成功配好,但是后来性能测试那边又说需要uwsgi来配置。服务器部署
于是我又进行了nginx+uwsgi的配置,这次遇到了一个bug,我现在也不知道为什么,好像是我的服务器在创建的时候选的是django项目,默认链接了gunicorn,我把gunicorn卸载了之后,就会报错,装上之后就好了,但是它并没有运行...(黑人问号??),而且但是在allow_host那里也卡了好久。
之后,我还是觉得要用docker,毕竟有3分,于是从11.5晚上7点开始配置,最初没有理解volumes映射的意思,于是在静态文件卡了很久。后来,我去查了docker的文档,学习了一下语法之后,成功的创建了container,images,同时使用docker-compose运行yml,创建了服务。成功跑起来之后,发现访问/a/login就会connection error:time out,有时是no route to host。但是我可以访问到照片的静态文件,于是求助助教,助教给了几个建议,然而还是没有用---感觉配置学起来并不难,但不太明白为什么它总是不成功====,调了整整一个晚上+一个白天,仍然没有work,心累~
这次失败给我的教训是最好一步到位,否则真的好麻烦。而且为什么没有一个写的很详细,有很准确的教程!!助教的ppt真的看不了,感觉是两个人的配置混在了一起==
最后,在这次项目开发过程中,跟赵部长一起开发学习到了很多,希望可以接着合作!
NewView在线面试网站开发感想