推荐阅读:阿里一面:Spring Bean 默认是单例的,高并发情况下,如何保证并发安全?
多数企业出于安全、稳定、隐私等方面的考虑,都会选择在内网搭建代码托管平台。随着企业的发展,项目会越来越多。
由于项目数量太多和人员的流动,企业中很难有人能掌握所有代码的细节,当想要统一排查代码是否包含某类敏感信息,或检查是否使用了某些不安全的方法时,就需要开发人员各自手工排查自己负责的代码,费时费力。
因此,企业全库的代码搜索就变得非常重要。尤其对于将代码通过 GitLab 部署在本地服务器的企业,由于缺少了云端托管平台自身集成的搜索引擎,想要在本地进行全局的代码搜索就变得异常困难。
就在近期 Gitee 团队开源了免费代码搜索工具 Kooder,目标是为包括 Gitee/GitLab/Gitea 在内的代码托管系统提供源码、仓库和 Issue 的搜索服务。
Kooder 直击企业内部代码搜索的痛点,不仅完全开源且部署方便。迫不及待上手的小伙伴可以访问 Gitee 上的主仓地址,查看(star)项目:
Gitee:https://gitee.com/koode/kooder
长按复制 Gitee 地址,或点击下方“阅读原文”可直达项目
GitHub:https://github.com/oschina/kooder
简介
Kooder:开源的基于 Java 实现的代码搜索平台。目标是为包括 Gitee/GitLab/Gitea 代码托管系统提供 自动的源码、仓库和 Issue 的搜索服务。帮助提高搜索代码、问题等信息的效率,同时内网环境保证代码的安全性。
架构
服务包含两个模块,分别是 gateway 和 indexer。其中 gateway 用来接受来自 HTTP 的索引任务, 对任务进行检查后存放到队列中;同时 gateway 还接受搜索的请求,并返回搜索结果给客户端。而 indexer 进程负责监控队列中的索引任务, 并将这些要新增、删除和修改索引的任务更新到索引库中。
core
核心对象和公共类gateway
用来接收来自 HTTP 的索引和搜索的请求indexer
构建、更新和删除索引的服务
界面
贡献
Kooder 有详细的文档、环境搭建和部署的步骤,同时还提供了便捷的 Docker 安装方式。让你不管是阅读它的源码、本地运行和调试,还是二次开发和内部部署,都不是难事!
项目地址
Gitee:https://gitee.com/koode/kooder
GitHub:https://github.com/oschina/koode