golang从入门到入门
文章平均质量分 67
怪我冷i
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
golang语言Solod、TinyGo、Zig、Odin
想用 C 写底层,但受够了 C 的坑:去看看Solod或Odin。是 Go 语言爱好者,想搞嵌入式或前端 WASM:直接上手TinyGo。想深入学习现代编译原理和极致的内存安全控制:研究Zig。这篇文章的作者是(知名开源作者,redka4.5K⭐、sqlean4.3K⭐),讲的是他做的一个激进实验项目 ——Solod(简称 So)“既然 Go 越走越远、离 C 越来越远,那我就做一个——用 Go 语法写、但零运行时零 GC、直接编译成纯 C11 的语言。原创 2026-05-30 00:30:00 · 446 阅读 · 0 评论 -
Buf CLI 快速入门
设置本地工作区。生成代码以使用您选择的语言实现 API。对文件进行代码检查以提高代码质量和一致性。检测破坏性变更以避免破坏下游消费者。使用集成生成代码的服务器应用程序访问您的 API。要了解如何在大型组织中更有效地使用 Protobuf 模式,请接着完成Buf Schema Registry 快速入门。原创 2026-05-07 00:30:00 · 722 阅读 · 0 评论 -
Golang Web 前后端分离企业级后台开发项目计划书V2.0模型代码
Golang Web 前后端分离企业级后台开发项目计划书V2.0模型代码。原创 2026-04-11 22:00:00 · 103 阅读 · 0 评论 -
Golang Web 前后端分离企业级后台开发项目计划书V2.0
自动请求缓存响应式状态管理请求状态自动管理支持跨框架使用更少的样板代码定义API方法ESLint: JavaScript代码检查Prettier: 代码格式化Stylelint: CSS/SCSS样式检查Husky + lint-staged: Git提交前检查本项目是基于前后端分离架构的企业级后台管理系统,采用成熟的技术栈和规范的开发流程。项目涵盖用户管理、权限管理、组织管理、系统配置、通知公告、日志管理等核心功能模块,能够满足企业日常运营和管理的需求。原创 2026-04-15 00:30:00 · 524 阅读 · 0 评论 -
Go 内存分配器概述
Go 内存分配器概述 Go 内存分配器是运行时的核心组件,负责对象分配、回收及与垃圾回收器(GC)协同工作。其设计特点包括: 高效分配:采用 per-P 本地缓存(mcache)实现无锁分配,小对象分配可达 O(1) 复杂度 分级管理:通过 mcache(P 级)、mcentral(size class 级)、mheap(全局)三级结构平衡性能与资源利用率 智能分类:将对象按大小分为小对象(≤32KB)、大对象(≤1MB)和 huge 对象(>1MB),采用不同分配策略 GC 友好:内置标记位图(gc原创 2026-04-05 00:30:00 · 475 阅读 · 0 评论 -
go-zero框架使用——helloworld
摘要:go-zero 是一个高效、可靠的 Go 微服务框架,提供快速开发体验。通过简单的命令行工具 goctl,60秒即可生成API服务脚手架,包含配置、路由、逻辑处理等完整结构。框架采用清晰的分层设计(handler/logic/svc),支持DSL定义API接口,修改后自动生成代码且不覆盖业务逻辑。学习路径分环境准备、快速上手和深入理解三个阶段,需安装Go 1.19+、goctl等工具。典型项目结构包含配置、路由、业务逻辑等模块,开发者只需专注填充核心逻辑即可快速构建微服务。原创 2026-03-31 00:15:00 · 73 阅读 · 0 评论 -
GORM 的 Migration API
GORM 的是一套用于管理数据库结构变更的工具,主要用于在程序运行时自动或手动同步数据表结构,确保数据库 Schema 与代码中的模型保持一致。原创 2025-12-31 23:00:00 · 287 阅读 · 0 评论 -
Go-Chi 框架返回静态页面的方法
这些方法可以根据你的具体需求进行组合和调整,满足从简单静态网站到复杂单页应用的各种场景。Go-Chi 框架提供了多种方式来返回静态页面和静态文件。原创 2025-12-31 03:30:00 · 373 阅读 · 0 评论 -
wsl(Ubuntu24.04)使用podman镜像加速
保存并退出:Ctrl + O → 回车 → Ctrl + X。wsl使用podman镜像加速。原创 2025-12-23 00:30:00 · 184 阅读 · 0 评论 -
golang学习笔记——usegolang课程
在本课程中,我们构建和部署了一个照片共享应用程序,包括用户、鉴权、图像上传、数据库等。我们甚至部署到正式服务器并设置自动安全超文本传输协议。原创 2025-12-13 00:30:00 · 964 阅读 · 0 评论 -
golang中接口的常见用法
接口主要关注的是对象的行为,即它们能做什么,而不是它们是什么。这使得我们能够设计出更灵活、更抽象的代码。Go 标准库中的io.Reader和io.Writer接口就是典型的例子。它们定义了读写数据的行为,而不管数据是从哪里来的(文件、网络、内存等)或写到哪里去。// ... 拷贝逻辑 ...Copy函数可以拷贝任何实现了io.Reader和io.Writer接口的流,这大大提高了代码的通用性。Go 语言的接口是其类型系统的重要组成部分,它提供了强大的抽象能力,使得我们能够编写出松耦合高扩展性和易于测试。原创 2025-06-20 00:30:00 · 567 阅读 · 0 评论 -
golang的结构体中放个接口是哪个意思?
特性说明解耦高层模块()不依赖低层模块的具体实现可测试性通过Mock接口避免I/O操作,加速单元测试扩展性新增数据源只需实现接口,无需改动已有代码运行时动态行为同一结构体可支持多种后端实现这种设计是Go中面向接口编程的经典实践,广泛用于Web框架、数据库中间件等需要灵活扩展的场景。原创 2025-06-15 00:30:00 · 426 阅读 · 0 评论 -
golang类型系统
Go语言的类型系统旨在提供一个安全、高效且并发友好的开发环境。它通过强调静态类型、强类型、显式类型转换以及零值初始化来减少运行时错误。同时,通过接口实现多态,避免了传统面向对象继承的复杂性,使得代码更加简洁和可维护。Go的类型系统是其成功和流行的重要基石之一。原创 2025-06-14 00:30:00 · 1628 阅读 · 4 评论 -
Casbin RBAC模型详解
Casbin 是一个强大的、高效的访问控制框架,支持多种权限模型(如 RBAC、ABAC、ACL)。其。原创 2025-05-04 01:28:23 · 720 阅读 · 0 评论 -
Gin框架——登录功能
【代码】Gin框架——登录功能。原创 2025-05-09 00:30:00 · 376 阅读 · 0 评论 -
Podinfo,一个优秀的云原生微服务框架
Podinfo 的核心价值在于其。原创 2025-05-08 00:30:00 · 836 阅读 · 0 评论 -
Go 语言中容易出错的 Channel 编程示例
【代码】Go 语言中容易出错的 Channel 编程示例。原创 2025-05-04 00:30:00 · 550 阅读 · 0 评论 -
golang实现MCP Server核心概念
模型上下文协议(MCP)的Go实现,实现了LLM应用程序与外部数据源和工具之间的无缝集成。原创 2025-04-27 00:30:00 · 794 阅读 · 0 评论 -
golang学习笔记——dial tcp: lookup goproxy.io on修改/etc/resolv.conf
缺点是每次重启系统都要执行一次。原创 2025-04-06 00:30:00 · 416 阅读 · 0 评论 -
Debian 12安装golang
根据您的需求选择最适合的安装方式即可。如需最新功能推荐方法2,如需稳定更新推荐方法3。原创 2025-03-29 00:30:00 · 1527 阅读 · 0 评论 -
golang学习笔记——init() 函数是什么时候执行的
init()函数是 Go 程序初始化的一部分。Go 程序初始化先于 main 函数,由 runtime 初始化每个导入的包,初始化顺序不是按照从上到下的导入顺序,而是按照解析的依赖关系,没有依赖的包最先初始化。每个包首先初始化包作用域的常量和变量(常量优先于变量),然后执行包的init()函数。同一个包,甚至是同一个源文件可以有多个init()函数。init()函数没有入参和返回值,不能被其他函数调用,同一个包内多个init()函数的执行顺序不作保证。原创 2024-11-17 00:30:00 · 548 阅读 · 0 评论 -
golang学习笔记——test测试常用命令
test测试常用命令。转载 2024-10-06 00:30:00 · 1031 阅读 · 0 评论 -
使用vscode调试wails项目(golang桌面GUI)
快捷键 Ctrl + Shift + p 打开命令面板,输入go install tools,选择第一项 Go: install/Update Tools。如果没有,它会就缺少的内容提供建议以帮助纠正问题。访问 golang 官网下载环境安装包:https://go.dev/dl/VSCode 的插件功能中输入 go 关键字,然后找到下图中的插件,并安装。VsCode 的安装就更加容易,直接在官网下载软件包按照指引安装即可。最好使用最新版本,因为这是我们通常会测试的版本。vscode调试图片如下。原创 2024-10-03 18:29:22 · 2649 阅读 · 4 评论 -
golang学习笔记——比较两个切片(slice)是否相等
go 语言中可以使用反射判断 a、b 两个切片是否相等,但是通常不推荐这么做,使用反射非常影响性能。通常采用的方式如下,遍历比较切片中的每一个元素(注意处理越界的情况)。原创 2024-09-22 01:00:00 · 630 阅读 · 0 评论 -
golang学习笔记——channel使用场景
在Golang中,Channel是一种非常重要的并发编程原语,它提供了一种安全、高效地在Goroutine之间进行通信的机制。原创 2024-08-31 01:00:00 · 935 阅读 · 0 评论 -
golang学习笔记——Gin、Beego、Iris、Echo框架学习资料
Gin文档-中文Gin文档-英文Beego文档-中文Beego文档-英文应用例子Iris文档-中文Iris文档-英文Echo文档-中文Echo文档-英文Echo中间件原创 2024-08-31 07:45:00 · 627 阅读 · 0 评论 -
golang并发编程—— Select 语句
在 Go 语言中,select语句是一种控制结构,允许一个 Goroutine 同时等待多个通道操作。select语句会阻塞,直到其中的一个case可以继续执行,然后执行该case中的语句。select语句是处理并发任务时非常有用的工具,特别是需要处理多个通道的通信时。原创 2024-08-30 00:30:00 · 728 阅读 · 0 评论 -
golang并发编程——Channel 通道
在Go语言中,(Channel)是一种数据类型,用于在多个 goroutine 之间进行通信和同步。通道提供了一种安全、高效的方式,用于传递数据和控制信息。转载 2024-08-29 01:00:00 · 658 阅读 · 0 评论 -
golang学习笔记——Template模板
执行模板时,函数从两个函数字典中查找:首先是模板函数字典,然后是全局函数字典。一般不在模板内定义函数,而是使用Funcs方法添加函数到模板里。and函数返回它的第一个empty参数或者最后一个参数;就是说 "and x y" 等价于 "if x then y else x";所有参数都会执行;or返回第一个非empty参数或者最后一个参数;亦即 "or x y" 等价于 "if x then x else y";所有参数都会执行;not。原创 2024-08-31 00:30:00 · 2397 阅读 · 0 评论 -
Raft算法——Leader Completeness Property(领导者完整性属性)
Leader Completeness Property指的是,在Raft算法中,如果一个日志条目在某个任期内被提交,那么这个条目一定会出现在所有任期号更大的领导者中。简而言之,新的领导者必须包含所有已提交的日志条目。这一属性确保了系统的状态在不同领导者之间能够保持一致,从而避免了数据不一致和混乱的情况。原创 2024-08-24 15:00:00 · 647 阅读 · 0 评论 -
golang每日一库——casbin开源的访问控制框架
部分用于request的定义,它明确了函数中参数的含义。表示经典三元组: 访问实体 (Subject),访问资源 (Object) 和访问方法 (Action)。但是, 你可以自定义你自己的请求表单, 如果不需要指定特定资源,则可以这样定义sub、act,或者如果有两个访问实体, 则为。这些是我们对policy规则的具体描述policy部分的每一行称之为一个策略规则, 每条策略规则通常以形如pp2的开头。如果存在多个policy定义,那么我们会根据前文提到的与具体的某条定义匹配。TIP。原创 2024-08-23 13:00:00 · 2796 阅读 · 0 评论 -
golang学习笔记——grom连接mysql
Golang的ORM库旨在对开发人员友好。原创 2024-08-25 00:30:00 · 1594 阅读 · 0 评论 -
k8s笔记——资源对象
以下列举的内容都是 Kubernetes 中的对象(Object),这些对象都可以在 YAML 文件中作为一种 API 类型来配置。原创 2024-08-20 10:28:14 · 1216 阅读 · 0 评论 -
Protobuf语法
文件以做为文件后缀,除结构定义外的语句以分号结尾结构定义可以包含:message、service、enumrpc方法定义结尾的分号可有可无Message命名采用驼峰命名方式,字段命名采用小写字母加下划线分隔方式Enums类型名采用驼峰命名方式,字段命名采用大写字母加下划线分隔方式Service与rpc方法名统一采用驼峰式命名字段名称字段名称的命名与C、C++、Java等语言的变量命名方式几乎是相同的protobuf建议字段的命名采用以下划线分割的驼峰式。例如 first_name 而不原创 2024-08-23 01:00:00 · 1959 阅读 · 0 评论 -
golang学习笔记——三色标记法、强三色不变式、弱三色不变式、插入屏障、删除屏障、混合写屏障
Golang的三色标记法是一种高效、并发且适应性强的垃圾回收算法,它通过将对象分为白色、灰色和黑色三种颜色,并追踪对象的引用关系来确定哪些对象是可达的,哪些是不可达的,从而进行垃圾回收。这种算法为Golang提供了方便且高效的内存管理机制,使得程序员可以更加专注于程序的逻辑实现而无需担心内存管理的问题。Golang中的插入屏障、删除屏障和混合写屏障是GC机制中用于保证标记准确性的重要技术。它们各自具有不同的优缺点,但共同的目标是提高GC的效率和准确性。原创 2024-07-25 00:30:00 · 2348 阅读 · 0 评论 -
golang学习笔记——三色标记混合写屏障GC模式全分析
以上便是 Golang 的 GC 全部的标记 - 清除逻辑及场景演示全过程。GoV1.3- 普通标记清除法,整体过程需要启动 STW,效率极低。GoV1.5- 三色标记法, 堆空间启动写屏障,栈空间不启动,全部扫描之后,需要重新扫描一次栈 (需要 STW),效率普通GoV1.8 - 三色标记法,混合写屏障机制, 栈空间不启动,堆空间启动。整个过程几乎不需要 STW,效率较高。转载 2024-07-24 10:48:56 · 424 阅读 · 0 评论 -
k8s笔记——Prometheus 中的Histogram指标
定义:Histogram是一种度量类型,用于表示数据的分布情况。它通过一系列预设的桶(buckets)来收集观察值,并计算每个桶中的观察值数量。目的:主要用于分析和监控数据的分布情况,如响应时间、请求大小等。Prometheus中的Histogram是一种强大的度量类型,用于表示数据的分布情况。通过预设的桶来收集观察值,并计算每个桶中的数量,同时提供总和和总数的附加信息。虽然百分位数的估算可能存在一定误差,但Histogram仍然是分析和监控数据分布的重要工具。原创 2024-07-02 16:00:00 · 1264 阅读 · 0 评论 -
k8s笔记——helm chat与k8s Operator区别
Kubernetes 中的自定义资源是对 Kubernetes API 的扩展,它使向 Kubernetes 集群添加默认情况下不可用的功能成为可能。您可以通过创建自定义资源定义(CRD)来实现这一点。如果要使用 Kubernetes Operator 来安装或管理应用程序,您可以创建实现该应用程序所需功能的 CRD。如果您随后将 CRD 与 Operator 的控制器组合,Kubernetes 控制器例程将检测并部署它。有时,使用 Operator 而不是 Helm 并没有明确的优势,反之亦然。原创 2024-06-30 20:30:00 · 1939 阅读 · 0 评论 -
golang学习笔记——类型断言
interface{} 好比 java 中的 Object,java 中的所有类都实现了Object。从测试代码中可以看出,结构体可以断言原本的类型,也可以断言是否继承,实际上这两个分支都是可以进去的。,程序会终止,显然并不能满足一些业务的需求,比如记录错误日志,或走其他分支等等,所以。的参数,就代表了它可以传递任何类型的变量。,再加上**switch **判断类型 不可以使用。多说一句,出于代码可读性角度来讲,编码时可以使用。直接断言使用,返回对应类型的值。,所以如果切换顺序,会匹配到。原创 2024-06-23 01:00:00 · 2401 阅读 · 0 评论 -
golang学习笔记——接口经典面试题 value receivers与pointer receiver
func (s *MyStruct) pointerMethod() { } // 指针方法func (s MyStruct) valueMethod() { } // 值方法对于不熟悉指针的程序员,很难理解这两个例子的区别,实际上这很简单。为类型定义方法时,接收者(上面例子中的 s)实际扮演的是方法的一个参数。判断使用值还是指针定义方法与判断使用值还是指针作为函数参数是相同的问题。有以下几点考虑。首先,最重要的是,这个方法是否需要改变接收者?如果是,接收者必须是指针。原创 2024-06-26 01:00:00 · 1891 阅读 · 0 评论
分享