《软件工程(三)》微信抢票应用 迭代二 个人总结

  通过为期两周的微信抢票应用迭代二,我对一个django工程的各个方面都在后端小学期的基础上有了进一步加深的理解,同时感到一个成功工程的诞生是多么的不易。

  整个工程可大致分为几块内容:功能开发,各种测试、部署上线和文档展示,每个方面都值得一说。

  功能开发方面,完全是参照文档中给出的前后端接口要求和微信网页中“帮助”页面中提到的所有功能,不过一开始对整个工程没有概念,接手框架时对这个庞然大物不知所措。也曾试过想认真阅读代码,可读了一阵之后发现没有任何目的的阅读完全没有效率,尽管大多数代码行的含义一目了然,可还是根本不知道它们组合起来想要干什么。以至于刚一上手连代码在哪里写都不知道。后来向室友各种请教一番之后,终于知道了入门所在,开始以自己的理解编写各种接口,现在想来,完全是照猫画虎,只知道就应该这样写,却不知道写出的接口在哪里用、写的不对会有什么后果。等到实现的接口在手动测试时出现了各种各样问题之后,才逐渐明白哪里调用了这个接口,为什么这个接口需要这些输入,以及这些输入如何给定。实现所有基本功能后,我们又新加入一项celery异步队列提醒用户抢票功能,这同样还是“询问同学+文档+Google+小测试”生成新功能的模式。

  说到各种测试,我主要负责性能测试部分。当时使用了3种配置:本地debug模式,本地release模式和服务器release模式,前两个用于“测试”性能测试是否起到了应有的作用,最后的是实测。刚开始在本地debug模式下的测试让我十分寒心,连100并发的错误率都勉强没有超过10%,更不要说500并发了。后来不知从哪里听说在发布状态下进行性能测试效果会好,于是又赶紧搞部署,好在对没有图形界面的服务器端操作还算顺利,性能测试后效果有了很大提升。再后来想用celery异步队列优化抢票行为,结果发现在好不容易不破坏数据库锁的情况下加入异步队列后,效果反不如从前,在这里耽误了时间也只能算是个教训了。

  部署碰到最大的难题就是静态文件找不到,究其原因还是settings.py中的STATIC_URL设置成了“/”而不是“/static”,导致在nginx.conf中通常使用的"location /static {}"失效,这个bug也是找了好久才找到,本来想改STATIC_URL,但是发现所有的前端模板中都将该路径写死了(而不是使用推荐的{{STATIC_URL}}写法),更改极为不易,因此只得把nginx.conf中的"location /static {}"改为"location /{}",但是这样一来又和本应该包含"uwsgi_pass"和“include”的区块有了冲突,因为该区块也是"location /{}",又加一番修改才算是彻底解决这个问题。

  展示部分,感到短短4分钟内想要把自己完成情况、功能亮点、测试结果、各种踩坑经验教训等统统展示出来,真的有些顾此失彼。纵观各个组的展示连同我们的展示一起,似乎也只有极少数的组能同时将上述内容全部提及但又不敷衍。展示是一门学问,也是一门艺术,尚需好好总结学习。

  我感到这次工程的涉及面极宽极广,从前端网页、手机端微信交互,到后端逻辑处理、数据库访问、加锁,再到服务器部署优化,将一个宏观的网络应用架构投射到一个微观的小项目中,切实体验了一把真正的开发。尽管时间紧张,有些地方不尽如人意但也无法改正,但总的来说收获颇丰,就是此次微信抢票应用开发的最大意义所在。

时间: 2024-10-05 06:24:42

《软件工程(三)》微信抢票应用 迭代二 个人总结的相关文章

不是所有的大作业都叫微信抢票大作业

为时四周的微信抢票大作业终于接近尾声,回首这段时间,真是感慨万千.不是所有的大作业都是微信抢票大作业,能够让人同时体验产品经理.开发工程师.测试工程师.运维工程师四个角色.经过了微信抢票大作业的洗礼,才知道之前对老师上课讲的内容只是一知半解,只有实践才能出真知. 一.搞开发 讲道理,这次大作业的开发工作其实不是很多.因为框架设计的很好,接口也介绍的很详细,只需要按部就班填坑就可以达到基本要求了. 但是既然助教上课都提到了几个优化方案,比如内存型数据库,异步队列等,好奇如我怎能不试呢.于是就开始给

微信抢票之踩坑

明天就是微信抢票的ddl了,总算快熬出头了! 本次软工三大作业,自己花了不少于150小时,可以这是我耗时最多的一个大作业.其实原本我是不打算在一门课的大作业上面花那么多时间的,但是由于刘强老师对我们组期望比较高,群主大腿又实力超群,自己不能拖太多后腿,于是只能用时间去拼成果.最后的结果还算满意.提交的PR节省了全班许多人的宝贵的时间,1800的并发应该是全班最高了(并发提高过程详见群主博客),邮箱验证的安全性的确比info账号密码高很多,功能测试最终也达到了很高的覆盖率(adminpage/vi

软件工程(3)微信抢票总结

软工三的这个大作业需要在前人的框架基础上完成一个工程,和之前其他课程相比,有一种小学期的感觉,只不过并没有小学期那么充足的时间. 十一期间比较颓废,ftp几乎什么都没做,直接导致迭代一的大部分时间内在补ftp的坑.好在组长百忙之中熟悉接口并完成了大部分基础功能,迭代一ddl前粗暴地处理完的抢票逻辑再简单测试一下性能似乎也还算是说得过去. 迭代二我的主要任务是(迭代一未能开始的)功能测试和单元测试.课件的内容非常清晰,但开始时写起来并不顺利.在逐渐熟悉组长写的接口的代码的精妙的思想后,在阅读dja

12306改版之后简单抢票软件的实现(二)完结

上一篇文章讲完了12306网站模拟登陆的部分,看这里 12306改版之后简单抢票软件的实现 现在把后面的步骤全部分析一下. 本文作者 http://www.cnblogs.com/russellwang,转载请标明出处 登录完成要选择买票人的信息,那么怎么获得账户中常用联系人的信息呢?访问这个地址:https://kyfw.12306.cn/otn/confirmPassenger/getPassengerDTOs 访问这个页面需要两个参数, 说一下第二个参数,REPEAT_SUBMIT_TOK

2019抢票攻略

抢票是每年都绕不开的话题,即使我们的基础交通.高铁技术发展迅速,也难以满足现实“迁徙”的需求,这根本的原因是人口众多.东西贫富差距.虽然我们不能从根本问题去解决,但可以为家人.朋友争取到一张更合适的车票. 一.抢票要点 1.总体原则 ,选择的顺序是动车(G.D开头)二等.一等,快车(Z.T)硬卧.硬座,普通车(K)硬卧.硬座:不要选慢车(部分K).临时车(L):当然也不排除有的临时车也很快. 2.无论你的目的地是大站还小站.尽量选择最近的大站购买,大站放票.购票.退票多,机率更大. 3.不要长距

火车票抢票API 根据乘客的车次与座席要求快速订票出票

火车票抢票API 根据乘客的车次与座席要求快速订票出票,具体API文档,包括接口地址.参数及返回示例等可参看:https://www.juhe.cn/docs/api/id/257 一.站站查询,根据发车站.到达站.发车日期等条件查询所有符合条件的车次信息.票价.剩余票量等信息 二.创建抢票单,建议先配置回调地址.须知: 1.抢票单仅支持占座和出票合并通知:2.距离发车时间太近无法抢票,建议距离发车前3小时以上的车次才可创建抢票单:3.在抢票有效时间内会持续抢票,抢票成功后直接出票并推送回调: 

2014年抢票总结

2014年的抢票捡漏工作已经结束,现对这段时间以来的付出和收获进行总结.过程记录:http://www.cnblogs.com/liweis/p/4150354.html 黄牛与普通人对比 黄牛的工作流程:在极好的网络环境和硬件配置下,利用准备的身份证号,使用专门软件购买大量的车票.一旦QQ群里有订单需求,就退票再刷给相应的乘车人. 网络环境:大多数普通人都是使用10M宽带,甚至更低:而黄牛都是使用的100M光纤:我在上班的时候网速还行,但在外还是蹭的别人的网,网速不稳定. 硬件配置:普通人多是

四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享

一.基于HTTPS协议的12306抢票软件设计与实现--实现效果 二.基于HTTPS协议的12306抢票软件设计与实现--相关接口以及数据格式 三.基于HTTPS协议的12306抢票软件设计与实现--垂直查询效果分享 哎,又过春节了,同志们又要抢票回家了,这票卖的可真快啊,瞬间的功夫就没有票了,一票难求啊! 这两天闲着没事,刚好又要抢春节的票了.就把原来写的抢票软件给打开试了一下,发现居然不能查票了.于是就又改了一下. 事实上是改了两下,一是:让原来的程序能够用起来(适应新接口),而是加上了水平

神助攻的抢票软件能否成为真正的惠民神器?

近日,一则"自今年6月起12306只能本人购票"的谣言在网上广泛流传,并引起网友的热议与担忧,随后铁路部门发声辟谣,证实此事纯属谣言,作为中国铁路客户服务中心推出的唯一官方购票软件,大部分人对于铁路12306是"恨不起,爱不得".不可否认,自2011年全国铁路推出网络售票以来,铁路12306确实为用户提供了全新的购票体验,然而,节假日"购票难.一票难求"等问题仍然是每个人心中挥之不去的痛. 眼瞅着高考结束,暑假临近,铁路部门又将进入暑运阶段,并再