变量不加引号,清理脚本删错了整个上传目录
`rm -rf $f` 遇到带空格的文件名会把一个路径拆成两个参数,删错目录。这篇文章拆开讲 shell 的分词与路径展开顺序、遍历文件名的正确写法、ssh/sudo 里引号被展开两层的陷阱,以及哪些地方加了引号反而是错的。
Blog
格达软件工程师的实战经验、技术选型与行业观察
`rm -rf $f` 遇到带空格的文件名会把一个路径拆成两个参数,删错目录。这篇文章拆开讲 shell 的分词与路径展开顺序、遍历文件名的正确写法、ssh/sudo 里引号被展开两层的陷阱,以及哪些地方加了引号反而是错的。
一个 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。
面向跑了几年的 Java 老项目:在不改调用方的前提下,用接缝把 new、静态配置和系统时钟扒出来,配上可复制的 Mockito + JUnit5 示例、JaCoCo 增量覆盖率门禁,以及静态初始化、误连生产配置、H2 方言这三类实测踩过的坑。
订单接口在库存不足时返回 500,客户端 SDK 和网关各重试一次,库存被扣成负数。这篇文章把 4xx 和 5xx 的分界线划清楚:哪些错必须让调用方看到 4xx、哪些错重试真的有用,以及状态码选错之后监控、熔断、CDN 缓存会怎么一起塌。
云服务器上线前的安全基线是抵御入侵的第一道防线。本文从账号权限、网络访问、应用数据、日志巡检四个层面给出可落地的配置清单,并结合 APP、小程序、PC 软件交付与服务器维护场景,说明常见踩坑点与整改顺序。
从资产梳理、基线加固、备份恢复、监控告警到网络与应用层防护,结合格达软件 APP、小程序、PC 软件与服务器维护业务,给出可落地的企业服务器运维与安全加固实践清单。
从业务场景、团队能力、性能与维护成本出发,对比原生、Flutter、React Native、小程序容器等路线,并结合格达软件 APP、小程序、PC 软件与服务器维护经验,给出可落地的选型建议。
从资产盘点、基线加固、业务差异化防护到监控备份与应急演练,结合APP、小程序、PC软件与服务器托管的真实场景,给出一套可落地的服务器运维与安全加固路径与检查清单。
技术选型不是选最流行的框架,而是让业务形态、团队能力与长期维护成本取得平衡。本文用打分思路拆解原生、Flutter、React Native 与小程序方案,并结合格达软件的交付经验给出可执行的选型清单。