一次JSPatch的使用经历

过程简介

看JSPatch的官网简介,使用已经是非常简单,就初始化和执行脚本两步。文件传输和一些安全验证才是麻烦事,前前后后持续了一个星期。

  • 最初的方案是程序启动,下载补丁文件,执行脚本,然后删除补丁文件。这个方案的缺点是每次都要访问网络和下载,如果没网络,就不能执行热更新。

  • 改进的方案是在最初方案的基础上引入缓存机制,还会顺带引入文件操作,复杂度瞬间提升三四倍。缓存在任何情况下都是坑,文件操作在很多情况下也是坑。这个方案的重心是对缓存采取不信任态度:程序启动时,先从后台拿配置,检查缓存的有效性,再执行;如果没有网络,获取不到后台配置,那么信任缓存,执行热更新。

  • 团队讨论的方案是执行缓存中的补丁文件,下载根据后台配置进行;两者是相互独立的两个过程,没有依赖。程序一起来,就执行缓存中的补丁文件。同时网络取配置,查是否的有新版本的补丁文件,有的话就去下载更新。这个方案的缺点是第一次只下载补丁文件,不执行热更新。当然,要解决也很简单,下载完后执行一下补丁文件就可以了。不过,这又会带来新问题,那就是可能会出现一开始有bug,后来bug又不见了的“诡异”现象。具体怎么做,就看怎么取舍了。

概要设计

通过这次经历,一个可取的经验是将概要设计引入开发过程中。这次从最初的方案过渡到改进的方案,就是通过评审概要设计的成果。
从改进方案到最终团队认可的方案,本来也可以通过概要设计来完成。不过,现实的情况是评审不会反复进行,其他人也不会花太多精力来看这个概要设计。这两个方案实际差别很大,但是差距就是一个串行依赖还是并行独立的问题,不仔细看还发觉不了(这次就没发觉,更新的概要设计也以邮件的形式发出,也没人提出不同意见)。
要解决这个问题,就是引入团队开发模式,一起讨论概要设计,一起编码实现,效果可能会好一点。
这次是在代码演示的时候,团队成员提出问题,表达不同意见,才改过来的。当然,这就是敏捷的原理了。再完美的概要设计文档,也不如现实能运行的代码来得实际。概要设计文档很重要,但是还是最终看到的效果更有说服力。

经验小结

  • 将概要设计引入比较独立功能的开发过程,尽早进行团队讨论,处理分歧意见。

  • 设计时的思路还需要更主流一点,奇思妙想要少一点。

  • 概要设计的讨论还要更充分一点。不同意见尽量早处理。

  • 实际效果更重要,文档再完善,也有考虑不周的时候。

  • 对于合理意见,认可的话,及早处理,及早应用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,807评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 漂泊的灯火刺破了夜的胸膛, 喷薄的鲜血加剧了风的呼号, 吱呀摇晃的木门, 等待谁来叩响。 不明所以的蟋蟀, 奏着儿...
    d8bf20110baf阅读 133评论 0 2
  • 眨眼间回母校一周了,吵吵闹闹间又要和闺蜜分离。回家倒计时19个小时。此刻我抱着我的七仔玩偶赵花花,听着任然的《对不...
    穿靴子的波斯猫阅读 200评论 3 3
  • 对于尚处在学生时代尾声的我来说,我曾经无数次在放假的边缘,思考要不要回家。可能在旁人看来这是一个根本不需要思考的问...
    行者岩1996阅读 343评论 0 0