文档章节

微信框架的几个层次

悠悠然然
 悠悠然然
发布于 2015/12/01 17:32
字数 1358
阅读 8972
收藏 197

第一层次:通信处理

对访问微信服务器进行处理,主要解决报文来来去去的问题。这里采用的技术一般是HttpClient或类似的技术。

第二层次:报文解析

通过对报文进行解析,让程序员直接要拿到的报文对象进行处理,避免程序员自己手工处理XML和JSON相关。这里采用的技术一般是XOM框架及一些JSON转换相关的技术。

第三层次:报文模拟发送

在调微信相关接口的时候,经常要对微信的API接口进行验证,实际上微信的API中有大量的坑,如果通过写程序来试错,效率会非常底,这个时候,如果有一个报文模拟发送的程序,最好能够提供一个编辑界面,它可以是客户端模式也可以是网页模式,模式不重要,解决问题最重要。通过此模拟功能,可以方便快速的对微信服务器提供的接口进行验证。

第四层次:报文模拟接收

说到开发微信,就会涉及到报文处理,比如从微信服务器接收到一个消息怎么处理,如果这个过程需要用手机模拟,然后再通过微信服务器真的传输过来,然后不断的开发调试,那么其开发效率可想而知,如果这个时候有一个报文模拟接收的处理,那么就可以想要啥内容要啥内容。通过此模拟功能,可以在实验室环境模拟所有的场景,而不必要每次都要发布到真实服务器上进行测试。

第五层次:报文处理框架

报文的处理是一个复杂的过程,如果全部由开发人员进行处理,那么就会导致开发过程非常混乱,如果有一个报文处理框架予以支持,那么就可以大大的简化开发人员的开发过程。

第六层次:上下文保持

我们知道,进行微信开发时,有时候一个人的操作是连续的,这个时候,就需要有类似于Session的概念在里面,这样才能支持比较复杂的应用。比如,我们开发一个猜数字的游戏,当然这个对程序猿(媛)们都不生疏,就是用2分法来查找,服务器告诉我们猜大了还是猜小了,不断的尝试就可以猜出来。但是就是这个小游戏,实际上就需要用到类似于Session的概念来完成。

第七层次:处理的水平扩展能力

我们公司在年会的时候,想玩个摇一摇,结果几千人一起摇动起来,笔记本上装的那个微信后台应用居然就奔溃了,死活没有反应。如果要搞更大的活动,几台服务器可能都处理不过来,这个时候就要有强大的分发及水平扩展能力。

第八层次:命令处理框架

实际上一个微信公众号,许多的时候都是通过使用者用文字(语音识别也归到用文字)的方式与平台进行交互,这个时候,其实就是一个命令行的处理。这个时候,如果让开发人员快速方便的开发这些命令行的处理程序就非常重要了。

第九层次:模板语言的引入

我们都知道,在做业务开发时,肯定都不希望把文本信息都放在程序代码中,这个时候就可以引入模板语言来把数据和展示来进行一个分割,做业务的只管做业务,做显示的只管做显示,井水河水两不犯。

第十层次:模块化

我们支持,一个大的微信公众平台,不可能是一个人完成的,不同的人可能来完成不同的功能模块(插件),在真正使用的时候,只要依赖一个业务包就可以提供这些功能,只要取消依赖就可以把一个业务包中的功能去除,这个时候不管是对开发者还是集成者都是非常愉快的一件事情。

总结

上面的十个层次的总结,只是悠然个人的一点理解不一定合理,同学们如果有觉得不正常或不恰当或者有缺失的话,请留言,一定及时响应改正。

上面的十个层次,基本上还是按照从低到高的层次来排列的,当然中间有几个层次基本上比较接近,实际上换换位置也没有什么问题。

如果能满足悠然所总结的十个层次,那么这个微信框架应该是一个非常好的框架,最起码也是一个不错的框架。

Tiny微信框架即将发布,她就是全部满足上述层次的微信框架,敬请期待,感兴趣的同学也可以关注我以获取本人最新动态 。

另外,悠然正在招收嫡传弟子,欢迎感兴趣的少年才俊们私信。



© 著作权归作者所有

共有 人打赏支持
悠悠然然

悠悠然然

粉丝 2389
博文 184
码字总数 360373
作品 14
杭州
架构师
加载中

评论(58)

xiaohui886688
xiaohui886688
79
鱼可夫斯基
鱼可夫斯基
弟子是哪位啊13
悠悠然然
悠悠然然

引用来自“profile”的评论

春节前发布吧,当作新春贺礼13

居然一直在惦记,最近在整理书,因此顾不上了
wenchj
wenchj
春节前发布吧,当作新春贺礼13
悠悠然然
悠悠然然

引用来自“JohnWen”的评论

这几点总结的太精辟了,尤其是上下文保持这点深有体会,看了不少框架都没有继承这个功能。期待!

谢谢支持,欢迎指导
JohnWen
JohnWen
这几点总结的太精辟了,尤其是上下文保持这点深有体会,看了不少框架都没有继承这个功能。期待!
悠悠然然
悠悠然然

引用来自“lety”的评论

不知道成为大神的弟子需要什么条件(天赋)83
能到杭州工作,能被面试通过。
weyer
weyer
不知道成为大神的弟子需要什么条件(天赋)83
SimonYe
SimonYe
Tiny微信框架79
胡越洋
胡越洋
等风来,大赞!
Tiny微信框架是怎样设计的?

微信对国人而言,想必大名鼎鼎,活跃用户数已经突破6.5亿,足以说明这款应用的生命力。但是使用人数众多,不代表微信的API设计优异,有过微信公众号开发经验的人,想必复杂的报文,众多的服务...

悠悠然然
2016/05/10
5.7K
22
【Animations】使用转场动画布局更改(10)

原文 概要 使用转场动画布局更改 Android的转换框架允许您通过简单提供开始布局和结束布局来为UI中的各种动作制作动画。您可以选择您想要的动画类型(例如淡入淡出视图或更改视图大小),并且...

lichong951
05/28
0
0
NLP多任务学习:一种层次增长的神经网络结构 | PaperDaily #16

由于神经网络强大的表达能力,在 NLP 领域研究者们开始研究基于神经网络的多任务学习。大多数方法通过网络参数共享来学习任务间的关联,提升各任务效果。 本期推荐的论文笔记来自 PaperWeekl...

技术小能手
2017/11/22
0
0
图片和图形之性能和视图层次结构(18)

原文 概要 您管理View对象层次结构的方式可能会对应用程序的性能产生重大影响。本页介绍如何评估您的视图层次结构是否会减慢您的应用程序,并提供解决可能出现的问题的一些策略。 布局和衡量...

lichong951
05/26
0
0
深度学习笔记7:Tensorflow入门

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定! 对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴...

天善智能
07/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

创建第一个react项目

sudo npm i -g create-react-app@1.5.2 create-react-app react-app cd react-apprm -rf package-lock.jsonrm -rf node_modules #主要是为了避免报错npm installnpm start......

lilugirl
今天
3
0
在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN)

Generative Adversarial Network 是深度学习中非常有趣的一种方法。GAN最早源自Ian Goodfellow的这篇论文。LeCun对GAN给出了极高的评价: “There are many interesting recent development...

naughty
今天
0
0
搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
9
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
5
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部