全栈电商微服务
13 篇文章
- 电商篇:性能——首页迁到 SSR,PageSpeed 移动端从 61 做到 100PageSpeed 移动端 61、桌面 88,TBT 和 CLS 却是满分。从五个指标的权重反推丢分在哪,用 Lighthouse 的网络时间线定位到一份 162 KB 的阻塞 CSS——里面全是 @fontsource 的 303 条 @font-face——和一个动态 import 造成的第二波 45 个请求。两条路线的取舍,首页迁到 Next.js 静态渲染的实现,字体子集从 130 KB 减到 19 KB,以及发布过程里 Dockerfile、preload、ISR 只读卷、调度死锁和 Lighthouse 抖动七个坑。
- 基础设施篇:Reloader 让 Secret 变更自动滚动 Pod凭据后端改了值、ESO 把新值写进了 Kubernetes Secret,Pod 却还在用旧密码。用 stakater/Reloader 补上这一环,同时说清它管不到的那一段:微服务的凭据在配置中心里,不在 Secret 里。
- 电商篇:Spec Coding——让 AI 按仓库规范干活,而不是靠猜以 JavaGuide 的 Spec Coding 文章为框架,对照电商仓库的实际做法:规范放在哪、怎么被 AI 读到、三色权限如何落成硬规则与 CI 门禁、验收标准怎样写到可判定、关单前的完成自检,以及规范改了之后如何反查受影响的实现。
- 电商篇:安全——基于请求方法的访问控制绕过从「把 POST 改成 GET 就能提权」这个常见漏洞出发,解释授权层按 (路径, 方法) 匹配而执行层不看方法的病因,再拿电商项目的真实代码逐层核查:Connect 的 405、网关 Casbin 的默认拒绝、策略文件的通配陷阱、CSRF 豁免与 NO_SIDE_EFFECTS 的耦合。核查挖出一处真实缺口(审批 RPC 完全依赖网关),随后落地三道门禁:handler 内按动作授权、策略 act 列只认字面 POST、proto 标记进白名单,含回归测试与金丝雀验证。
- GitOps 篇 01:用 Gitleaks 阻止凭据进入 Git 历史以电商项目的真实 GitOps 工作流为背景,解释 Gitleaks 扫描什么、为什么要同时守住暂存区与完整历史,以及如何在本地和 GitHub Actions 中建立失败即阻断的凭据门禁。
- 基础篇:Git 配置配置 git 的用户名与邮箱:为什么必须用在 GitHub/GitLab 上绑定并验证过的邮箱(否则提交不计入贡献者),以及一份可直接抄的 ~/.gitconfig——彩色输出、pager、autocrlf、代理与按提交时间排序的分支列表。
- 基础设施篇:Spegel 镜像 P2P 分发在 Kubernetes 集群中用 Spegel 让节点共享容器镜像层:理解它与镜像仓库、Docker Buildx、crane 的边界,判断适用场景,并设计不绕过签名和准入校验的 PoC。
- 电商篇:客户支持——配置自定义域名邮箱用 Cloudflare Email Routing 接收 support@example.com,通过 Resend 安全发送客服邮件,并整理软件许可协议、隐私政策、退款与支持规则。
- 基础篇:提高物理层面开发效率全栈电商微服务系列的基础篇:开发机与显示器的选择、输入法取舍,以及 Control 与 Command 互换、左右分屏、菜单栏与程序坞操作、聚焦搜索启动应用这几组 macOS 键盘快捷键的设置步骤。
- 基础篇:语言安装安装项目所需的语言与包管理器:从官网安装 Golang,用 fnm 安装并管理 Node.js LTS,以及单独下载二进制安装 pnpm 12(说明为什么不用 Corepack,以及 11 与 12 的取舍)。
- 基础篇:通过软件提高开发效率从软件层面提高开发效率:终端工具(Warp、Termius、WindTerm)的选择与标签页用法,以及两个不依赖 Docker 守护进程的辅助工具——直接操作远端镜像仓库的 crane 和校验 Kubernetes 清单的 kubeconform。
- 全栈电商微服务从 0 到 1 再到 10:开篇系列开篇:说明这套教程覆盖的范围、「全栈」的具体定义——Node.js(React + TypeScript)前端,加上 Golang 构建的面向微服务的 API 网关与按 DDD 业务能力拆分的微服务——以及各篇的阅读顺序。
- 电商篇:安装依赖安装电商项目所需的两个 Golang 代码生成插件:把 .proto 生成 Go 消息类型的 protoc-gen-go,以及生成 Connect RPC 服务端与客户端代码的 protoc-gen-connect-go;说明二进制落在哪里、需要什么前置条件。