← 返回博客

陈明辉

后端开发工程师 · PHP / Laravel · 8 年

做过 100+ 租户的物业 SaaS,做过跨境电商 ERP,也做过从 0 到 1 的数据采集系统。 擅长把业务流程拆清楚,然后用最少的代码把它跑稳 —— 一个人能走完从架构到部署的整条链路。

8 年后端开发经验
100+租户的在跑 SaaS 系统
98%采集系统稳定成功率
60+篇原创技术文章

Selected Work

从 0 到 1 搭建亚马逊数据采集系统

跨境电商 ERP · 2019 – 2021 · 主导架构与核心开发

采集成功率 98%,后台报表人力成本下降 70%,数据入库效率提升 50%。

背景

跨境电商 ERP 需要持续的亚马逊商品、评论和经营报表数据。原来的做法是人工下载、人工整理, 数据滞后,覆盖也不全。公司提出需求时,团队里没有人做过成规模的采集。

我的角色

主动提出转 Python 承接这个方向,负责架构设计并完成核心开发;后期有一名 Python 同事加入协作调优。

关键决策

  1. 用 Scrapy-Redis,而不是自研调度。 自研能省掉学习成本,但队列、去重、断点续爬都要自己造。在只有一个人的情况下, 把有限的精力放在反爬和稳定性上,比造轮子划算。
  2. 前台采集和后台报表拆成两条链路。 前台是 HTML 解析,后台是登录态加文件下载,两者失败模式完全不同。混在一起会让重试逻辑失控, 所以后台单独用 Selenium 模拟浏览器完成下载与回传。
  3. 把反爬当成持续运营,而不是一次性工程。 动态代理池和请求特征混淆只是入场券。真正的稳定性来自监控:成功率跌破阈值就告警, 自动降速而不是硬刚。

结果

采集成功率稳定在 98% 以上;报表环节人力成本下降 70%;Supervisor 集群加 MongoDB 分片, 数据入库效率提升 50%。这套系统后来一直支撑着选品和广告分析的数据底座。

如果重做一次:我会在第一天就加上采集质量看板。采集系统最难的不是爬下来,是 证明数据是准的 —— 这个认知是后来做多租户采集时才真正补上的。

100+ 租户物业 SaaS 的开户流程重构

多租户 SaaS · 2021 – 2024 · 主导方案与落地

开户时长从半小时以上压缩到分钟级,整体效率提升 90%,成为后续租户迁移的标准流程。

背景

这套物业系统服务 100 多个租户。每开一个新租户,要跨多个模块初始化数据、校验第三方接口、分配权限, 全流程同步串行。客户等半小时是常态,一线实施的同事怨声很大。

我的角色

主导方案设计与落地,从问题定位、链路重设计到上线验收全程负责。

关键决策

  1. 先做流程拆解,不急着优化 SQL。 把开户拆成「校验 — 初始化 — 授权 — 通知」四段,用耗时打点找出真正的瓶颈。 结论是:大头在串行的远程调用和循环里的重复查询,不在数据库本身。
  2. 可并行的环节异步化,用状态机兜底。 异步化会带来最终一致性问题,所以引入开户状态机和补偿任务: 任何一步失败都能重试到确定状态,而不是让用户面对一个「不知道成没成」的页面。
  3. 把进度做成可见的。 技术上做到分钟级已经达标,但用户感知的是「有没有反馈」。 加上进度展示之后,同样的耗时,投诉量明显下降。

结果

开户从半小时级降到分钟级,效率提升 90%。这套流程后来又用于历史租户的批量迁移, 把一次性的性能优化变成了可复用的实施标准。

沉淀下来的判断:性能问题的第一现场往往不在数据库,而在调用链的形状。 先画清楚链路,再谈优化手段 —— 反过来做,很容易优化了一个本来就不慢的环节。

AI 辅助下的实时聊天系统全栈交付

独立交付 · 2025 · 一个人完成前端 + 后端 + 部署

在没有前端经验的前提下,单人交付一套含 WebSocket 实时推送、多语言、复杂状态管理的聊天系统,按期上线。

背景

接的一个项目,需要聊天窗口加后台管理端。后端我有把握,但前端我只在入行时碰过 HTML 和 CSS, 工作之后一直做后端,样式和交互早就丢了。

我的角色

独立交付,从需求沟通、方案设计到开发、部署、验收,全流程一个人。

关键决策

  1. 先写交互清单,再让 AI 生成代码。 这一步是关键。直接说「帮我写个聊天界面」,拿到的是漂亮但跑不通的静态页; 先把状态、事件、边界条件列成清单,AI 产出的一次通过率会高得多。
  2. AI 负责起草,人负责判断。 组件骨架、样式、多语言文案交给 AI;消息顺序、断线重连、已读回执、并发发送这些逻辑必须自己设计 —— 这恰恰是 AI 最容易写出「看起来对、实际会丢消息」的地方。
  3. 把验收标准前置。 每完成一个模块就先自测一遍再往下走,避免最后一次性联调时才发现状态管理已经烂了。

结果

按期交付,客户验收通过。更重要的是,这套流程被我固化了下来: 先定验收标准 → 让 AI 批量产出 → 人工收敛。它现在是我接任何一个陌生技术栈项目时的默认打法。

对 AI 的理解:它提升的是起草速度,不是判断力。 它让人从「不会写」变成「能写出来」,但能不能交付,仍然取决于你有没有能力定义清楚「什么叫做对了」。

Stack

语言
PHP(Laravel / Lumen / Yii2 / CodeIgniter)、Python(Scrapy / Flask / Celery)、Java
数据
MySQL、Redis、MongoDB、RabbitMQ
工程
Docker、Nginx、Git、CI/CD、Supervisor、Linux
方向
多租户架构、高并发与协程、数据采集与反爬、AI 辅助开发与 LLM 应用集成