代码之家  ›  专栏  ›  技术社区  ›  Prahalad Deshpande

桌面的全文搜索

  •  1
  • Prahalad Deshpande  · 技术社区  · 14 年前

    我目前正在开发一个 NET中的全文搜索框架 对于开发人员可以在搜索应用程序中使用的跨平台台式机。

    想知道任何开发人员都想从这样一个框架中得到的前5个需求。

    3 回复  |  直到 14 年前
        2
  •  0
  •   DennyRolling    14 年前
    1. 快速(我的意思是快速)的结果。对于10^7行代码的项目,小于0.5秒
    2. 驼峰式和低分符号理解
    3. 语言结构。”“FooBar”和“FooBar foo”是两种截然不同的动物
    4. 在那里反复查找引用,比如当你有一个函数调用时,你可以找到原型或者其他。
    5. 当事情发生变化时没有停机时间。当我更改代码时,我需要立即看到结果。
        3
  •  0
  •   Cody Gray BugGuyBCS    14 年前

    我还没有探索任何现有的框架,也没有编写一个应用程序来使用这种API。不过,我觉得这个提议很有意思,我已经可以想到至少一个可以利用它的应用程序。

    以下是我的五大要求:

    1. 与标准库设计指南的一致性 为了确保在整个代码库中遵循最佳实践,并确保经验丰富的.NET开发人员易于理解/使用。(请参阅Microsoft的“ Design Guidelines for Developing Class Libraries “在MSDN上。)

    2. 开源 ,原因很多。其中包括:提供教育资源,防止开发人员在应用程序中重用库时不得不关注许可协议,确保在活跃的用户社区(没有软件未来依赖的单一实体)中继续支持和开发,并允许个别开发人员在非传统用例需要时修改源代码的部分。

    3. 集中扩展性 . 图书馆应该是灵活的,允许大量的使用场景和适当数量的定制,但不牺牲牺牲干净的设计和失去它的主要目标。一个库来统治所有的“并不一定是一个干净和有用的API的标志。尽量避免不必要的复杂性。我知道这是一个微妙的平衡,但它值得铭记。最重要的是,我发现我自然而然地被框架所吸引,我觉得设计师试图设身处地地为最终将要使用它的人着想。

    4. 速度 . 如果搜索速度慢或效率低,我会到别处找。其他解决方案 存在。

    5. 稳健性 . 它需要能够处理应用程序可能向它抛出的任何东西,这通常转化为可靠实现的错误处理。最好不要让我的整个应用程序崩溃,否则我会很快决定用户并不真正需要全文搜索功能。在这里,广泛的测试也是必须的(开放源码绝对可以帮助实现这一点),不要假设,也不要说永远。有点偏执甚至是健康的。在做任何事情之前检查每个方法中的参数,这样就不会抛出 NullReferenceException . 你可能写不出来 很 完美 代码,但你想试试。

    总的来说,重要的是要记住,设计一个高质量、可重用的框架库是困难的。别让任何人告诉你任何不同的事情。这和你写的算法不一样,不管它有多甜,都称它为库。当涉及到单个开发组或项目中的代码重用时,有足够的障碍和破灭的梦想。实现一个可以在不中断原程序运行的情况下,同时仍能很好地执行其任务的库,确实是一个崇高的目标,但是,我相信,当然是一项值得做的工作。