• 企业级Go项目开发实战
  • 企业级Go项目开发实战
21年品牌 40万+商家 超1.5亿件商品

企业级Go项目开发实战

全新正版 极速发货

92.94 7.2折 129 全新

库存3件

广东广州
认证卖家担保交易快速发货售后保障

作者孔令飞 著

出版社机械工业

ISBN9787111716341

出版时间2023-01

装帧平装

开本其他

定价129元

货号31649363

上书时间2024-07-04

书香美美

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
孔令飞<br/>腾讯云容器技术专家,曾就职于联想和RedHat,拥有多年Go项目开发和管理经验。<br/>云计算技术专家,在云计算领域有非常丰富的实践经验。Kubernetes社区贡献者,对Kubernetes、Docker、Serverless、微服务等技术有深入的理解。<br/>腾讯学院特约讲师,极客时间《Go语言项目开发实战》专栏作者,掘金《基于Go语言构建企业级的RESTfulAPI服务》专栏作者。 <br/>

目录
第一部分 项目准备
第1章 Go开发环境准备2
1.1 机器选择2
1.1.1 开发机选择3
1.1.2 办公机选择3
1.2 Windows终端模拟器安装和配置3
1.3 Linux服务器申请和配置4
1.3.1 Linux服务器申请4
1.3.2 登录Linux服务器5
1.3.3 Linux服务器配置6
1.3.4 依赖安装和配置8
1.4 Go编译环境安装和配置9
1.4.1 Go编译工具安装和配置10
1.4.2 Protobuf编译环境安装11
1.5 Go IDE安装和配置12
1.6 本章总结14
第2章 快速部署IAM系统15
2.1 为什么选择IAM系统作为实战项目15
2.2 IAM系统概述16
2.2.1 IAM资源授权流程16
2.2.2 IAM系统架构介绍17
2.2.3 通过使用流程理解架构18
2.3 下载IAM项目代码20
2.4 安装和配置数据库21
2.4.1 配置scripts/install/environment.sh21
2.4.2 安装和配置MariaDB21
2.4.3 安装和配置Redis22
2.4.4 安装和配置MongoDB22
2.5 安装和配置IAM系统24
2.5.1 准备工作25
2.5.2 安装和配置iam-apiserver28
2.5.3 安装iamctl32
2.5.4 安装和配置iam-authz-server34
2.5.5 安装和配置iam-pump36
2.5.6 安装和配置 iam-watcher38
2.5.7 安装 man 文件39
2.5.8 测试IAM系统是否安装成功40
2.6 彩蛋:一键安装40
2.7 本章总结41
第二部分 项目设计
第3章 规范设计44
3.1 有哪些地方需要制定规范44
3.2 开源规范45
3.2.1 开源协议概述45
3.2.2 开源协议选择46
3.2.3 开源规范有什么47
3.2.4 开源规范详细内容47
3.2.5 运营开源项目48
3.3 文档规范49
3.3.1 README 文档规范49
3.3.2 项目文档规范50
3.3.3 API文档规范51
3.4 Commit Message规范53
3.4.1 Commit Message规范有哪些53
3.4.2 与Commit Message相关的3个
   重要内容59
3.4.3 Commit Message规范自动化66
3.5 版本规范67
3.5.1 什么是语义化版本规范67
3.5.2 语义化版本规范示例69
3.5.3 如何确定版本号69
3.6 本章总结69
第4章 目录结构设计71
4.1 如何规范目录71
4.2 平铺式目录结构72
4.3 结构化目录结构73
4.3.1 Go应用:主要存放前后端代码75
4.3.2 Go应用:主要存放测试相关的
   文件和代码78
4.3.3 Go应用:存放与应用部署相关
   的文件78
4.3.4 项目管理:存放管理Go项目的
   各类文件79
4.3.5 文档:主要存放项目的各类文档80
4.3.6 不建议的目录82
4.4 一些建议82
4.5 本章总结83
第5章 工作流设计84
5.1 集中式工作流84
5.2 功能分支工作流85
5.3 Git Flow工作流88
5.3.1 Git Flow的5种分支88
5.3.2 Git Flow开发流程88
5.4 Forking工作流91
5.5 本章总结93
第6章 研发流程设计95
6.1 如何设计Go项目的研发流程95
6.2 在设计研发流程时,需要关注
   哪些点96
6.3 业界相对标准的研发流程96
6.3.1 需求阶段96
6.3.2 设计阶段98
6.3.3 开发阶段98
6.3.4 测试阶段100
6.3.5 发布阶段100
6.3.6 运营阶段102
6.4 角色与分工102
6.5 如何管理应用的生命周期104
6.6 应用生命周期管理技术有哪些104
6.7 研发模式105
6.8 CI/CD:自动化构建和部署应用106
6.8.1 持续集成107
6.8.2 持续交付107
6.8.3 持续部署107
6.9 DevOps:研发运维一体化108
6.9.1 AIOps:智能运维108
6.9.2 ChatOps:聊着天就把事情
   给办了109
6.9.3 GitOps:一种实现云原生的
   持续交付模型109
6.9.4 NoOps:无运维110
6.10 如何选择合适的应用生命周期
   管理技术111
6.11 本章总结111
第7章 如何写出优雅的Go项目112
7.1 优雅Go项目实现思路112
7.2 编写高质量的Go应用113
7.2.1 代码结构114
7.2.2 代码规范115
7.2.3 代码质量116
7.2.4 编程哲学119
7.2.5 软件设计方法124
7.3 高效管理项目125
7.3.1 高效的开发流程125
7.3.2 使用Makefile管理项目126
7.3.3 自动生成代码126
7.3.4 善于借助工具127
7.3.5 对接CI/CD127
7.4 编写高质量的项目文档128
7.5 本章总结128
第8章 Go语言设计模式?130
8.1 创建型模式131
8.1.1 单例模式131
8.1.2 工厂模式133
8.2 行为型模式136
8.2.1 策略模式136
8.2.2 模板模式138
8.3 结构型模式139
8.3.1 代理模式139
8.3.2 选项模式140
8.4 本章总结144
第三部分 项目管理
第9章 如何编写Makefile148
9.1 规划Makefile要实现的功能149
9.2 设计合理的Makefile结构151
9.3 掌握Makefile编写技巧153
9.3.1 善用通配符和自动变量153
9.3.2 善用函数153
9.3.3 依赖需要用到的工具154
9.3.4 把常用功能放在/Makefile中,
   不常用的放在分类Makefile中154
9.3.5 编写可扩展的Makefile155
9.3.6 将所有输出存放在一个目录下,
   方便清理和查找156
9.3.7 使用带层级的命名方式156
9.3.8 做好目标拆分157
9.3.9 设置OPTIONS157
9.3.10 定义环境变量158
9.3.11 自己调用自己159
9.4 本章总结159
第10章 IAM项目研发流程实战160
10.1 开发阶段160
10.1.1 代码开发160
10.1.2 代码提交165
10.2 测试阶段167
10.3 IAM项目的Makefile项目管理
   技巧168
10.3.1 Makefile help命令自动解析169
10.3.2 在options中指定变量值169
10.3.3 自动生成CHANGELOG169
10.3.4 自动生成版本号169
10.3.5 保持行为一致170
10.4 本章总结171
第11章 静态代码检查172
11.1 为什么选择golangci-lint做静态
    代码检查172
11.2 golangci-lint命令173
11.3 golangci-lint配置175
11.4 如何使用golangci-lint进行静态
    代码检查178
11.5 golangci-lint使用技巧180
11.6 本章总结182
第12章 生成Swagger API文档183
12.1 Swagger介绍183
12.2 Swagger和OpenAPI的区别184
12.3 用go-swagger来生成Swagger API
    文档184
12.3.1 安装swagger工具185
12.3.2 swagger命令行工具介绍185
12.4 如何使用swagger命令生成
   Swagger文档186
12.4.1 解析注释生成Swagger文档186
12.4.2 go-swagger其他常用功能介绍192
12.5 IAM Swagger文档194
12.6 本章总结195
第四部分 项目开发
第13章 错误处理198
13.1 错误码设计198
13.1.1 期望错误码实现的功能199
13.1.2 常见的错误码实现方式199
13.1.3 错误码设计建议201
13.1.4 业务Code码设计201
13.1.5 如何设置HTTP状态码202
13.2 IAM项目错误码设计规范203
13.2.1 错误码设计规范203
13.2.2 错误信息规范说明204
13.2.3 IAM API返回值说明204
13.3 错误包204
13.3.1 错误包需要具有哪些功能204
13.3.2 错误包的实现208
13.3.3 如何记录错误212
13.4 一个错误码的具体实现215
13.5 错误码实际使用示例218
13.6 本章总结219
第14章 日志处理220
14.1 如何设计日志包220
14.1.1 基础功能220
14.1.2 高级功能222
14.1.3 可选功能224
14.1.4 设计时需要关注的点226
14.2 如何记录日志226
14.2.1 在何处打印日志227
14.2.2 在哪个日志级别打印日志228
14.2.3 如何记录日志内容229
14.2.4 记录日志的佳实践总结230
14.3 拓展内容:分布式日志解决方案
   (EFK/ELK)230
14.4 有哪些优秀的开源日志包231
14.4.1 标准库log包232
14.4.2 glog232
14.4.3 logrus232
14.4.4 zap233
14.4.5 开源日志包选择233
14.5 从零开始编写一个日志包234
14.5.1 定义日志级别和日志选项234
14.5.2 创建Logger及各级别日志
    打印方法236
14.5.3 将日志记录到支持的输出中237
14.5.4 自定义日志输出格式239
14.5.5 测试日志包239
14.6 IAM项目日志包设计实战240
14.7 本章总结244
第15章 GORM ORM应用245
15.1 GORM基础知识245
15.2 通过示例学习GORM246
15.2.1 自动迁移表结构248
15.2.2 插入表记录248
15.2.3 获取符合条件的记录248
15.2.4 更新表记录248
15.2.5 删除表记录249
15.2.6 获取表记录列表249
15.3 GORM常用操作讲解249
15.3.1 模型定义250
15.3.2 连接数据库251
15.3.3 创建记录251
15.3.4 删除记录252
15.3.5 更新记录253
15.3.6 查询数据253
15.3.7 高级查询254
15.3.8 原生SQL255
15.3.9 GORM钩子255
15.4 iam-apiserver中的CURD操作256
15.5 本章总结260
第16章 Web服务功能实现261
16.1 Web服务的核心功能261
16.1.1 基础功能262
16.1.2 高级功能262
16.2 Web框架为什么选择Gin263
16.3 Gin是如何支持Web服务的基础
   功能的264
16.3.1 HTTP/HTTPS支持268
16.3.2 JSON数据格式支持269
16.3.3 路由匹配270
16.3.4 路由分组270
16.3.5 一进程多服务271
16.3.6 参数解析、参数校验、逻辑
    处理、返回结果272
16.4 Gin是如何支持Web服务的高级
   功能的274
16.4.1 中间件274
16.4.2 认证、RequestID、跨域277
16.4.3 优雅关停277
16.5 本章总结279
第17章 IAM应用构建280
17.1 如何构建应用框架280
17.2 应用构建三剑客281
17.2.1 命令行参数解析工具:Pflag281
17.2.2 配置解析神器:Viper285
17.2.3 现代化的命令行框架:Cobra291
17.3 构建应用的基础:应用的三大
   基本功能297
17.4 iam-apiserver是如何构建应用
   框架的298
17.5 App包的设计和实现300
17.5.1 构建应用301
17.5.2 命令行程序构建301
17.5.3 命令行参数解析302
17.5.4 配置文件解析305
17.6 IAM应用构建的优秀特性306
17.7 构建应用的注意事项307
17.8 本章总结307
第18章 IAM认证功能实现309
18.1 认证与授权的区别309
18.2 4种基本的认证方式310
18.2.1 基础认证310
18.2.2 摘要认证311
18.2.3 开放授权认证312
18.2.4 令牌认证314
18.3 基于JWT的Token认证机制实现314
18.3.1 JWT简介314
18.3.2 JWT认证流程315
18.3.3 JWT格式315
18.4 如何设计IAM项目的认证功能318
18.5 IAM项目是如何实现Basic
   认证的320
18.6 IAM项目是如何实现Bearer
   认证的326
18.6.1 iam-authz-server Bearer认证
    实现326
18.6.2 iam-apiserver Bearer认证
    实现330
18.7 IAM项目认证功能设计技巧333
18.8 本章总结334
第19章 IAM API服务构建335
19.1 RESTful API介绍335
19.1.1 什么是RESTful API336
19.1.2 RESTful API设计原则337
19.1.3 RESTful API示例341
19.2 RPC API介绍341
19.2.1 什么是RPC 341
19.2.2 gRPC简介342
19.2.3 Protocol Buffers介绍343
19.2.4 gRPC示例344
19.3 REST与gRPC351
19.4 iam-apiserver服务介绍352
19.4.1 iam-apiserver功能介绍352
19.4.2 iam-apiserver使用方法介绍353
19.5 iam-apiserver代码实现357
19.5.1 iam-apiserver配置处理357
19.5.2 iam-apiserver启动流程359
19.5.3 iam-apiserver的RESTful API
    请求处理流程360
19.5.4 iam-apiserver代码架构361
19.6 iam-apiserver服务核心功能实现
   讲解369
19.6.1 与应用框架相关的特性369
19.6.2 与编程规范相关的特性375
19.6.3 其他特性383
19.7 本章总结387
第20章 IAM Authz服务构建388
20.1 权限基础知识介绍388
20.1.1 权限相关术语介绍389
20.1.2 权限模型介绍389
20.1.3 相关开源项目395
20.1.4 开源项目选择建议396
20.2 iam-authz-server的功能介绍396
20.2.1 github.com/ory/ladon包介绍396
20.2.2 iam-authz-server使用方法
     介绍399
20.3 iam-authz-server的代码实现401
20.3.1 iam-authz-server的配置处理401
20.3.2 iam-authz-server启动流程402
20.3.3 iam-authz-server的RESTful 
    API请求处理流程402
20.3.4 iam-authz-server的代码架构403
20.4 iam-authz-server关键代码分析404
20.4.1 资源授权404
20.4.2 缓存设计406
20.4.3 数据一致性412
20.5 本章总结412
第21章 IAM Pump服务构建414
21.1 数据采集方式的分类414
21.2 数据采集系统设计415
21.2.1 设计时需要解决的核心问题415
21.2.2 数据上报功能设计416
21.2.3 数据采集功能设计416
21.2.4 数据采集应用模型417
21.3 数据采集系统落地项目:
   iam-authz-server+iam-pump417
21.3.1 iam-authz-server:数据上报
    设计417
21.3.2 启动数据上报服务420
21.3.3 异步上报授权日志422
21.3.4 优雅关停数据上报423
21.4 iam-pump:数据采集设计423
21.4.1 数据采集插件定义424
21.4.2 初始化数据采集插件425
21.4.3 健康检查426
21.4.4 定期消费Redis数据426
21.4.5 优雅关停数据采集服务428
21.4.6 使用分布式锁机制,避免
    重复消费428
21.5 本章总结429
第22章 分布式作业系统设计与实现430
22.1 任务分类430
22.2 作业系统的常见实现431
22.3 IAM作业系统设计与实现434
22.3.1 IAM作业系统实现所使用的
     Go包435
22.3.2 IAM作业系统特点437
22.3.3 IAM作业系统实现438
22.3.4 IAM作业系统实现解读440
22.4 本章总结441
第23章 IAM SDK设计与实现442
23.1 什么是SDK442
23.2 SDK设计要点443
23.2.1 如何给SDK命名443
23.2.2 SDK的目录结构443
23.2.3 SDK的设计方法444
23.3 公有云厂商采用的SDK设计
   方式445
23.3.1 API层:创建客户端实例446
23.3.2 基础层:构建并执行HTTP
    请求447
23.4 marmotedu-sdk-go客户端设计与
    创建451
23.4.1 marmotedu-sdk-go客户端
    设计453
23.4.2 项目级别客户端创建455
23.4.3 应用级别客户端创建455
23.4.4 服务级别客户端创建456
23.5 marmotedu-sdk-go的实现456
23.5.1 RESTClient客户端实现457
23.5.2 Request模块实现459
23.5.3 请求认证463
23.6 本章总结464
第24章 IAM客户端工具构建465
24.1 常见客户端介绍465
24.2 大型系统客户端的特点466
24.3 iamctl的核心实现468
24.3.1 iamctl的功能468
24.3.2 iamctl代码结构468
24.3.3 iamctl命令行选项469
24.3.4 iamctl配置文件解析469
24.4 iamctl中子命令是如何构建的470
24.4.1 如何优雅地构建一个命令470

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP