zoukankan      html  css  js  c++  java
  • 糟糕的十一月

    十一月感觉就是写邮件系统和两个策划要的活动而已。。。

    一直觉得邮件系统十分简单,但是实现的时候却不是一回事。实现速度比预期的慢,一方面是边写边参考了礼包系统的结构,另一方面是抽象错误。就因为邮件放在礼包的位置,然后邮件看起来只是比礼包多一两个字段,所以就参考了礼包系统。这个错误实在太严重。表现层的相似性居然影响到后端的实现!!!

    上周的code review里,被喷了两个多小时。焦点主要是两个地方,一是对内部来说,其他子系统用邮件的时候不友好;二是协议来说,冗余太多,浪费带宽,协议之间也没有正交。解决办法是,为各种类型的邮件建立模板工厂。写邮件的时候,只需要输入所需的少数几个参数,由生成出来的方法检查参数正确性,及特定邮件的固定参数。协议方面,添加了分页加载功能。

    接着另一位同事,参考了其他项目的情况,抽象出一个更好用的存储层。虽然,存储层做的无非是CRUD,对于邮件系统而言,更可以缩减为CRD。具体实现上,还包含了一层cache,避免对数据库的高频读写。但是,我原来的实现,是按照显示邮件所需的各个参数来做序列化的,因此,其他系统难以复用。当然,设计之初也没有打算提供给内部系统用。。现在,把这一块变成了Json做存储,谁都可以用,底层负责数据存储和消息通知,相当于一个带持久化的消息队列。有了这个队列,写邮件系统就简单多了,无非是检查客户端输入,然后到这个消息队列进行查询即可。这个队列写起来也很简单,只需要删除过期消息,不需要管具体存储,相当于有一块字符串过来就丢一块到数据库,取出来的时候按tag和uid直接取出相应队列即可,十分高效。

    谢谢各位同事的包容,以后要加倍努力~

  • 相关阅读:
    Android 长时间运行任务说明
    phoneGap,angularJs,onSen的一些备忘
    cordova 选择图片并上传到服务器
    手机PC文件传输
    一组RS485设备操作命令
    asp.net 中长尾链接实现推送 -- comet
    ardunio 实现RS485通讯-下位机
    JPEG Camer 图片上传
    ImageResizer 3.4.3配置
    arduino空调遥控器
  • 原文地址:https://www.cnblogs.com/Lifehacker/p/mail_system_in_lsg.html
Copyright © 2011-2022 走看看