部分研究框架/库的有效策略

Ser*_*gey 6 search frameworks

我记得研究新框架的旧有效方法.MFC说,这总是阅读这本主题好书的最佳方式.当我试图跳过大量材料以加快编码时,后来发现它会更快地首先阅读整本书.没有很好的方法来研究小部分的框架.或者至少我当时没有看到它们.

过去几年发生了许多新事物:改进了谷歌的搜索结果,编程博客,更多参与互联网讨论的人,以及许多开源框架.

现在,当我们编写软件时,我们通常依赖于第三方(通常是开源)框架/库.很多时候我们只需要知道他们使用它们的少量功能.它只是找到使用库的一小部分而没有不必要的悲观化的最简单方法.

您如何尽可能少地研究框架并仍然有效地使用它?

例如,假设您需要使用Lucene索引一组文档.您需要突出显示搜索片段.如果你深入研究Lucene,你不关心词干分析器,将索引存储在一个文件中与多个文件,模糊查询以及许多其他会占据你大脑的东西.

那么你的策略,方法和技巧是什么来节省你的时间?

我会列举我会做什么,虽然我觉得我的过程可以改进.

  • 搜索"lucene tutorial","lucene highlight example"等.尝试根据发布日期,评论的数量和基调来估计非官方文章(博客文章)的信任评分.如果没有确定的答案 - 在目标上收集新的搜索关键字和链接.
  • 在官方网站上搜索真正快速的教程/新手指南
  • 估计javadocs对新手的价值.(阅读Lucene精彩包装摘要)
  • 搜索库中附带的简单示例,与您需要的内容相关.(学习"src/demo/org/apache/lucene/demo")
  • 在Lucene邮件列表中询问"简单的Lucene搜索突出显示示例".如果你问一个愚蠢的问题,你就无法得到答案,甚至得不到好名声.通常你不知道你的问题是否是愚蠢的,因为你还没有深入研究这个框架.
  • 在Stackoverflow或其他QA服务上询问它"你能给我一个在Lucene中突出显示搜索关键字的工作示例".然而,这个问题非常具体,无法得到答案或得分不好.
  • 如果它是开源的,请估计从框架代码中获得答案的容易程度.

你的学习/搜索路线是什么?如果可能,请按优先顺序写下它们.

Ric*_*ich 4

我使用三阶段技术来评估 API。

1) 发现 - 在此阶段,我使用尽可能多的不同搜索短语组合来搜索 StackOverflow、CodeProject、Google 和新闻组,并将可能适合我需求的所有内容添加到一个巨大的列表中。

2) 过滤/排序 - 对于我在收集阶段发现的每个项目,我都会尝试找出它是否适合我的需求。为此,我直接跳到 API 文档并确保它具有我需要的所有功能。其结果会进入一个加权列表,其中最佳解决方案位于顶部,所有的问题都被过滤掉。

3) 原型 - 我选择了前几名竞争者,并尝试做一个小型实现来实现所有重要功能。凡是最适合这里项目的都会获胜。如果由于某种原因在实现过程中出现了最佳选择的问题,则可以转而采用其他实现。

当然,为项目选择最佳 API 需要考虑很多因素。一些重要的:

  1. 这将使我的发行版规模增加多少?
  2. 该 API 与我现有代码的风格的契合程度如何?
  3. 它有高质量/任何文档吗?
  4. 是很多人都用的吗?
  5. 社区有多活跃?
  6. 开发团队有多活跃?
  7. 开发团队对错误补丁请求的响应程度如何?
  8. 开发团队会接受我的补丁吗?
  9. 我可以扩展它以满足我的需求吗?
  10. 整体实施的成本是多少?

...当然还有更多。这一切都非常依赖于项目。

至于节省时间,我想说的是,在这里试图节省太多时间只会在以后反咬你一口。选择一个好的库所花费的时间至少与实施它所花费的时间一样重要。另外,想一想,在六个月内,您是愿意快乐地编码,还是愿意与仇外的开发团队争论:)。现在多花几天时间对你的选择进行彻底的评估可以在以后避免很多痛苦。