Go语言
文章平均质量分 77
Go语言开发
家鸽今天学习了吗
邮箱:liu_sijia@foxmail.com
展开
-
【译】关于 Go 代码结构的思考
关于 Go 代码结构的思考原文地址:https://changelog.com/posts/on-go-application-structure原文作者:Jon Calhoun译者:lsj1342应用程序结构复杂。良好的应用程序结构可提升开发人员体验。开发者可以在不记住整个代码仓库的情况下, 专注于他们正在处理的内容。一个结构良好的应用程序可以通过解耦组件和容易编写有用的测试来帮助防止错误。结构不佳的应用程序可能会适得其反;它会使测试变得更难,并难以查找相关代码。它还会引入不必要的复杂原创 2022-03-08 16:40:39 · 170 阅读 · 0 评论 -
Go使用redigo实现简单分布式锁
redis分布式锁是 基于setnx的只在键 key 不存在的情况下, 将键 key 的值设置为 value 。若键 key 已经存在, 则 SETNX 命令不做任何动作。SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。此处采用了 redigo 实现, 代码如下:package mainimport ( "log" "time" "github.com/gomodule/redigo/redis")// 初始redis函数func Init原创 2021-12-08 14:09:09 · 1642 阅读 · 0 评论 -
Go中的阻塞分析
Go中的阻塞分析原文地址:https://github.com/DataDog/go-profiler-notes/blob/main/block.md原文作者:felixge本文永久链接:https://github.com/gocn/translator/blob/master/2021/w43_Block_Profiling_in_Go.md译者:lsj1342校对:laxiaohong描述Go 中的阻塞分析有助于您分析程序在等待下列阻塞操作上的花费时间:selectcha原创 2021-11-28 18:55:48 · 460 阅读 · 0 评论 -
Golang中的垃圾回收算法
Go GC的触发条件:gcTriggerAlways: 强制触发GC gcTriggerHeap: 当前分配的内存达到一定阈值时触发,这个阈值在每次GC过后都会根据堆内存的增长情况和CPU占用率来调整 gcTriggerTime: 当一定时间没有执行过GC就触发GC(2分钟) gcTriggerCycle: runtime.GC()调用Golang的GC算法是基于 标记-清除 算法,在此基础上做了改进标记-清除算法主要进行了两个步骤:标记:从程序的根节点开始,递归地遍历所有对象,..原创 2020-05-12 12:25:29 · 489 阅读 · 0 评论 -
Go 开发关键技术指南 | Go 面向失败编程
本文转载https://mp.weixin.qq.com/s/1zWdSV8FmwkduX4Hfbztgw,如若侵权,联系我删除liu_sijia@foxmail.com作者 | 杨成立(忘篱) 阿里巴巴高级技术专家关注 “阿里巴巴云原生” 公众号,回复 Go 即可查看清晰知识大图!导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的问题,最后回到 Go 如何解决这些问题...转载 2019-12-26 15:21:19 · 496 阅读 · 0 评论 -
Go 的抢占式调度
Go 的抢占式调度我正在研究 Go 中 goroutine 的抢占。如果您能指出文中任何错误并告知我,将感激不尽。Go1.14 版本中的抢占行为已经发生了变化。在 Go1.14 中,goroutine 是“异步抢占”的,如发行版本所述。这意味着什么呢?首先,让我们看一个简单的例子。思考下面的 Go 程序。package mainimport ( "fmt")func main() { go fmt.Println("hi") for { }}在主函数原创 2021-08-19 11:24:39 · 1271 阅读 · 0 评论 -
Go 开发关键技术指南 | 为什么你要选择 Go?(内含超全知识大图)
原文地址https://mp.weixin.qq.com/s/QV9p16QjonHCyIs-DivoeA,如有侵权,联系我立刻删除liu_sijia@foxmail.com作者 | 杨成立(忘篱) 阿里巴巴高级技术专家关注 “阿里巴巴云原生” 公众号,回复Go 即可查看清晰知识大图!导读:从问题本身出发,不局限于 Go 语言,探讨服务器中常常遇到的问题,最后回到 Go 如何解决这些问...转载 2019-12-26 15:49:37 · 172 阅读 · 0 评论 -
Go语言json.Marshal时特殊html字符被转义
json.Marshal时特殊html字符被转义在服务的一个接口开发时,发现日志中json的url某些符号被转义的情况,以此记录一下。{ "imageId":"图片描述信息", "imageUrl":"http://xxxx.xxxx/6d6de116c4c64c57933dd7d83940230220160525150701.jpg?imageView&thumbnail=750x750", "url":"http://xxxx.xxx/6d6de116c4c64c57原创 2020-07-01 18:36:39 · 1076 阅读 · 0 评论 -
【译】理解 Go 语言中的 defer
【译】理解 Go 语言中的 defer原文地址:https://www.digitalocean.com/community/tutorials/understanding-defer-in-go原文作者:Gopher Guides本文永久链接:https://github.com/gocn/translator/blob/master/2019/w43_understanding_defer_in_go.md译者:lsj1342校对者:cvley介绍Go 中有许多通用的流程控制关键词翻译 2020-05-12 12:40:56 · 233 阅读 · 0 评论 -
如何写下你的第一个Go程序
如何写下你的第一个Go程序介绍“Hello World"程序是计算机编程中一个经典而历史悠久的传统。对于新手来说,这是第一个简单而完整的程序,也是一个检验环境配置的好方法。这篇教程将引导你在使用Go 创建此程序。但是,为了让程序更有趣,你将会修改传统的“Hello World”程序,使它能够询问用户的姓名。从而你能够对用户进行问候。当你跟着教程完成这个程序,run起来你得到一个看起来如下的程...原创 2019-11-24 17:20:06 · 179 阅读 · 0 评论 -
Go中的面向对象
Go 没有类,而是松耦合的类型、方法对接口的实现。OO 语言最重要的三个方面分别是:封装,继承和多态,在 Go 中它们是怎样表现的呢?封装(数据隐藏):和别的 OO 语言有 4 个或更多的访问层次相比,Go 把它简化为了 2 层:1)包范围内的:通过标识符首字母小写,对象 只在它所在的包内可见2)可导出的:通过标识符首字母大写,对象 对所在包以外也可见类型只拥有自己所在包中定义的方法。继承:用组合实现:内嵌一个(或多个)包含想要的行为(字段和方法)的类型;多重继承可以通过内嵌多个类型实现。ty原创 2021-09-13 18:15:30 · 118 阅读 · 0 评论