Stripe 的单体仓库开发者环境 - 由 Bug 构成

2024-08-19

本文回顾了作者在 Stripe 工作期间(2012-2019)该公司开发者环境的演变历程。Stripe 采用单体仓库,起初允许开发者在本地或云端运行代码,但最终决定采用基于云端开发者实例 (“devbox”) 的统一环境,以提高可靠性和可维护性。文章详细介绍了 Stripe 如何利用 devbox、同步脚本、自动加载器和 pay 命令行工具来构建高效的开发者体验,并强调了 watchman 和 LSP 等技术的应用。作者还探讨了 Stripe 的组织规模、代码库特征以及 Ruby 语言对工具选择的影响,并总结了维护开发者效率的挑战。

阅读更多
未分类 单体仓库

利用 Jaccard 相似度和 MinHash 查找近似重复项

2024-07-04

本文探讨了如何利用 Jaccard 相似度和 MinHash 算法识别大型文档集合中的近似重复项。Jaccard 相似度用于度量两个集合的相似性,而 MinHash 则通过对文档特征进行哈希和比较最小哈希值来高效地估计 Jaccard 相似度。文章详细介绍了 MinHash 签名的生成过程,以及如何利用签名进行文档分组和比较,以识别近似重复项。此外,还讨论了如何通过调整参数来控制算法的灵敏度和计算成本。

阅读更多