我是 AHdark,全栈开发工程师,专注于 Web 及客户端的业务系统开发,同时对嵌入式开发、机器学习、算法等有一定了解。
出生于 2007 年,在 2012 年拥有了自己的第一台电脑并开始了解计算机,2014 年开始学习计算机程序设计(C++),2020 年开始接触 Web 全栈开发。大约 2017 年开始学习 OI 内容,并参加算法竞赛。
主要活动于 GitHub1,个人开源了部分项目,同时广泛参与社区维护。目前在 GitHub 上有数百个仓库,主要集中在 Web 和 workflow 工具链等方面。2
曾在数家公司任职,主要负责软件开发和 DevOps 工作。经过数年学习,当前已经基本具备对于中小型企业业务系统的架构能力。
在数年的学习和实践中,我积累了一定的技能。
前端方面,主要以 React 为主,亦对 Vue3、Angular 等框架有所了解。熟悉 TypeScript 与 JSDoc,广泛使用其辅助项目开发。Monorepo 架构的项目开发经验丰富,主要使用 pnpm workspace 与 TurboRepo 进行项目管理。
UI 框架上,我曾经长期使用 MUI,目前主要使用 TailwindCss 与 Radix Headless UI。我的状态管理方案主要包括 Redux Toolkit、Zustand 和 Mobx 等方案。在开发过程中,我趋向于使用较为严格的代码风格,同时使用 ESLint、Prettier 或 Biome 等工具进行代码风格的自动化管理。
当前 GitHub 已统计的 TypeScript 代码行数为 24k+。3
近期主要作品:
后端方面,主要使用 Go 进行开发,同时也有使用过 Node.js、Python、C++ 20、Kotlin 等语言进行开发。由于我的 Go 代码行数已达 130k+
行3,因此我在本段落1️以 Go 为主。
我是 Uber Go Fx 的深度使用者,目前已经积累了约 2 年的 Fx 使用经验。目前在最新的应用中,不论是单体还是微服务,我都会使用 Fx
进行全局依赖注入。5
我曾经大量使用 Gin,目前主要使用 Hertz。Hertz 提供了更为优秀的微服务一体化框架解决方案,尤其是在链路追踪、Prometheus 集成等方面,同时具有良好的对 Gin 的兼容性。6 对于微服务框架,我比较喜欢 Cloudwego 的 Kitex。作为字节跳动的开源产品,Kitex 在性能上有着极大的优势,同时在使用上也较为友好,侵入性较低。7
我主要使用 MariaDB、Postgres 等作为关系型数据库,同时也有使用过 MySQL、SQLite 等。在非关系型数据库上,我主要使用 Redis、Memcached、ElasticSearch、Cassandra 等。在数据库 ORM 上,我主要使用 GORM,同时也有使用过 Xorm 等。我通常在 Gorm 基础上使用
Gorm Gen,以避免 reflector 带来的性能折损和开发上容易犯的错误。8
RabbitMQ 是我目前主要使用的消息队列。但在大多数情况下,我不会将其作为微服务的通信方式,而是将其作为异步任务的执行方式。同时我还有使用 Etcd 等作为应用的配置中心,使用 Consul 等作为服务发现与注册中心。
作为云原生的坚定拥护者,我通常会对应用进行容器化处理,因此对于 Dockerfile 的编写有着丰富的经验。同时,我也持有一个 Kubernetes 集群,我偏好使用 GKE(Google Kubernetes Engine)作为 Kubernetes 的托管平台。9 我通常使用 GitHub Actions 和 Google Builds 提供 CI/CD 支持。
近期主要作品:
我所撰写的 Go 应用多为商业项目,因此不便于开源。我一般会将一些工具类项目开源。
我持有一个 Kubernetes 集群,在先前曾负责两个 Kubernetes 集群的运维工作。我通常使用 GKE 作为 Kubernetes 的托管平台。
KubeSphere 是我目前主要使用的 Kubernetes 管理平台,在包管理方面我使用 Helm,在生产环境的部署上我更偏好 Kustomize 和 Istio。
DevOps 方面,我主要使用 GitHub Actions 作为 CI/CD 工具,曾经对于一个微服务项目配置了完整的 CI/CD 流程。你可以查看文章 使用 GitHub CI 自动推送镜像到 GAR,这是我们的容器 registry 解决方案。
我从初二与人合伙创立第一个小型公司后,便不断的在提高自己的人际关系和业务能力。
自 2023 年 10 月起,我基本停止了在公司的长期任职,转而成为半自由职业者。对于公司的时间投入显著减少。
我将在未来的数年内继续致力于提高自身能力。我将在 2025 年参加高考,希望能够考入一所理想的大学。同时,我也希望能够在未来的数年内能够进一步发展自己的产业,改变生产方式,提高生产效率。
当然,作为一个永远的技术爱好者,我会不断学习,无限进步。
GitHub 仓库数量统计于 2023 年 1 月。 ↩
GitHub: uber-go/fx ↩
GitHub: gin-gonic/gin、cloudwego/hertz ↩
GitHub: cloudwego/kitex ↩
GitHub: AH-dark/epay-cli ↩
官网: goreleaser ↩
GitHub: uber-go/nilaway ↩