注:个人觉得穿个马甲就以为我们不认识你了!
“微内核插件式懒加载架构”名字起的很酷很深奥,不过思路不错,值得借鉴!
序
在微内核插件式懒加载架构 顺利发布之际,我想对我们企鹅客户端的同学 Slicoltang,Timmychen,Yiloghuang,Rockyzhang说:作为程序员,有多少人有机会参与构建一个程序框架,也许这就 是我们作为程序员一生仅有的一次经历。同时我还记得这套框架之所以能够实现,是因为当初Codyzeng,Jameshuang我们一起打下的基础。
企鹅顺利完成重构并发布,客户端最小安装包从20M变成了1M。 从此以后客户端的发布变成了Web类似的发布,只需要发布一个个的文件放到资源服务器就好,用户感知这个新版本的过程就好像浏览一个网页,即用户无需参与升级过程。
至此以后客户端开发和发布的敏捷 性可以做到和Web一样。
客户端真的可以Web化么?请看演示。
安装附件1M的安装包,首次启动企鹅将看到如下懒加载过程,在加载过程中,用户可以使用已经加载完成的功能:
1)首先看到任务栏图标
2)其次看到宠物形象
3)接着看到喂食和洗澡的按钮,这个时候用户已经可以进行喂食洗澡操作
4)接着出现打工学习按钮,可以进行打工学习操作
5)接着出现玩耍,交互喂养逻辑
6)接着是社区逻辑加载完成,可以进入社区
7)最后所有的逻辑加载完成
这整套的表现是如何实现的呢?
这就依赖于我们实现的微内核插件式懒加载程序架构 ,架构的简单框图如下:
整套架构是建立在一个插件系统上,整个插件系统由一个xml文件描述,描述插件的加载顺利,插件依赖的资源等。只要控制xml文件的版本就可以控制需要加载的插件,也就可以控制需要加载的功能。这是一个web化的软件架构,现在和web架构做一个对比:
微内核插件式懒加载程序架构 | Web架构 | |
加载器 | 懒加载微内核 | IE,Chrome,FireFox等浏览器 |
描述语言 | xml | html |
加载的对象 | 插件 | 图片,视频,flash等 |
这套架构给企鹅客户端带来哪些好处呢?
这套架构几乎具备了Web和客户端所有的优势。
唯一的局限性就是依赖于内核的普及,但是当我们的内核打包大QQ的时候,相信在中国的土地上,
普及问题应该也不是问题。
我们说,客户端也可以 Web 化 。
如果同学们对具体实现感兴趣,欢迎找企鹅客户端的同学交流。