跳过正文
  1. 所有文章/

01|从零开始构建Go项目概述

·1093 字·3 分钟
目录
从零开始构建Go项目 - 这篇文章属于一个选集。
§ 1: 本文

项目背景
#

该项目名称是IAM,IAM (ldentity and Access Management,身份识别与访问管理)系统是用 Go 语言编写的一个 Web 服务,用于给第三方用户提供访问控制服务。

IAM 系统可以帮用户解决的问题是:在特定的条件下,谁能够/不能够对哪些资源做哪些操作(Who is able to do what on something given some context),也即完成资源授权功能。

那么,IAM 系统是如何进行资源授权的呢? 下面我们通过 IAM 系统的资源授权的流程,来看下它是如何工作的,整个过程可以分为4步。

IAM系统的功能示意图

  • 第1步: 用户需要提供昵称、密码、邮箱、电话等信息注册并登录到 IAM 系统,以此作为唯一的身份标识来访问 IAM 系统完成认证,这里是通过用户名和密码进行认证的。
  • 第2步: 因为访问 IAM 的资源授权接口是通过密钥(secretiD/secretKev)的方式进行认证的,所以用户需要在IAM 中创建属于自己的密钥资源。
  • 第3步: 因为 IAM 通过授权策略完成授权,所以用户需要在 IAM 中创建授权策略。
  • 第4步: 请求 IAM 提供的授权接口,IAM 会根据用户的请求内容和授权策略来决定一个授权请求是否被允许。

我们可以看到,在上面的流程中,IAM 使用到了3种系统资源:用户(User)、密钥(Secret)、策略(Policy)。它们映射到程序设计中就是 3 种 RESTful 资源: ·用户(User):实现对用户的增、删、改、查、修改密码、批量修改等操作。 ·密钥(Secret):实现对密钥的增、删、改、查操作。 ·策略(Policy):实现对策略的增、删、改、查、批量删除操作。

系列简介
#

在实际开发中,搭建一个完整、规范、可维护的 Go 项目需要考虑很多方面:项目结构如何设计?配置如何管理?日志如何规范?错误如何处理?API 如何设计?……这些问题往往困扰着初学者。

本系列文章将系统性地介绍如何从零开始构建一个生产级的 Go 项目,涵盖从项目初始化到最终部署的完整流程。通过学习本系列,你将掌握:

  • 规范的项目结构设计 - 符合 Go 社区最佳实践
  • 完善的基础设施搭建 - 配置管理、日志系统、错误处理
  • Web 服务开发技巧 - 路由设计、中间件开发、优雅关闭
  • 企业级开发实践 - 代码规范、测试覆盖
  • 生产环境部署方案 - Docker 容器化

知识点
#

按照开发顺序把它们总结在下面这张图中,图中的包含了Go项目开发中的大部分技能点。

知识点

构建流程
#

本系列采用循序渐进的方式,按照实际项目开发的顺序组织内容。下图展示了完整的构建步骤,建议按照从上至下的顺序进行:

大纲

适合人群
#

  • 🎯 有一定 Go 语言基础,想要学习工程化实践的开发者
  • 🎯 需要搭建生产级 Go 项目的开发者
  • 🎯 想要了解企业级 Go 项目最佳实践的学习者

预备知识
#

开始学习前,建议你已经掌握:

  • Go 语言基础语法
  • 基本的 HTTP 协议知识
  • 基础的 Linux 命令操作

参考
#

孔令飞的Go项目开发高级实战课

从零开始构建Go项目 - 这篇文章属于一个选集。
§ 1: 本文