1. 项目背景与核心价值
"GoCodingInMyWay止"这个看似矛盾的项目名称,实际上揭示了一个现代开发者普遍面临的困境——在技术快速迭代的洪流中,我们是否已经迷失在无休止的框架切换和技术追逐中?这个项目直指编程本质,倡导回归"以我为主"的编码哲学。
我在15年开发生涯中见证过太多团队陷入"技术FOMO"(Fear of Missing Out)的怪圈:盲目追求最新框架、过度设计抽象层、为KPI而重构...直到某次深夜调试一个本应简单的业务逻辑时,我突然意识到:我们写的不是代码,而是自己的技术执念。
这个项目正是对这种现状的反思与实践,它包含三个核心主张:
- 技术选型的克制美学(选用够用的工具)
- 代码组织的个人风格(符合思维习惯的结构)
- 开发节奏的自主控制(不被外部节奏绑架)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术实现方法论
2.1 环境构建原则
我建立了一套"最小可行环境"标准:
bash复制# 开发环境检查清单(以Go为例)
$ go version | grep -q "1.20+" || echo "需要Go 1.20+"
$ [ -z "$(which docker)" ] && echo "建议但不强制使用Docker"
$ make -v | grep -q "GNU Make" || echo "需要GNU Make基础功能"
关键配置参数说明:
- 语言版本:选择LTS版本而非最新版(如Go 1.20而非1.22)
- 依赖管理:采用最小依赖原则,每个新增依赖需书面说明
- IDE配置:禁用所有实时lint工具,保留手动触发检查
实践发现:过度工具链会使开发者注意力分散。我的VSCode现在只有语法高亮和基础补全,效率反而提升40%
2.2 代码组织范式
典型项目结构示例:
code复制/my_way
├── pkg/ # 领域核心
│ ├── order/ # 业务聚合根
│ └── payment/ # 支付上下文
├── cmd/
│ └── main.go # 薄入口
└── internal/ # 私有实现
└── utils/ # 项目特定工具
与标准DDD/Clean Architecture的区别:
- 按认知
