全文搜索桌面

时间:2010-11-13 07:32:13

标签: c# frameworks

我目前正在为.NET开发全文搜索框架用于跨平台的桌面,开发人员可以在搜索应用程序中使用这些桌面。

想要了解任何开发人员希望从这样的框架中获得的前5个要求。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

  1. 快速(我的意思是快速)结果。小于0.5秒的10 ^ 7行代码项目
  2. CamelCasing和Under_Scored记谱理解
  3. 语言结构。 “FooBar级别”和“FooBar foo”是两种截然不同的野兽
  4. 在那里找回引用,然后再返回,就像你有一个函数调用时,你可以找到原型,否则。
  5. 当事情发生变化时,没有停机时间。当我更改代码时,我需要立即查看结果。

答案 2 :(得分:0)

我还没有探索任何现有的框架,也没有编写一个可以用于这种API的应用程序。但是,我发现该提案很有趣,并且已经可以想到至少有一个可以使用它的应用程序。

以下是我最重要的五项要求:

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

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

  3. 专注的可扩展性。该库应该是灵活的,以允许多种使用场景和适当数量的定制,但不以牺牲清洁设计和忽视其主要目标为代价。 “一个统治所有人的图书馆”并不是一个干净而有用的API的标志。尽量避免不必要的复杂性。我意识到这是一个微妙的平衡,但这是值得牢记的。最重要的是,我发现我自然而然地倾向于框架,我觉得设计师试图将自己放在我的鞋子里,作为最终将要使用它的人。

  4. <强>速度即可。如果搜索速度慢或效率低,我会去其他地方看。其他解决方案存在。

  5. <强>鲁棒性即可。它需要能够处理应用程序可能抛出的任何内容,这通常转化为可靠的错误处理。最好不要崩溃我的整个应用程序,否则我将很快决定用户并不真正需要全文搜索功能。广泛的测试也是必须的(开源肯定可以帮助) - 无论何时假设,永远不要说永远。一点偏执甚至可以是健康的。在做任何事情之前检查每个方法中的参数,以便永远不会抛出NullReferenceException。您可能无法编写完美代码,但您想尝试。

  6. 总的来说,重要的是要记住,设计一个高质量,可重用的框架库很困难。不要让任何人告诉你任何不同的东西。这与采用你编写的算法不同,无论多么甜蜜,并称之为库。在单个开发组或项目中进行代码重用时,有足够的障碍和破灭的梦想。实现一个可以适应许多不同程序的库,而不会破坏原始程序的运行,同时仍然可以很好地执行其任务,这确实是一个崇高的目标,但是,我相信,这肯定是一项值得做的事。