zoukankan      html  css  js  c++  java
  • 微信项目个人总结

    微信开发总结报告

    为期四个星期的微信开发项目今天终于结束了。这对于我来说是一次非常难忘的经历。我也从中学习了很多经验。

    首先是迭代一当中的结对编程环节,之前对那方面进行过了一次总结,在这里可以查看。

    当然,在迭代一当中,还点了一颗科技树,叫做视频剪辑。我第一次使用 iMovie,也是了解了很多相关的知识,成功的剪辑出一部片子花费了很长时间,很多精力,但是成就感十足。

    迭代二主要是进行单元测试、功能测试和性能测试。

    其中遇到了一些问题,在这里做一个总结。

    首先是数据库加锁的问题,Django 帮我们很方便的提供了一种多线程对数据库加锁的方法,使用 transaction.atomic()

    1         with transaction.atomic():
    2             activity = delay_op(*args)
    3             # Time check
    4             assert_logic(activity.end_time>now, "很抱歉,活动已经结束。")
    5             # Check ticket existance
    6             try:
    7                 ticket = Ticket.objects.get(activity=activity, user=self.user)
    8             except ObjectDoesNotExist:
    9                 return self.reply_text("很抱歉,你没有这次活动的票。")

    可以看到,把需要保证数据库一致性的代码放在 with transaction.atomic() 的作用域里,就可以保证操作的原子性。通过这个操作,我们的 16 个进程的工程也就没再出现过数据库错误了。

    而且我们发现随着进程数的增加,抗压能力也逐渐增加,但是超过16个进程的时候会出现衰减,我们认为它和进程占用了过多的内存和切换上下文所消耗的CPU资源有关。

    总之,这次项目是两人组队,我和我的队友合作感觉还是有一定的默契的,分工也比较明确,结对编程的部分配合的效率也很高。之后的项目会是四个人组队,不知道能不能把这作业中的锻炼应用起来。

  • 相关阅读:
    python操作MYSQL时防止SQL注入
    防止SQL注入的一些解决方法
    Gitbook 学习链接
    MySQL_编码utf8_bin和utf8_general_ci的区别
    使用linux脚本shell检查大数据各节点服务是否运行正常
    shell脚本监测elasticsearch集群节点
    Filebeat+Kafka+Logstash+ElasticSearch+Kibana搭建日志收集系统
    python中集合用法大全
    python常用内置函数
    跨模块全局变量的使用问题
  • 原文地址:https://www.cnblogs.com/lustralisk/p/wechat_report.html
Copyright © 2011-2022 走看看