FBReader代码及其庞大,要从这些错综复杂的关系中找到它们的联系,就得把握某些关键的节点。虽然我是刚毕业不久的、涉世未深的初级程序员,但总觉得如果要分析一个复杂系统的源代码,就得先好好体验这个软件。把一些功能玩熟悉了,玩透了,先对它的运行结果有一个比较全面的了解。接下来就猜它大概是怎么实现的,然后才开始从代码的角度去分析它。
(原文可以到http://www.docin.com/p-421265393.html查看)
一、简单概述
FBReader代码及其庞大,要从这些错综复杂的关系中找到它们的联系,就得把握某些关键的节点。虽然我是刚毕业不久的、涉世未深的初级程序员,但总觉得如果要分析一个复杂系统的源代码,就得先好好体验这个软件。把一些功能玩熟悉了,玩透了,先对它的运行结果有一个比较全面的了解。接下来就猜它大概是怎么实现的,然后才开始从代码的角度去分析它。
复杂的项目,几乎总能简化出一个精要的简单项目。FBReader也是如此,它对应的简单项目其实就是网络上各种txt阅读器,虽说这些txt阅读器代码量和复杂度与FBReader相比可谓相形见绌,但是它们麻雀虽小,五脏俱全。从文件打开,然后到生成内容数据,然后到渲染,这个过程它们与FBReader没有任何区别。那为何FBReader的项目如此庞大?猜想一下。
其中原因简单可以归纳:
1.FBReader在文件打开之前,对文件做了一些事情,比如检测它们的编码、计算文件大小、保存文件路径等一系列与电子书有关的信息。
2.生成数据的时候,会把各种格式的数据生成为自己需要的结构(比较复杂的点),然后保存到本地,缓存。
3.渲染阅读界面,这里会根据FBReader所生成的结构渲染界面。其中会配合各种装饰类,以及高亮,文字大小等属性。
既然它和简单的txt阅读器的精髓保持一致,那么分析它心里就有点谱了!
(省略。。。因为图片太多,童鞋们可以到http://www.docin.com/p-421265393.html)
暂时没有评论