微信小程序开发套件Wafer的研究与思考

写在前面

最近打算入坑小程序开发,找了一点教程自学。今天在github上看到这个项目:Wafer,总结下来,该项目提供了简化小程序后端开发的两个服务:会话服务--简化小程序登录开发流程和用户管理),信道服务--简化websocket开发流程;另外就是介绍了腾讯云官方的一站式部署小程序的服务.

这是官方介绍:

Wafer 是腾讯云面向广大开发者提供的小程序开发全栈资源套件,套件提供小程序会话管理服务和 WebSocket 信道服务,部署方式具备良好的弹性伸缩能力,可以快速应对业务的爆发增长,同时具备较低的开发门槛。

这是介绍Wafer由来的文章:Wafer文章

现将我认为有收获的地方做下摘抄和个人评价, 最后再谈一下我对于使用这个方案的总的看法。由于本人水平有限,有讲的不对的地方,还请原作者和各位读者指正。

Wafer概述:

  1. 作者初期专门实现了一个会话管理sdk来管理小程序的用户会话。但后期重构成了一个单独的会话服务,理由是:

但是弊端在于,该能力只能被 Node 开发者使用,其他语言的开发者无法使用。同时,因为小程序的 appId 和 appSecret 存放在外网可以访问的服务器上,也有一定安全性问题。会话服务和我们的业务耦合在一起,也给后续的横向扩展带来了麻烦。

会话管理sdk,来自原文
会话管理sdk,来自原文

增加会话服务器后,来自原文
增加会话服务器后,来自原文

个人认为这些理由不足以说服我将这个会话管理sdk抽象成一个单独的服务。
第一:前期sdk只有nodejs版本,那么说明后端服务是用nodejs开发,本就不需要别的语言版本。如果需要开发其他语言版本,也只是开发一次就一劳永逸的事儿(该语言上),工作量完全可控。而且抽象成一个单独服务,带来的是复杂度和维护成本的增加(要多维护一个服务)。
第二:小程序的appId和appSecret保存在外网的安全性问题,也不是抽离成一个单独的服务的理由。解决方法首先是服务器安全等级提高,做好权限管理,最大限度的避免黑客入侵。另外就是可以从其他管理重要数据的服务中获取,而不是硬编码到代码中。如果仅仅为了安全性而抽离出一个服务,未免过于小题大做。
第三:关于弹性扩展的问题。这一条我觉得有道理,但如果业务服务器具备弹性的能力的情况下,拆分后能带来多大的扩展能力呢?而且是在增加通信成本的情况下,我持保留意见。
反而,我认为抽离出单独服务,以下的考虑才是最重要的:
那就是:解耦。当服务规模增加到一定程度,单体服务无法承载最大的访问量时,将其拆成一个个单独服务,便于每个服务单独管理,具有良好的扩展性。这也就是当前盛行的微服务概念。但前提是你的项目规模已经达到了一个很大的量级----对于一般中小团队,过早的做服务拆分我认为反而会增加复杂度,得不偿失。

  1. 作者实现了一个pass服务:信道服务,用于websocket通信。


    建立websocket,来自原文

    websocket通信,来自原文
    websocket通信,来自原文

    理由是:

但是由于客户端的实现是自行实现,和 Socket.IO 的后端配合可能会出现不可控的情况。同时,我们发现 WebSocket 的后端实现门槛比较高,并且进行横向扩展的话会更加困难。

我不太理解作者团队为什么要选择用socketio,而不是websocket,另外后端应该有第三方websocket库的,没必要自己实现,也就不存在说实现门槛过高的问题了。还是那个理由更能说服我吧:为了解耦,为了微服务化。

  1. 最后作者推荐了腾讯云的一站式微信小程序部署方案:


    一站式部署,来自原文
    一站式部署,来自原文

    这个一站式方案确实是能提高开发效率的,好多之前需要手动部署的工作都被自动化了,将来有机会可以尝试一下。

个人看法:

在目前的阶段,小程序的开发还属于初期阶段,各种周边的开发环境还不是很完善。所以才有了像Wafer这种项目,目的是想为开发者提供便利,让开发者更专注于业务开发上,出发点是好的,值得称赞!
但是,对于大部分团队,尤其是中小团队来说,个人认为这又不是很实用,因为你是要衡量投入产出比的,在项目还没有预见到是否有那么大访问量的情况下,初期就接入这种第三方服务,无形中给团队增加了复杂度,结果大概率是不划算的。
小程序的开发,一般都还是一些规模不大的项目。先做成一个mvp产品(最小化可行产品),快速上线,快速验证,快速迭代,这才是最重要的。

当然了,我从这个方案中也有收获:

  1. 了解了小程序会话管理相关流程,感觉后端开发方面跟一般的会话管理思路大致一样,主要是前端方面了解到是小程序是没有cookie概念的,也没有dom操作。通过code,appid,appkey获取seesion_key作为用户凭证,一般有效期是30天。
  2. 作者对于安全性方面的考量值得学习。比如:用户session_key封装一层再返回给前端,appid和appkey不放到外网服务器上。
  3. 解耦合的思路,从硬编码到单独实现为一个会话sdk,再到单独抽离出来作为一个服务。
  4. 将工具化,自动化做到极致,能交给机器完成的事情,就不要让人去做了,不仅容易出错,还耗费时间。当前火热的人工智能,目的不也是用机器代替人嘛。
  5. 架构不是一朝一夕的,是时刻在演变的。没有最完美的架构,只有最合适的架构。在初期不宜把项目架构设计的过于复杂,可能hold不住,即使hold的住也付出很大代价。尤其是小团队。

最后不得不说,这个方案自从在几个月前发布到github之后,貌似就没有再更新过,issues也无人管理。对于这种项目,使用起来还是要慎重的,当遇到坑时怎么办,靠自己吗?自己能不能搞得定,搞的定又会不会花非常多的时间呢?这太多未知了,所以,我个人目前还是不太可能会选择这个开源项目的。

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

推荐阅读更多精彩内容