[转]重构:企鹅1M Web化客户端是怎样炼成的?

来源:互联网 发布:coc蓝胖升级数据 编辑:程序博客网 时间:2024/06/10 11:25

 

注:个人觉得穿个马甲就以为我们不认识你了!

 

“微内核插件式懒加载架构”名字起的很酷很深奥,不过思路不错,值得借鉴!

 

 


微内核插件式懒加载架构顺利发布之际,我想对我们企鹅客户端的同学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等浏览器描述语言xmlhtml加载的对象插件图片,视频,flash等

这套架构给企鹅客户端带来哪些好处呢?

这套架构几乎具备了Web和客户端所有的优势。

唯一的局限性就是依赖于内核的普及,但是当我们的内核打包大QQ的时候,相信在中国的土地上,
普及问题应该也不是问题。

我们说,客户端也可以Web

如果同学们对具体实现感兴趣,欢迎找企鹅客户端的同学交流。