rg 与 fd 搜不全代码:四个过滤层和六个坑
rg 默认会跳过 .gitignore 里的文件、隐藏文件和二进制文件,搜不全往往不是快慢问题而是范围问题。这篇拆开它的四层过滤,讲清 fd 的 -x 与 -X 的取舍,给出六个真实踩过的坑和可直接复制的命令。
Blog
格达软件工程师的实战经验、技术选型与行业观察
rg 默认会跳过 .gitignore 里的文件、隐藏文件和二进制文件,搜不全往往不是快慢问题而是范围问题。这篇拆开它的四层过滤,讲清 fd 的 -x 与 -X 的取舍,给出六个真实踩过的坑和可直接复制的命令。
reset --hard 敲错分支、stash 手滑 drop、rebase 结果不对——这些场景下数据大多还在 .git/objects 里。本文用可复现的实验讲清 reflog 的用法和失效条件、fsck 捞 dangling commit 和 blob 的具体命令,以及哪些丢失其实救不回来。
从本地缓存被 OOMKilled 的真实场景出发,用 Go 泛型手写一个 O(1) 的 LRU,讲清哈希表为什么必须存节点指针、Get 不挪位置会退化成 FIFO、分片锁的收益与代价、按条数淘汰的内存陷阱,以及 LRU 挡不住扫描流量时该换什么。
一个 Go 服务用最朴素的 Dockerfile 构建出来 1.11GB,改一行代码要等 47 秒。这篇拆开每一层看体积从哪来,用多阶段加 BuildKit 缓存把它降到 12.4MB、热构建 3 秒,并列出走到 distroless 和 scratch 之后必然会踩的坑:动态链接、CA 证书、时区、没有 shell。
在 38 万文件的 monorepo 里,grep -r 要跑一分半还刷满 node_modules 噪音。这篇讲清楚 rg 的忽略规则层级、-u/-uu/-uuu 的真实代价、把结果安全喂给 xargs 的写法、多行匹配吃内存的边界,以及哪些场景根本不该用 fd | rg。
本文拆解软件定制开发从需求调研、方案设计、开发测试到上线运维的全流程,并结合格达软件在APP、小程序、PC软件及服务器维护中的实践经验,为企业决策者提供可落地的项目管理建议。
开发者和开源作者现在有许多提供免费层级的服务,但要找到所有这些服务并做出明智的决定需要花费时间。这是一个包含软件(SaaS、PaaS、IaaS等)及其他提供免费开发者层级的服务的列表。 这份清单的范围仅限于基础设施开发者(系统管理员、DevOps实践者等)可能觉得有用的内容。我们喜爱所有外部的免费服务,但最好还是保持主题相关。有时候这条界限比较模糊,因此本清单有个人观点;如果我不接受你的贡献,请不要感到被冒犯。
在数字化转型浪潮中,越来越多的企业发现:通用型SaaS(如标准化ERP、CRM、OA)虽然上手快、成本低,但往往无法贴合自身业务逻辑。不同行业、不同规模的企业,在流程审批、数据权限、报表口径、生产排程等方面存在巨大差异。强行套用通用软件,轻则效率打折,重则业务与系统“两张皮”,最终沦为摆设。