最佳实践
编辑最佳实践
编辑无论您是直接在 Kibana 代码库中开发代码,还是构建自己的插件,都请考虑以下最佳实践。它们旨在支持我们的 Kibana 开发原则。
性能
编辑您在规划时是否考虑了可扩展性?
- 考虑具有许多字段的数据
- 考虑具有高基数字段的数据
- 考虑跨越长时间范围的大型数据集
-
您是否在浏览器中加载最少的 JS 代码?
- 有关更多指导,请参阅 保持 Kibana 快速。
-
您是否向服务器发出大量请求?
- 如果是,您是否考虑使用流式 bfetch 服务?
可访问性
编辑您是否知道 Kibana 公开发表了我们致力于为残疾人士创建可访问产品的声明?我们确实做到了!我们所有应用程序都具有可访问性非常重要。
- 了解 EUI 如何处理可访问性
- 如果您不使用 EUI,请遵循相同的 EUI 可访问性标准
本地化
编辑Kibana 被翻译成其他语言。使用我们的 i18n 实用程序来确保您的面向公众的字符串将被翻译,以确保所有 Kibana 应用程序都已本地化。
- 阅读并遵守我们的 i18n 指南
约定
编辑重复发明轮子
编辑过度重构本身可能是一个问题,但了解现有的服务并在适当的时候使用它们仍然很重要。我们有专门面向服务的团队,致力于为我们的解决方案开发人员提供更快迭代所需的工具。他们会处理繁琐的细节,因此您可以专注于针对您特定问题领域的创造性解决方案。以下是一些您应该考虑的常见服务示例
-
-
- 使用
esSearchStrategy
向 ES 发出原始查询,该查询将支持异步搜索和部分结果,以及注入正确的 高级设置,例如是否包含冻结的索引。
- 使用
-
-
- 在您的应用程序中渲染地图、可视化效果和仪表板
- 注册可以添加到仪表板或 Canvas 工作区或在其他插件中渲染的新小部件。
-
- 让其他插件将功能注入您的应用程序
- 将自定义功能注入其他插件
- 无状态助手实用程序
- 状态同步 和
- 状态容器 实用程序由
-
kibana_utils 提供,如果您想将应用程序状态同步到 URL?
- kibana_react 用于特定于 react 的助手
重用这些服务将有助于在每个解决方案的 Kibana 中创建一致的体验。
向后兼容性
编辑最终,我们希望向我们的插件开发人员保证他们的插件不会因小的版本更新而中断。
每当您创建或更改公共 API 时,请记住这一点,并考虑潜在的向后兼容性问题。虽然我们有一个正式的已保存对象迁移系统,并且正在努力添加一个正式的状态迁移系统,但在次要版本中引入状态更改和迁移始终存在风险。在进行次要版本中的巨大和有风险的更改(尤其是对于已保存的对象)之前,请考虑这一点。
- 您是否从注册表中持久化状态?考虑如果实现作者更改了他们的接口会发生什么。
- 您是否向注册表添加实现?考虑到有人可能正在持久化您的数据,并且更改您的公共接口可能会破坏他们的代码。
更改已保存的对象或可持久化数据的形状时要非常小心。
从过去的 Kibana 版本导出的已保存对象应继续工作。此外,如果用户依赖于作为您的公共合约一部分存储在您应用程序 URL 中的状态,请记住您可能还需要为书签 URL 提供向后兼容性。
路由、导航和 URL
编辑Kibana 平台提供了一组工具来帮助开发人员围绕路由和浏览器导航构建一致的体验。其中一些工具在 core
中,一些工具作为各种插件的一部分可用。
请遵循本指南,以了解可用的工具和处理路由和浏览器导航的常见方法。
测试和稳定性
编辑审查