由Lucene所想到的,对软件设计的新看法
lucene的组成结构:对于外部应用来说索引模块(index)和检索模块(search)是主要的外部应用入口
org.apache.Lucene.search/
|
搜索入口
|
org.apache.Lucene.index/
|
索引入口
|
org.apache.Lucene.analysis/
|
语言分析器
|
org.apache.Lucene.queryParser/
|
查询分析器
|
org.apache.Lucene.document/
|
存储结构
|
org.apache.Lucene.store/
|
底层IO/存储结构
|
org.apache.Lucene.util/
|
一些公用的数据结构
|
Lucene的结构清晰明了,需要修改部分功能时,用户很清楚的知道该从那里下手;
先做个说明,Weblucene的代码和作者的一些文章给我很大的帮助,在此表示感谢,我在本篇描述的内容并不是针对作者及作品,只是以此为例来说明。
Weblucene我下来后,没有编译好的目标文件,网上介绍说是得用jacc什么的去编译,况且与版本也有关系,我不熟悉这些,没耐心去再一次一次的尝试编译,于是呼没看到weblucene的实际运行效果;
第二是版本还是早以前的,与现在的新版本不能结合使用;
第三发现其的代码主要不是Weblucene的实用功能上,在配置文件上花费的代码量要大的多。
以下是一些在软件设计的看法
A. 项目的设计要从不同的角度分层;(权限,全文检索,各种不同机构、应用)
B. 分层的结构真是越分越细了,每个模块的任务要独立、明确,体现不同的社会分工性;
C. 模块的功能简单的更通用、实用,象lucene的analysis分词,可以让其它擅长分词的人来完成;
D. 软件设计的重点、难点还是在于对具体项目的抽象,能够提取出模块中共性的内容;
E. 模块间耦合性要努力降低,需要接口的地方坚决不能吝啬;
F. 范例要简单并保证下载下来后能直接看到效果,突出其任务的重点,象一些配置的获取越简单越好,每个人可能有各自的习惯,并且用户的基础也不一样;
分类: java 1,950 次阅读
原文链接:http://www.wenhq.com/article/view_100.html欢迎转载,请注明出处:亲亲宝宝