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

Agent Memory 工程实践 :用 Go + PostgreSQL 构建可证明、可撤销的长期记忆 状态对外含义必需证据revoked删除事务已提交;新权威复核排除旧代主库 Epoch 与删除请求在线存储和派生载体完成清理每个 carrier 的 purge receipt备份、日志、导出和模型服务等已到期或完成适用清理保留策略与外部系统记录“24 小时”只能是经验证的产品目标,不能泛化成法律或物理擦除保证。API 应返回请求 ID、当前状态、已覆盖与未覆盖范围,而非一个含混的success。删除事件到达后,标记相关工作集失效。 阅读详情

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)

Go GMP 调度器深度解析:从运行时原理到可复核的并发边界 Goroutine 的价值是把并发等待表达得足够廉价,使服务能把 CPU 用在真正可运行的工作上。它的边界同样明确:当到达持续超过完成时,系统必须选择在哪里排队、排多久、何时拒绝以及如何取消。高质量的并发设计不从“该开多少 goroutine”开始,而从可观测、可验证的容量合同开始:入口接受多少、队列允许等多久、下游承受多少、失败如何收敛、恢复如何验收。GMP 是实现这套合同的运行时基础,不是绕过它的理由。 阅读详情

相关推荐

unity 在透明物体上投射阴影

unity版本:2019.4.16 创建一个shader,代码如下: Shader "ChuckLee/ARShadow" { Properties { _ShadowColor("Shadow Color", Color) = (0.1, 0.1, 0.1, 0.53) } SubShader { Tags{ "RenderType" = "Transparent" "Queue" = "Geometry+1" } Blend SrcAlpha OneMinusSrcAlph

Abel02的博客 2953

2024年10月文章一览

这个月继续挖坑,开始阅读《使用Gin框架构建分布式应用》。相对而言,这个月的感觉好一些,虽然不能做到每天都阅读,但是至少能做到50%。改变是一个困难的过程,而且有可能会倒退——有时候读着读着遇到困难,就不想读下去了。读着读着,很多之前没想明白的,没理解的地方,突然间就理解了。如果你在阅读一本书时,对于书上所说的内容不理解,那么我建议你不妨也试一下,多看几本书。10月阅读完了《programming from the ground up》,令我惊讶的时候,没想到挺多人对这本书感兴趣的。

codists的博客 434

Python爬虫获取Shopee店铺的所有商品?

通过上述代码示例,我们可以轻松实现获取Shopee店铺所有商品信息的功能。Python爬虫不仅具有强大的功能和稳定性,还可以通过丰富的库支持实现高效的数据抓取和解析。希望这篇文章能为你提供一些启发和帮助。如果你对爬虫开发有更多兴趣,可以尝试探索更复杂的功能,如多线程爬取、数据可视化等。如果你在实践中遇到任何问题,欢迎随时交流和讨论。让我们一起用技术的力量,解锁更多可能!

2401_87195067的博客 1543

《使用Gin框架构建分布式应用》阅读笔记:p393-p437

Prometheus放在代码里面使用,还是第一次见。在本人实际的工作中未看到这种用法。capter在这里的意思等同于“collect, gather”,metrics等同于“data”,profile等同于“analyze”。

codists的博客 695

PM1132-220V转5V电源芯片:SOT-23-3封装的高效电源解决方案

在现代电子设备小型化和高效化的趋势下,PM1132芯片凭借其的能力与特性,成为工业控制IoT设备及便携电器的理想电源管理方案。以下从核心技术设计挑战和应用实践展开分析。

M_D13Z476I000l的博客 804

高分六号GF-6 WFV数据处理全流程:从原始数据解压到经纬度投影转换

本文详细解析了高分六号GF-6 WFV遥感数据的完整处理流程。从原始数据解压与分块结构理解入手,指导如何安装ENVI国产卫星支持工具进行自动拼接,并重点阐述了利用RPC模型进行正射校正以消除几何畸变,以及将UTM投影转换为地理经纬度坐标的关键步骤。文章旨在帮助用户高效地将原始卫星数据转化为可直接用于农业监测、生态环境分析等领域的标准地理空间图像。

weixin_29047919的博客 196

2024年11月文章一览

11 月从工作了三年的公司离职了,和之前的历次一样,这次也是裸辞。工作并不是总是轻松的,很多时候都是充满困难,正是这些不错的同事,优秀客户的包容、指导,使得整个项目才能顺利完成,我很喜欢这种和谐,快乐的氛围。11 月的阅读回归到自己的行业方向 ——Python web 开发,依然是选择每天发阅读笔记,希望对一些也正在或者将来有打算阅读的人有些帮助,同时也是做一个记录——You are what you eat。很遗憾,工作了那么多年,换工作的时候还是得自己投简历,12月要努力了,争取找到自己理想中的工作。

codists的博客 941

Pulpino SoC中挂载AXI从机接口的自定义IP说明

AXI 从机接口挂载 Pulpino SoC 调试Pulpino SoC中挂载AXI从机接口的自定义IP说明PULPion SoC介绍自定义AXI IP挂载IP挂载框图代码修改脚本修改自定义AXI IP调试C语言编写软件调试硬件调试 Pulpino SoC中挂载AXI从机接口的自定义IP说明 本篇文章主要从工程的角度描述了如何将具有AXI从机接口的自定义IP挂载到Pulpino SoC上,其中不涉及到SoC中的任何原理知识。 PULPion SoC介绍 PULPion SoC整体架构如下图所示, PULPi

小陈的芯片学习之路 2209

Redis 从 0 到 1(二十七):JSON 体积是 Protobuf 的 3.7 倍?3 种序列化的 Go 基准测试

缓存对象直接用 json.Marshal,1 亿条 key 多花 20G 内存和 3 倍带宽。本文对 JSON / MessagePack / Protobuf 做 Go 基准测试(体积、编解码耗时、CPU),给出不同场景的选型表和统一序列化封装。

2501_92769340的博客 174

验证码接收平台搭建教程(含源代码)

在很多注册流程中,我们常常需要通过短信验证码验证用户的身份。本教程将手把手教你搭建一个验证码接收平台,用于自动接收并展示来自短信网关或短信转发器的验证码。⚠️ 本教程仅供学习使用,请勿用于任何非法用途!本教程展示了一个简单的验证码接收平台的搭建流程,从后端到前端完整实现。你可以将其用于学习 Web 开发、数据库操作以及 Flask 项目部署。访问我的优快云主页。

weixin_52548902的博客 4082

考完CAIE认证一年后,谈谈它对我的职业的真实影响(干货)

大门,让面试官愿意给你机会,但进门之后的发展,还得靠持续的学习和项目积累。说实话,当时的心态是“考都考了,总比闲着强”,对这张证书能带来什么实际价值,心里并没有底。这种广泛的生态认可,让这张证书的“流通性”变得很强——无论跳槽还是在原公司发展,它都是一个被市场验证过的能力证明。对我个人而言,虽然没跳槽,但在年度调薪和争取内部项目时,持证经历也成了一个有力的“加分项”。这种巨大的薪资差距,恰恰反映了市场对“能落地、懂技术”的深度人才的渴求。考完证后的这一年,我看到了两条清晰的职业发展路径在自己面前展开。

qq_16014487的博客 815

cpuprof.go开关、缓冲区与记账

本文详解Go语言CPU剖析的全链路机制,核心为定时信号触发栈采样、环形缓冲存储与异步写入。通过实验验证了64帧栈深度限制、1MiB缓冲区容量及样本丢失计数机制,揭示了SetCPUProfileRate控制采样频率、add函数处理信号中断、addExtra上报丢失样本等关键流程,并解析了跨平台差异与废弃特性。

不愿言弃-念何的博客 352

YOLOv8改进策略【Conv和Transformer】| CVPR-2023 BiFormer 稀疏自注意力,减少内存占用

本文记录的是利用双级路由注意力机制优化的目标检测网络模型。传统的复杂度高,随着输入空间分辨率增加,计算量呈平方增长,导致严重的可扩展性问题。而本文所使用的在获取全局信息的同时,通过区域到区域路由和令牌到令牌注意力的合理设计,减少了不必要的计算量。BiFormer: Vision Transformer with Bi-Level Routing Attention采用四阶段金字塔结构,与一些先进的视觉Transformer类似。在每个阶段,首先使用重叠的补丁嵌入(在第一阶段)或补丁合并模块(在第二到第四阶段

Limiiiing的博客 613

联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms

联犀Go视频转码实战:在352×288测试流中单帧单核CPU耗时从16.5ms到5.46ms,区分SIMD、代码及编码策略的综合收益。保留测试条件、压测结果与适用边界。

QQ603785348的博客 331

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

纯 Go 写的 JS 引擎,跑分超过了 C 语言的 QuickJS

moejs 是一个纯 Go 编写的高性能 JavaScript 运行时,专为 Go 程序中的插件沙箱场景设计。发布于 2026 年 11 月,由 new-api 维护者 Calcium-Ion 开发,相较 C 版 QuickJS 快 35%,内存占用仅 81 KiB,单次调用仅 6.9 微秒。支持快速复用运行时、零拷贝解析、安全沙箱与 TypeScript 直接编译,通过 test262 80971 个用例零失败。适合高并发插件系统,如 AI 网关钩子处理,已在实际场景中实现请求吞吐量提升 8.6 倍。仓库

前端之虎陈随易 194

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Go AI Agent 实战 30|Human-in-the-loop:关键操作前的人工确认

本课聚焦高风险操作的审批机制,强调仅靠Prompt无法保障安全,需在Go后端实现严格的HITL流程。通过定义waiting_approval状态、绑定具体操作与版本校验,确保审批可追溯、防并发漂移。示例展示任务状态管理、审批请求持久化及批准后重新验证逻辑,实现安全可靠的高风险操作执行。

2302_80713883的博客 248

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

运行go web服务,检测mysql服务和端口

如果你的窗口里显示的是别的报错文字(比如 ‘xxx’ 不是内部或外部命令、系统找不到指定的路径、或 Go 编译报错),把那几行原文发我,我再精确修——不过现在这版 bat 已经把最常见的三个坑(数据库、端口、闪退看不到错误)都堵上了。启动 MySQL:用干净的 my.ini 直接起 mysqld.exe(绕开 phpstudy 面板配置),验证连通:oa_admin_rule 554 行、oa_admin 2 行,数据完好。服务本身还能起来,但登录、菜单全依赖数据库,所以你看到的是红色警告 + 登录失效。

xinhuanjieyi的博客 159

cpuprof.go栈回溯、定时器与平台差异

sigprof() 信号处理器从寄存器状态出发,通过多路径回溯栈帧(含 CGO、vDSO、系统调用等),最多采集64帧,失败时归入 _System 等伪函数。采样结果双写至 pprof 和 trace,实现零成本共享。setcpuprofilerate() 通过关闭旧定时器、设置新频率并触发信号,确保采样精准可控,避免死锁与抢占干扰。

不愿言弃-念何的博客 44

2026-11-05-Go内存管理面试

内存分配器分层、三色标记、写屏障、STW、内存泄漏——Go 内存管理这块面试最容易问懵。这篇把分配器到 GC 到泄漏排查串成十连问,每题配答案框架和追问应对,文末给 GC 调优对照表。

利威尔的博客,主要分享一些go后端,agent相关知识,都是最新最前沿而且是免费的,在我的专栏里有各种方向的详细分类和内容整理,详细内容请阅读主页置顶文章,希望对你有帮助。 360

Go语言第十八章(架构设计)

本文讲解 Go Modules 与项目结构,是 Go 多包项目、依赖管理的基础教程。从`go mod init`初始化模块、`go mod tidy`自动整理依赖入手,介绍模块路径、go.mod 与 go.sum 的作用;讲解自定义包导入规则、首字母大小写控制导出权限。同时介绍社区常用目录规范:cmd 存放程序入口、internal 为模块私有代码、pkg 用于对外可引用库。演示国内 GOPROXY 镜像配置,以 color 库为例说明第三方依赖引入流程。核心要点:一个 go.mod 对应一个模块,一个目录

qq1195566313的博客 221

2026-11-04-Go批量导出实战

一个后台导出接口,订单量冲到 2 万后内存飙到 90%、P99 到 12 秒。复盘发现三个批量任务的经典坑:全量加载、全量拼字符串、串行写。这篇用分页游标+errgroup并发+信号量限流+写临时文件四招改完,P99 压到 900 毫秒,文末给批量任务自查清单表。

利威尔的博客,主要分享一些go后端,agent相关知识,都是最新最前沿而且是免费的,在我的专栏里有各种方向的详细分类和内容整理,详细内容请阅读主页置顶文章,希望对你有帮助。 378

Go 工程化详解:项目结构、代码规范、测试体系与 CI/CD 实践

微服务;API 网关;云原生基础设施;命令行工具;区块链服务;实时数据处理系统;DevOps 平台;高并发网络服务。目录应该如何划分;业务代码应该放在哪里;包之间如何避免循环依赖;配置和密钥如何管理;错误如何统一处理;日志如何关联请求;如何安全地启动和关闭服务;如何编写单元测试和集成测试;如何管理数据库变更;如何保证每次构建结果一致;如何进行安全扫描和持续交付。这些问题已经不再是单纯的语法问题,而是 Go 工程化需要解决的问题。

十二的博客 375

go消息推送之极光推送 (JPush REST API + SDK,覆盖安卓与iOS)

使用 gorush有个绕不开的问题:国内安卓设备上 FCM 基本不可达,华为、小米、OPPO、vivo 各自为政——此时可用极光推送(JPush)作解决方案。它的思路和前面几家都不一样:App 集成极光 SDK 后拿到统一的 RegistrationID,服务端发一条 REST 请求,极光云端自动把消息路由到 APNs、各家厂商通道或极光自有长连接。这里给出了:一个用纯标准库直接调用极光的;另一个用社区维护的,类型化参数,接口注释与官方文档逐条对应。两个功能相同,可放在一起对比学习。

qq_40467670的博客 167

Go 工业边缘错误处理实战:用 errors 构建可追溯错误链

哨兵错误适合表达跨层传递、稳定且数量有限的业务语义。var (switch {default:不要为每种底层故障都创建哨兵错误。语义不稳定、需要携带字段、只有局部模块使用的错误,更适合自定义类型。自定义错误适合表达“同一类失败,但上下文不同”的场景,例如设备读取失败、协议解析失败、采集任务失败。Op stringErr error使用errors.AsUnwrap返回Err,不要在Error()里丢失底层错误;字段使用稳定命名,便于结构化日志和指标统计;

ZenovaEdgeOS的博客 173

2026-11-08-Go-defer-panic-recover面试

defer 的参数什么时候求值、多个 defer 什么顺序、recover 为什么有时救不回来、nil 指针包进接口为什么不等于 nil——Go 错误处理三件套的坑最多。这篇串成十连问,每题配答案框架和追问应对,文末给坑位表。

利威尔的博客,主要分享一些go后端,agent相关知识,都是最新最前沿而且是免费的,在我的专栏里有各种方向的详细分类和内容整理,详细内容请阅读主页置顶文章,希望对你有帮助。 528

go tool trace 使用指南(Go 1.24)

每个 goroutine 的每次状态切换(创建/阻塞/唤醒/运行/让出/结束)、每次 syscall 进出、每次 GC 阶段、每次 P 启停,都带纳秒时间戳和调用栈记录在案。GC 页看 STW/mark 时长与频率;:trace 版把"就绪但没跑"单独拎出来(scheduler latency),而 runtime 的 block profile 只看同步原语。,颜色按桶占比——一眼扫出"整排都是 Sched wait"的分组,就是调度饥饿的群体。:W/S 缩放,A/D 平移——大 trace 必备。

不愿言弃-念何的博客 693
上一篇: 《使用Gin框架构建分布式应用》阅读笔记:p393-p437
下一篇: 《Django 5 By Example》阅读笔记:p1-p16
codists
博客等级 码龄6年 1488粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值