偶尔看到的一篇文章,如果你能读出点什么思想

来源:互联网 发布:淘宝网红排名 编辑:程序博客网 时间:2024/04/30 20:35

GoogleDesktop 推出已经很久了,只到最近我才开始关注它。

 

前段时间,花了两周时间学习WTLATL,由于自己对COMWin32 SDK编程和C++ 模板技术都比较熟悉,学习WTLATL自然不是什么难事,不过光学不练,印象不会太深。为了避免学会了,很快又忘光了,决定写一个练习程序。

 

最初打算写一个图片浏览器。IPicture可以方便的加载决大多数图像格式,所以图像解码部分无需要费什么精力,主要是实现一个指拇图浏览的控件和一个图像显示控件。考虑用StretchBlt生成指拇图速度可能会慢一些,用多个线程在后台生成指拇图,另外,要选择一种较好的cache算法,让常用的指拇图放在cache,避免频繁的生成指拇图。

 

这样看来,实现难度不大,可以把精力放在ATLWTL学习上,是一个不错的练习项目。很快把两个控件实现出来了,呵,就在这时,事情发生了变化。昨天无意中下载了GoogleDesktop,发现可以用ATL为它编写插件,所以停掉图片浏览器的开发,转而研究GoogleDesktop了。这样即可以学习GoogleDesktop的插件编程,又可以练习ATLWTL,一举两得。

 

插件式设计并不是什么新事物。去年花了一个月时间去研究X Window的实现,一向被人视为庞然大物的X Window居然也采用了插件式的思想设计的。

 

插件式的思想很重要,但是一个插件式的架构做得好不好,与设计者的水平有很大关系,其效果有也天壤之别,像Erich Gamma参与设计的eclipse就被人奉为经典,而其它大多数软件同样采用插件式却默默无闻。

 

我一向对插件式设计比较感兴趣,感兴趣的不是这个概念本身,也不是如何编写插件本身,而是如何设计出优秀的插件式框架。由于不会java,研究eclipse的代码时,只能看而不能去写,感觉不太爽。

 

Google里天才如云,GoogleDesktopGoogle来说也是一个非常重要的产品,其设计必定精妙得很。研究这些插件的接口定义,无疑可以洞察大师们的思想,这让我产生极大的兴趣。

 

就是我决定要研究GoogleDesktop插件开发的原因。 

原创粉丝点击