首页
学习
活动
专区
工具
TVP
发布

码洞

专栏作者
176
文章
182239
阅读量
46
订阅数
《快学 Go 语言》第 16 课 —— 包管理 GOPATH 和 Vendor
到目前位置我们一直在编写单文件代码,只有一个 main.go 文件。本节我们要开始朝完整的项目结构迈进,需要使用 Go 语言的模块管理功能来组织很多的代码文件。
老钱
2019-10-25
1.1K1
等待的艺术:从Spin Lock到Token Bucket算法
CPU (Central Processing Unit)作为整个冯·诺依曼架构的控制与运算中心,终其一生都在执行没有边界的指令,用无差别的计算支撑起智能时代“算力取之不尽用之不竭”的梦。 但这样的计算并不是100%有意义的:糟糕的算法设计造成了大量的重复计算;忽视局部性与连续性的代码用cache miss粗暴地蹂躏着多级缓存,甚至触发频繁的cpu stall;低效的调度和密集的资源竞争拉低了程序的整体运行效率与吞吐...etc 因此在CS的不同领域,不管是kernel,语言运行时,网络,存储...都结合了各自的场景,催生出了无数的策略以最小化“等待”的计算量,让宝贵的算力尽可能服务于真正有价值的指令。本文罗列的的例子也许并不是那么apple to apple,但它们都从不同的视角给我启发,且有一定的共通。
老钱
2019-10-15
7490
图解Go语言内存分配
Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理。这样可以自主地实现更好的内存使用模式,比如内存池、预分配等等。这样,不会每次内存分配都需要进行系统调用。
老钱
2019-06-11
9750
深入Go的底层,带你走近一群有追求的人
上周六晚上,我参加了“Go夜读”活动,这期主要讲Go汇编语言,由滴滴曹春晖大神主讲。活动结束后,我感觉打通了任督二脉。活动从晚上9点到深夜11点多,全程深度参与,大呼过瘾,以至于活动结束之后,久久不能平静。
老钱
2019-04-25
7130
《快学 Go 语言》第 14 课 —— 魔术变性指针
本节我们要学习一些 Go 语言的魔法功能,通过内置的 unsafe 包提供的功能,直接操纵指定内存地址的内存。有了 unsafe 包,我们就可以洞悉 Go 语言内置数据结构的内部细节。
老钱
2018-12-28
4420
《快学 Go 语言》第 14 课 —— 反射
反射是 Go 语言学习的一个难点,但也是非常重要的一个知识点。反射是洞悉 Go 语言类型系统设计的法宝,Go 语言的 ORM 库离不开它,Go 语言的 json 序列化库离不开它,Go 语言的运行时更是离不开它。笔者在学习反射功能的时候也是费了好大一番功夫才敢说自己确实搞懂了。下面请读者跟着我的步伐来一步一步深入理解反射功能。
老钱
2018-12-28
3930
为什么 Go 语言能在中国这么火?
对大多数公司来说Golang的主要优势是和C++比有GC,和Java比更简洁,和Python比更快,这就在一个不错的位置上了,没有明显的短板。以大部分程序员的水平而言,Golang的缺点还还没有到能对他们产生困扰的程度,他们自己给自己造成的麻烦比语言给他们带来的麻烦多得多。
老钱
2018-12-27
1.9K0
《快学 Go 语言》第 12 课 —— 神秘的地下通道
不同的并行协程之间交流的方式有两种,一种是通过共享变量,另一种是通过队列。Go 语言鼓励使用队列的形式来交流,它单独为协程之间的队列数据交流定制了特殊的语法 —— 通道。
老钱
2018-12-24
3710
摸着石头过河:知乎核心业务 Go 语言改造实践
随着知乎用户的迅速增长和业务复杂度的持续增加,核心业务的流量在过去一年内增长了好几倍,对应的服务端的压力也越来越大。随着业务发展,我们发现 Python 作为动态解释型语言,较低的运行效率和较高的后期维护成本带来的问题逐渐暴露出来:
老钱
2018-12-19
1.4K0
《快学 Go 语言》第 8 课 —— 程序大厦是如何构建起来的
本节我们要开讲 Go 语言在数据结构上最重要的概念 —— 结构体。如果说 Go 语言的基础类型是原子,那么结构体就是分子。分子是原子的组合,让形式有限的基础类型变化出丰富多样的形态结构。结构体里面装的是基础类型、切片、字典、数组以及其它类型的结构体等等。
老钱
2018-12-17
5240
《快学 Go 语言》第 1 课 —— Hello World
最初 Go 语言的 Logo 是一只可爱的土拨鼠,土拨鼠昼伏夜出的习性让它显得很有 Geek 范。土拨鼠的行动其实并不敏捷,不过它繁殖能力很强,生长发育的很快。
老钱
2018-12-13
6080
快学 Go 语言 第 1 课 —— Hello World
最初 Go 语言的 Logo 是一只可爱的土拨鼠,土拨鼠昼伏夜出的习性让它显得很有 Geek 范。土拨鼠的行动其实并不敏捷,不过它繁殖能力很强,生长发育的很快。
老钱
2018-12-05
7330
自己动手实现 Shell多进程套套符
一篇技术文章如今仅仅是理论上讲得天花乱坠,却不能自己撸出东西来,那么它写的再好,也只能算纸上谈兵。继上一篇 《我们天天都在使用的套套符命令,Shell 在里面到底动了什么手脚?》收到大量读者粉丝的点赞之后,我觉得很有必要自己来实现一下套套符的功能。这个功能就是实现下面这样的管道通信,可以将多个指令的输入输出串接起来。
老钱
2018-11-08
5020
Channel最佳实践之基本规则【译】
channel[通道]是golang的一种重要特性,正是因为channel的存在才使得golang不同于其它语言。channel使得并发编程变得简单容易有趣。
老钱
2018-08-15
8280
如何优雅的关闭Go Channel【译】
不要在消费端关闭channel,不要在有多个并行的生产者时对channel执行关闭操作。
老钱
2018-08-15
1.4K0
会玩Go!会玩Python!嘭!Go-Python!
Golang是静态语言,性能很好,当它不那么灵活,不好在运行时动态运行代码。Python是动态语言,非常灵活,但是性能很差。古人云:“鱼和熊掌不能兼得”。但是如今有了Go-Python,鱼和熊掌也可以兼得。
老钱
2018-08-15
1.6K0
依赖注入不是Java的专利,Golang也有
笔者在使用Golang的时候就发现构建系统依赖树非常繁琐,New了很多对象,又手工代码将它们拼接起来,写了一堆非常冗繁的代码。然后就开始想,要是Golang像Java一样有一个好用的依赖注入框架就好啦。
老钱
2018-08-15
7360
一个好玩的彩色ascii码生成工具
该图片转换工具使用Go语言开发,关注公众号「码洞」,自动告诉你地址
老钱
2018-08-14
5840
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档