Go语言 | 从并发模式看channel使用技巧

最近重看MinIO的源代码,发现纠删码模式下读取数据盘的时候,使用了更简单的并发读取方式,以前看的时候没发现,查了下Git历史记录,发现是19年新改的,新的使用channel做标记的方式的确非常巧妙,简化了代码逻辑,值得我们学习。所以今天就开篇文章,介绍下channel在并发下的……

阅读全文

Go语言 | 你还在这样获取文件的大小吗?

在项目中,我们可能会需要获取一个文件的大小,在Golang(Go语言)中,有很多方法来获取一个文件的大小,看看你是否还在用最慢的方式。 Read字节方式 第一种,是最直观会想到的,也就是打开文件,把文件读取一遍。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 func main() { file,err:=os.Open("water") if err ==nil { sum := 0 buf:=make([]byte,2014) for { n,err:=file.Read(buf) sum+=n if err==io.EOF { break }……

阅读全文

Golang Gin 实战(十三)| 中间件详解看这一篇就够了

在Gin的整个实现中,中间件可谓是Gin的精髓。一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且中间件之间相互不用感知到,每个中间件只需要处理自己需要处理的事情即可。今天我们就通过这篇文章,详细的介绍Gin中间的使用和原理。 通过……

阅读全文

Golang Gin 实战(十二)| ProtoBuf 使用和源码分析原理实现

ProtoBuf最近几年也算比较流行,它是一种语言无关,平台无关,并且可以扩展,并结构数据序列化的方法。相比JSON/XML这类文本格式的,ProtoBuf是二进制的,更快更高效。对于这么好的特性,Gin当然是支持的。 通过这篇文章你可以学到: ProtoBuf数据结构 ProtoBu……

阅读全文

Go爬虫+WordPress每月躺赚上千元(合法合规实战)

概览 感谢Tomic哥的实战经验分享,6000字大章。我们只要选择好一个垂直分类,Tomic哥的经验完全可以复制(合法合规)。 ​前两天飞雪大大发了一篇关于阿里云618活动的文章,给大家推荐了非常优惠的云主机。我就和飞雪大大聊:建议他写一篇关于云主机实战的文章,因为大家可能不知道买了……

阅读全文

不光技术屌还要会营销,清华姚班麻省理工博士99 行代码实现《冰雪奇缘》

昨天晚上下班,刷知乎热榜的时候看到一个提问《如何看待清华姚班毕业生、麻省理工博士胡渊鸣开发新特效编程语言,99 行代码实现《冰雪奇缘》?》,作为从业IT技术的我当然非常感兴趣,第一反应就是不可能,迪斯尼的经典动画片,怎么可能99行代码就可以实现。 怀着好奇的心情,点进去看了下,发现问……

阅读全文

2019年抖音数据报告趣味解读(附PDF完整版下载)

昨天(2020.01.06)抖音发布了2019年的抖音数据报告,从2019.1到2020.1一年的时间,日活从2.5亿到4亿,增长1.5亿,这速度也没谁了,怪不得微信慌了。 铲屎官的行业里,以后可能还会多个鸭子~ 对不起,我不想要男人,因为我已经有宠物了^_^ 除了老师、护士、消防员、……

阅读全文

Golang Gin 实战(十一)| HTML模板渲染

终于又到一个重头戏了。在整个服务端开发中,一个是API,一个就是网页,当前的API大部分都是通过JSON提供了,而网页就是通过HTML提供了。所以对于这么大的需求,Gin当然不会忘记,为我们提供了很多方便的操作。 html/template 在聊Gin的HTML渲染之前,先聊聊Golang(Go语言)内置的……

阅读全文

Golang Gin 实战(十)| XML渲染

虽然当前基于XML的API应用不多,但是Gin也提供了便捷的XML生成,可以把这些用于需要XML的地方,比如网站的sitemap,rss订阅的atom等。 来个map试试 1 2 3 4 5 6 7 func main() { r := gin.Default() r.GET("/xml", func(c *gin.Context) { c.XML(200, gin.H{"wechat": "flysnow_org", "blog": "www.flysnow.org"}) }) r.Run(":8080") } 在Gin中,要生成XML,只需要使用context.XML方法……

阅读全文

最近文章

福利派送

分类

标签

其它