《使用Gin框架构建分布式应用》读后感

news/2024/11/5 0:01:02/文章来源:https://www.cnblogs.com/codists/p/18526997

1.为什么选择这本书?

因为工作中有一个项目使用了Go进行开发,项目用到了MySQL, Redis,GORM,Rabbitmq,Zap等组件进行开发,没有使用到Web框架,因为本人是Web开发方向,所以就想了解下Web框架在Go开发中的应用,看看别人是怎么用的。国外的Go Web框架有:Echo, Gin, Iris, Macaron, Martini, Mux等,国内的Go Web框架有:Beego,GoFrame等。鉴于有书介绍Gin框架,所以就选择了Gin框架进行学习。

2.这本写了什么?

这本书以Gin框架作为切入点,介绍了整个Go Web开发的完整流程及工具:Gin框架的使用(请求、路由解析、响应),数据库的使用(MongoDB, Redis),前端开发(React),部署(Docker, Nginx),运维(Telegraf,Prometheus,Grafana)。

其中,对于git flow不同分支的用法介绍的比较详细,对于团队协作的项目来说,这点必不可少,这是本书的优点。同时,本书缺少了MySQL,ORM, Zap等组件的缺少介绍,稍显遗憾。毕竟Web开发中,这是无法避免的。也因为Gin框架比较精简,整个项目并不是传统的MVC架构。

从2024年10月12日至2024年11月3日期间,期间花了大概17天阅读完《使用Gin框架构建分布式应用》(原书名是:Building Distributed Applications in Gin)。

3.这本书适合什么样的人?

什么样的人适合阅读这本书?书上的介绍是"This book is for Go developers who are comfortable with the Go language and are seeking to learn about REST API design and development with the Gin framework."——掌握了Go语言,想了解 RESTFul API设计,想使用Gin进行开发的人。这本书默认大家对书中所涉及的技术有一定的了解,如编程语言、前端技术、数据库技术、运维技术等。整本书重点是把这些技术给串起来,告诉你怎么用(how)。整本书算是“practice(实战)”类的书,但总共只有400多页,限于篇幅,所以"为什么这样用(why)?"就被省略掉了,所介绍的内容也不会太深。

这本书适合于想了解Go开发流程,以及想了解Gin框架的人,假设你现在就已经是一名Go开发人员,那么这本书就可以跳过了。假设你暂未有实际的开发经验,那么这本书可以作为不错的入门书。

参考资料

(1) Mohamed Labouardy,《Building Distributed Applications in Gin》:https://book.douban.com/subject/35610349

欢迎搜索及关注:编程人(a_codists)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/826877.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理基础知识(一)

来源:早期的冯诺依曼计算机以运算器为中心,现代计算机以存储器为中心; 现代计算器的结构:计算机硬件的基本组成:计算机系统的层次结构:计算机的性能指标:小练习:进制转换:

《图解设计模式》 第四部分 分开考虑

第九章 Bridge模式//使用代码 public class Main(){public static void main(String[] args){Display d1 = new Display(new StringDisPlayImpl("Hello, China."));Display d2 = new CountDisplay(new StringDisPlayImpl("Hello, World."));CountDisplay d…

Redis底层数据结构 SDS

SDS 字符串在 Redis 中是很常用的,键值对中的键是字符串类型,值有时也是字符串类型。 Redis 是用 C 语言实现的,但是它没有直接使用 C 语言的 char* 字符数组来实现字符串,而是自己封装了一个名为简单动态字符串(simple dynamic string,SDS) 的数据结构来表示字符串, 也…

PackageTracer实验中第一次Ping必然会丢包的原因

在packageTracer中做实验时发现首次ping位于不同网络中的主机时必然会超时,我对此疑惑不解,但是上网没有找到相关解答,于是我通过包跟踪找到了答案,于是将其记录下来,希望对后拉的读者有所帮助。PS:R0与R1的位置有误 PC1 Ping PC3 的过程首先,当我们在PC1发出Ping命令时…

easy-mock搭建mock平台

环境: mac 1、前提: 需要已安装node和npm(easy-mock是node.js开发的)、redis、mongodb 安装mongodb(mongodb很大,剩余内存需要10个G左右)$ brew install mongodb-atlas $ atlas setup2、安装easy-mockgit clone https://github.com/easy-mock/easy-mock.git #选择要把eas…

easy-mock搭建mock服务

环境: mac 1、前提: 需要已安装node和npm(easy-mock是node.js开发的)、redis、mongodb 安装mongodb(mongodb很大,剩余内存需要10个G左右)$ brew install mongodb-atlas $ atlas setup2、安装easy-mockgit clone https://github.com/easy-mock/easy-mock.git #选择要把eas…

[编程笔记] 奇怪的bug - 公共提示组件不生效

很简单的一个功能,初看的时候就猜到是用的某个组件,其他地方要用一般照抄,改下文案即可,这种弹出肯定是公共组件了。然鹅,很神奇的是我新做的页面,复制以后没效果!项目中有这么一个提示框:对应的代码是:top.msg.ok(123)很简单的一个功能,初看的时候就猜到是用的某个组…

linux内存管理学习总结

一、内存寻址 1.1 逻辑地址、线性地址、物理地址的概念 1.2 逻辑地址转换线性地址步骤 1.3 线性地址到物理地址的转换 二、内存管理 2.1 引导内存分配器阶段 2.2 内存管理子系统 2.3 32位架构的地址空间划分 2.4 64位架构的地址空间划分 2.5 内核态的内存管理 2.6 用户态内存管…

https页面加载http资源的解决方法

https页面加载http资源的解决方法@目录1.报错如图2.项目背景3.网上的解决方案4.我的最终解决方案 1.报错如图2.项目背景我们的项目采用的全是https请求,而使用第三方文件管理器go-fastdfs,该文件管理器返回的所有下载文件的请求全是http开头的,比如http://10.110.38.253:110…

Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载

Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载@目录一、业务背景二、实现思路二、准备工作1.准备data模板.xlsx2.引入poi相关依赖,用于操作excel3.针对WorkBook+ZIP压缩输入/输出流,相关方法知识点要有所了解三、完整的项目代码四、可能遇到的问题错误场景…

macOS 解锁隐藏文件

不知道为什么,我用 VS Code 编译的 LaTeX 文档是隐藏的,导致我复制到其他地方都看不见这个文档。首先可以按下 Command + Shift + . 组合键显示隐藏文件。接下来可以用下面的命令取消隐藏的文件: chflags nohidden <file>如果你想重新隐藏的话,使用下面的命令: chfl…