Keithnier/ADE_DataGetter

代码/项目目前有什么需要赶紧做的工作?

Opened this issue · 3 comments

头脑风暴一回吧

为啥要分析这个问题?

  1. 因为项目目前比较乱,如果直接把代码拷给别人,不一定能跑起来
  2. 项目的组织结构也比较乱,很多重复内容和无用内容
  3. 显示的内容,用户操作体验很差

目标是什么?

  1. 减少不明确的配置,代码传递给其他未接触这个项目的人,能在一个小时以内配置好环境并运行
  2. 代码结构清楚,没有重复的内容,没有无用的内容和包,相同功能的模块要合并
  3. 运行结果能够用图表方式显示

所以有什么能做的?(头脑风暴想到什么添加什么)

  1. 删除所有不需要的lib包,包括没用的和重复的
  2. 重新组织目录层次,爬虫放在一个包内,IR-tree放一个包,预处理放一个包
  3. 汇总三个包中公共的部分,比如数据库操作、文件操作、配置文件
  4. 重新组织Web界面显示部分,确定用户可以操作的接口,确定显示的内容 重要
  5. Web UI的编写。目前首要工作,一个是稳定代码,一个是UI界面。得到一个版本后再重构。
  6. 其中稳定代码为次要工作,UI界面为主要,因此前3个动作要尽快完成。
  7. Web UI,用户需要输入什么?用户可以操作什么?用户需要什么功能?用户期待看到什么结果?
  8. 目前有什么功能?做了什么事儿?输入是什么?输出是什么?

具体事项确定

  • 重新组织代码,所有爬虫相关代码放在一个包DataCrawler中,所有IR-tree相关代码放在IR-Tree包下,所有预处理相关代码放在DataPreProcess下(按照这个DataPreProcess的样子组织代码)
  • 删除一些不需要的库。方法就是删完一个jar包看有没有报错的地方,有报错的就保留,没报错的就直接删掉 这个任务不紧急,因为我之前已经删过一遍了,能跑就行,先不管了。
  • 找出DataCrawler、IR-tree、DataPreProcess公共的部分,比如他们都用了Mongodb相关的操作,包括链接、建立文档集、存取数据等等。应该是有Mongodb和文件操作,以及配置相关的东西,这些都会用到的操作,把都会用到的方法提取成一个接口文档。具体代码不改。
  • 思考如何把三个部分结合起来,如何把IR-tree部分和Google地图结合起来。思考能从这三个功能中,提取出哪些操作可以提供给用户,有哪些内容可以显示给用户。

时间安排

一周之类?先安排上

进度查询

见代码和板块。

@ljscoding 有啥加的没,要加赶紧嘞,晚上8点截止

#3 确定三个模块的公共方法。初步看了一下,目前三个模块都是用了MongoDB、文件、配置读取等功能,但是都是自己实现的。确定一下他们用到的具体功能,形成文档。

#4 确定三个模块的数据流向。根据之前的文档,以及现有代码,确定模块与模块之间的交互方式。我不知道我这么描述清不清楚。。 @ljscoding