Hugo Gu 的个人知识库 —— 记录技术实践、业务思考与工程经验。
本笔记空间尝试以客观的方式,记录笔者所经历过的问题以及解决过程所用到的相应的知识。
众所周知,技术是客观的,业务也是客观的。然而,如何合理地使用技术,以及如何将技术与业务结合,去解决实际的问题,却是相对主观的。尽管如此,这里也尽量让做出判断的方法与根据更加客观。也希望同类问题的解决方案与模式能更通用,更普适。
知识库的内容主要涵盖以下几个领域:
对于业界实践的总结与归纳。时常会有一定的主观成份,但力求有理有据。
| 规范 | 说明 |
|---|---|
| Git 使用规范 | 分支管理、提交信息、代码审查流程 |
| 编码规范 | 代码风格、命名约定、结构组织 |
| 命名规范 | 变量、函数、类、文件命名最佳实践 |
| 注释规范 | 何时注释、如何注释、注释即文档 |
| 日志规范 | 日志级别、格式、采样与聚合策略 |
| 异常处理规范 | 错误分类、恢复策略、用户友好提示 |
| REST API 设计规范 | 资源命名、状态码、版本控制、安全 |
| 服务配置规范 | 环境管理、密钥处理、配置分层 |
| 文档编写规范 | 技术文档的结构、风格与维护 |
| 技术选型指引 | 评估维度、决策流程、风险控制 |
| 函数式领域驱动设计要点 | DDD 与函数式编程的结合实践 |
| 代码函数式化指南 | 面向对象代码向函数式风格的迁移 |
| 甩锅指南 | 问题定位、责任界定与沟通技巧(半正经) |
| 发布计划规范 | 版本管理、灰度发布、回滚策略 |
| 监控告警规范 | 指标设计、告警分级、on-call 机制 |
| Workflow 使用指引 | CI/CD 流程设计与工具链配置 |
| 代码质量指标 | 可量化的代码健康度评估体系 |
| 事故分析规范 | Post-mortem 流程、根因分析、改进措施 |
| 服务划分规范 | 微服务边界识别与拆分策略 |
| Message Broker 使用规范 | 消息队列选型、使用模式与避坑指南 |
| 主题 | 说明 |
|---|---|
| 单一责任原则 | SOLID 之首:一个模块只负责一件事 |
| DRY 原则 | Don't Repeat Yourself:消除重复,提取抽象 |
| 分层原则 | 系统分层的意义、边界与通信规则 |
| 软件工程原则 | 高内聚低耦合、关注点分离等核心原则 |
| 反原则 | 那些看似正确实则有害的"原则" |
| CAP 定理 | 分布式系统的基本约束与权衡 |
| 系统架构 | 架构风格、模式与决策框架 |
| 微服务架构 | 服务拆分、通信、治理与演进 |
| 地理分片 | 数据按地域分布的策略与实践 |
| 数据模型设计 | 领域建模、数据库设计与范式 |
| 幂等控制 | 分布式系统中的幂等性设计与实现 |
| 双写问题 | 数据一致性挑战与解决方案 |
| 上下游信息交换协议 | 系统间契约设计与版本管理 |
| 模式 | 说明 |
|---|---|
| Sagas 模式 | 分布式事务的长事务处理方案 |
| Outbox 模式 | 可靠消息发布的实现模式 |
| 异步通信 | 消息驱动架构的设计要点 |
| 值、引用和实体 | DDD 中的核心概念辨析 |
| RPC 协议 | 远程过程调用的设计与实现 |
| 反模式 | 常见软件设计陷阱与规避方法 |
| 技术 | 说明 |
|---|---|
| Apache httpd vs Debian Apache2 | 包管理差异与配置对比 |
| RabbitMQ vs Kafka | 消息队列选型对比与场景分析 |
| 主题 | 说明 |
|---|---|
| Web API 设计 | RESTful API 设计最佳实践 |
| Header 与 Body | HTTP 报文结构的设计抉择 |
| API 中的各种 ID | 系统内各类标识符的设计规范 |
| 工具 | 说明 |
|---|---|
| Git Commands | 常用 Git 命令速查 |
| Docker Command | Docker 日常操作手册 |
| Prometheus 使用手册 | 监控指标采集与查询 |
| Gradle 使用参考 | 构建脚本编写与插件配置 |
| kubectl 命令 | Kubernetes 日常运维命令 |
| GitLab API | GitLab 自动化操作接口 |
| ElasticSearch 参考 | 索引、查询与集群管理 |
| Open Search | 搜索协议标准与实现 |
| Jupyter Notebook | 交互式计算环境使用 |
| Grimoire | 开源项目分析平台 |
| JDK 安装与使用 | Java 开发环境配置 |
| Maven 使用手册 | 项目构建与依赖管理 |
| Grafana 面板定制 | 监控可视化完全指南 |
| Debian Baseline | Debian 系统安全基线配置 |
| SSL Certification | 证书申请、配置与续期 |
| IntelliJ IDEA 完全使用指南 | IDE 高效使用技巧 |
| 主题 | 说明 |
|---|---|
| 磁盘管理 | Linux 文件系统与存储管理 |
| Docker 使用安全基线 | 容器化环境的安全加固 |
| 术语 | 说明 |
|---|---|
| Upstream & Downstream | 上下游依赖关系的定义与影响 |
| 主题 | 说明 |
|---|---|
| 新西兰金融交易系统 | 新西兰金融市场基础设施 |
| 金融交易类型划分 | 支付、转账、结算等交易分类 |
| 支付系统 | 支付系统架构与核心流程 |
| 金融账户类型 | 各类金融账户的定义与用途 |
| 支付方式的账户体系 | 不同支付工具背后的账户结构 |
| 金融系统中的时间概念 | 工作日、结算日、截止时点等 |
| 金融行业常见缩略词 | 金融业务常用缩写速查 |
Hugo Gu —— 宝付跨境基础技术部负责人,专注于风控系统、账务系统改造与 AI 技术落地。
💡 提示:本知识库使用 Wiki.js 搭建,内容持续更新中。如发现错误或有建议,欢迎通过 GitHub 或邮件联系。