资讯中心
行业洞察、技术分享与服务案例。我们把项目里踩过的坑和总结的方法写下来,希望对正在做信息化建设的你有用。
Selected work
项目界面
交付过的真实界面,左右切换浏览,点击可放大看细节。
两地协作后,Git 分支改了三条规矩
武汉那边开始提交代码之后,两周里出了三次合并冲突,其中一次把灰度配置覆盖了。我们把分支规矩收成三条:main 只接受合并请求、功能分支按项目加日期命名、每天下午四点前必须 push 一次。还加了个 CI 检查,分支超过 3 天没动就在群里点名。
阅读全文二维码盘点那批设备,扫码接口踩的坑
哈尔滨工程大学实验室台账二期,给 43 台设备贴二维码做扫码盘点。批量生成时把自增 id 编进了 URL,结果序号能被猜出来;改成随机 token 再映射。另外踩了微信扫一扫截断参数、旧标签重复打印、地下室没信号要离线补传三个坑。
阅读全文Nginx 负载均衡,报名峰值那晚
一场活动报名晚上 8 点开放,单台应用服务器扩成两台,前面挂 Nginx 做负载均衡。峰值每分钟 400 多次请求,其中一台明显慢,查下来是两台机器配置不同却给了相同权重。后来改成 3 比 2,upstream 补了 max_fails 和 fail_timeout,还把会话挪到 Redis。
阅读全文Jenkins 把上线从手动改成脚本
以前上线是一张贴在显示器边的纸条:拉代码、改配置、备份、reload、测 5 个页面。4 月把它搬进 Jenkins,一条流水线 7 个阶段,构建产物带 Git 短哈希命名,回滚就是选上一次的制品重新分发。第一次跑的时候备份那步忘了加 set -e,脚本失败还往下走了。
阅读全文HTTPS 证书过期那次,凌晨两点
一个客户站的证书在凌晨 2 点 07 分过期,值班手机响了。翻记录发现续期邮件发到了两年前离职同事的邮箱。手动换证书只花了 20 分钟,麻烦的是证书链顺序和 Nginx reload 之后旧连接还占着。后来上了到期前 30 天告警,收件人写进配置文件,不写人名。
阅读全文Excel 数据透视帮财务对 500 家门店
不是所有问题都要写代码。客户月底要核 500 家门店的返利,原来三个人对着明细算两天。我们没加功能,只把导出改成一张固定 9 列的宽表,教财务用数据透视按门店加月份拖两下,再加一列 IFERROR 做差异比对。第二天她自己改了一版模板发回来。
阅读全文企业微信接口同步打卡,时间差了 8 小时
对接企业微信打卡数据,本地跑测试全对,一上服务器导出的考勤表整体差 8 小时。查下来是接口返回的时间戳被格式化了两次,中间按 UTC 又解析了一回。顺带踩了 access_token 缓存、分页 cursor 重复和 2000 行批量插入三个坑,记一下。
阅读全文LDAP 统一账号,实验室台账少了一半密码
高校实验室设备台账,原来每台仪器一个本地账号,学生毕业、老师换组,密码就没人说得清。接了学校 LDAP,用学工号统一认证,后台只留角色不管密码。顺带把设备预约的冲突判断从前端挪到数据库,用一条唯一索引挡住同一时段重复预约。
阅读全文小程序首屏 2 秒之外,我们只改了三件事
茶叶电商小程序首屏测下来 3 秒多,没动框架、没换服务器,只改了三件事:主包里的图片挪到 CDN 并换成 webp、把 4 个不常用的页面拆成分包、首页 3 个请求合并成 1 个。改完主包从 1.9M 掉到 1.1M,20 次真机测下来中位数 1.8 秒。记录一下当时怎么量的。
阅读全文定时任务跑了两遍,那个凌晨的对账单
每天凌晨 2 点跑的对账脚本,某天生成了两份汇总,客户财务早上对着两张表愣了半天。原因不是脚本写错,是 crontab 里同一条被贴了两遍,中间隔了 7 行没看见。后来加了文件锁 flock、每次运行写 run_id、日志落一张表,还把 crontab 收进 Git。
阅读全文首页套了 Redis,第二天缓存穿透把库打慢了
首页要查 5 张表,套了 Redis 设 300 秒过期,第二天早上 MySQL CPU 从 20% 跳到 90%。一是过期瞬间几十个请求一起回源,二是 /list?id=999999 这种不存在的 id 每次穿透。加了 setnx 10 秒锁、空值缓存 60 秒、入口验 id 范围,再把 serialize 换成 json_encode。
阅读全文2000 行数据也卡,第一次认真看 MySQL 慢查询
表里才 2000 多行,点一次等三四秒。翻慢查询日志才查出五处:long_query_time 默认 10 秒根本不记、OFFSET 1900 白扫前 1900 行、时间字段套 DATE() 让索引失效、JOIN 两边 INT 与 VARCHAR 不一致、SELECT * 捎回两个 TEXT。没加缓存,看完 EXPLAIN 就好了。
阅读全文










