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

腾讯技术工程官方号的专栏

专栏作者
1090
文章
2422999
阅读量
889
订阅数
大牛书单 | 学习 Golang 的好书
Go(又称“Golang”)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。2009 年 11 月正式成为开放源代码项目。2016 年,被软件评价公司 TIOBE 选为“TIOBE 2016 年最佳语言”。 在鹅厂,Go 成为了 2021 年新增代码量最多的编程语言。 点击查看腾讯2021年研发大数据报告 本期《大牛书单》,我们就请来了几位鹅厂同事,为大家推荐一些学习 Go 的书籍,一起多读书多进步。
腾讯技术工程官方号
2022-05-17
7820
Go 高性能编程技法
作者:dablelv,腾讯 IEGggG 后台开发工程师 代码的稳健、可读和高效是我们每一个 coder 的共同追求。本文将结合 Go 语言特性,为书写效率更高的代码,从常用数据结构、内存管理和并发,三个方面给出相关建议。话不多说,让我们一起学习 Go 高性能编程的技法吧。 常用数据结构 1.反射虽好,切莫贪杯 标准库 reflect 为 Go 语言提供了运行时动态获取对象的类型和值以及动态创建对象的能力。反射可以帮助抽象和简化代码,提高开发效率。 Go 语言标准库以及很多开源软件中都使用了 Go 语言的反
腾讯技术工程官方号
2022-03-18
1.7K0
一致性 Hash 算法原理总结
作者:kylinkzhang,腾讯 CSIG 后台开发工程师 一致性 Hash 算法是解决分布式缓存等问题的一种算法,本文介绍了一致性 Hash 算法的原理,并给出了一种实现和实际运用的案例; 一致性 Hash 算法背景 考虑这么一种场景: 我们有三台缓存服务器编号node0、node1、node2,现在有 3000 万个key,希望可以将这些个 key 均匀的缓存到三台机器上,你会想到什么方案呢? 我们可能首先想到的方案是:取模算法hash(key)% N,即:对 key 进行 hash 运算后取模,N
腾讯技术工程官方号
2022-03-14
1.2K0
​Golang 并发编程指南
作者:dcguo,腾讯 CSIG 电子签开放平台中心 分享 Golang 并发基础库,扩展以及三方库的一些常见问题、使用介绍和技巧,以及对一些并发库的选择和优化探讨。 go 原生/扩展库 提倡的原则 不要通过共享内存进行通信;相反,通过通信来共享内存。 Goroutine goroutine 并发模型 调度器主要结构 主要调度器结构是 M,P,G M,内核级别线程,goroutine 基于 M 之上,代表执行者,底层线程,物理线程 P,处理器,用来执行 goroutine,因此维护了一个 gorout
腾讯技术工程官方号
2021-12-20
1.3K0
Golang 编程思维和工程实战
Golang 的一些编程思维和思想,以及总结一些常见的优雅编程实战技巧。 作者:allendbwu,腾讯 PCG 后台开发工程师 一 Golang 编程思维 首先,我们先来看下最基本的,就是 Golang 的学习技巧,比如通读 Golang 的一些好的文章: Frequently Asked Questions (FAQ) FAQ 的中文翻译 Go 精华文章列表 Go 相关博客列表 Go Talks 要通读 golang 官方的编码规范,主要是要参考官方的 CodeReviewComments 和 E
腾讯技术工程官方号
2021-11-23
8110
开源监控系统 Prometheus 最佳实践
作者:jimmiehan(韩金明) , 腾讯PCG后台开发工程师, Prometheus/Thanos contributor Prometheus 是目前最流行的开源监控系统之一, 这里以我在基于 Prometheus 构建天机阁 2.0Metrics 子系统的实践谈一谈 Prometheus 的一些最佳实践, 最佳实践的理念是 Prometheus 系统简单稳定高效运行的关键。(注: 天机阁 2.0 是新一代云原生可观测性系统) 埋点思路 最好将原始指标暴露给 Prometheus, 而不是在应用
腾讯技术工程官方号
2021-11-17
1.6K0
一套优雅的 Go 错误问题解决方案
作者:andruzhang,腾讯 IEG 后台开发工程师 在使用 Go 开发的后台服务中,对于错误处理,一直以来都有多种不同的方案,本文探讨并提出一种从服务内到服务外的错误传递、返回和回溯的完整方案,还请读者们一起讨论。 问题提出 在后台开发中,针对错误处理,有三个维度的问题需要解决: 函数内部的错误处理: 这是一个函数在执行过程中遇到各种错误时的错误处理。这是一个语言级的问题 函数/模块的错误信息返回: 一个函数在操作错误之后,要怎么将这个错误信息优雅地返回,方便调用方(也要优雅地)处理。这也是一个
腾讯技术工程官方号
2021-10-08
1.1K0
2021 有哪些不容错过的后端技术趋势
前言 2020 年注定是不平凡的一年,虽疫情肆虐,但我国互联网产业展现出巨大韧性,不仅为精准有效防控疫情发挥了关键作用,还在数字基建、数字经济等方面取得了显著进展,成为我国应对新挑战、建设新经济的重要力量。 腾讯在线教育部后台中心团队,作为在线教育行业的从业者,我们尝试整理一下 2020 年后端技术要点,以此窥探后台未来技术的发展趋势: 云计算进程提速,一切皆服务。 云上安全越来越受到企业的重视。 从资源云向业务云化转变,最终全面云原生化。 微服务、DDD、中台技术并非企业技术架构设计的银弹。 Pyt
腾讯技术工程官方号
2021-03-11
1.9K0
Go与C的桥梁:CGO入门剖析与实践
作者:panhuili,腾讯 IEG 后台开发工程师 Go 作为当下最火的开发语言之一,它的优势不必多说。Go 对于高并发的支持,使得它可以很方便的作为独立模块嵌入业务系统。有鉴于我司大量的 C/C++存量代码,如何 将 Go 和 C/C++进行打通就尤为重要。Golang 自带的 CGO 可以支持与 C 语言接口的互通。本文首先介绍了 cgo 的常见用法,然后根据底层代码分析其实现机制,最后在特定场景下进行 cgo 实践。 一、CGO 快速入门 1.1、启用 CGO 特性 在 golang 代码中加
腾讯技术工程官方号
2021-02-07
5.2K0
速抢!程序员专属红包封面
今天立春,明天小年,提前给大家拜个早年。 最近微信红包封面很火,明星的、企业的各式各样,不知道你有没有抢到。 作为程序员,怎么能没有自己的专属个性封面? 所以,这几天我们 腾讯技术工程 加班加点设计了一个程序员特色的红包封面,长下面这个样子: C++、Java、Python、Go,还有 PHP 等主流语言统统有上榜。 不知道你喜不喜欢,反正在腾讯内部是被程序员们抢疯了。 什么?没有你用的语言?留言区告诉我,看能不能让射鸡师加上。 重点来了! 这个红包封面是 1 块钱一个,不便宜,你以为会让你花钱来
腾讯技术工程官方号
2021-02-04
1.7K0
编译原理初学者入门指南
作者:pixelcao,腾讯 IEG 后台开发工程师 一、引子 最近的工作需要用表达式做一些参数的配置,然后发现大脑一片空白,在 Google 里试了几个关键词(起初搜了下“符号引擎”,发现根本不是我想要的)之后,明白过来自己应该是需要补一些编译原理的知识了。在掉了两晚上头发之后,决定整理一下自己的知识网络。 要解析的表达式大概长这个样子: avg(teams[*].players.attributes[skill])*rules[latency].maxLatency 正则表达式是个办法,但不是最优
腾讯技术工程官方号
2021-01-21
2.3K0
万字详文阐释程序员修炼之道
作者:cheaterlin,腾讯 PCG 后台开发工程师 综述 我写过一篇《Code Review 我都 CR 些什么》,讲解了 Code Review 对团队有什么价值,我认为 CR 最重要的原则有哪些。最近我在团队工作中还发现了: 原则不清晰。对于代码架构的原则,编码的追求,我的骨干员工对它的认识也不是很全面。当前还是在 review 过程中我对他们口口相传,总有遗漏。 从知道到会做需要时间。我需要反复跟他们补充 review 他们漏掉的点,他们才能完成吸收、内化,在后续的 review 过程中,
腾讯技术工程官方号
2020-12-08
1.7K0
Golang 单元测试详尽指引
文末有彩蛋。 作者:yukkizhang,腾讯 CSIG 专项技术测试工程师 本篇文章站在测试的角度,旨在给行业平台乃至其他团队的开发同学,进行一定程度的单元测试指引,让其能够快速的明确单元测试的方式方法。 本文主要从单元测试出发,对Golang的单元测试框架、Stub/Mock框架进行简单的介绍和选型推荐,列举出几种针对于Mock场景的最佳实践,并以具体代码示例进行说明。 一、单元测试 1. 单元测试是什么 单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向
腾讯技术工程官方号
2020-10-26
4K0
Go 如何实现热重启
作者:zhijiezhang,腾讯 PCG 后台开发工程师 最近在优化公司框架 trpc 时发现了一个热重启相关的问题,优化之余也总结沉淀下,对 go 如何实现热重启这方面的内容做一个简单的梳理。 1.什么是热重启? 热重启(Hot Restart),是一项保证服务可用性的手段。它允许服务重启期间,不中断已经建立的连接,老服务进程不再接受新连接请求,新连接请求将在新服务进程中受理。对于原服务进程中已经建立的连接,也可以将其设为读关闭,等待平滑处理完连接上的请求及连接空闲后再行退出。通过这种方式,可以保
腾讯技术工程官方号
2020-09-10
2.4K0
Golang 汇编入门知识总结
作者:ivansli,腾讯 IEG 运营开发工程师 在深入学习 Golang 的 runtime 和标准库实现的时候发现,如果对 Golang 汇编没有一定了解的话,很难深入了解其底层实现机制。在这里整理总结了一份基础的 Golang 汇编入门知识,通过学习之后能够对其底层实现有一定的认识。 0. 为什么写本文 平时业务中一直使用 PHP 编写代码,但是一直对 Golang 比较感兴趣,闲暇、周末之余会看一些 Go 底层源码。 近日在分析 go 的某些特性底层功能实现时发现:有些又跟 runtime
腾讯技术工程官方号
2020-09-07
2.4K0
从入门到掉坑:Go 内存池/对象池技术介绍
作者:deryzhou,腾讯 PCG 后台开发工程师 Go 中怎么实现内存池,直接用 map 可以吗?常用库里 GroupCache、BigCache 的内存池又是怎么实现的?有没有坑?对象池又是什么?想看重点的同学,可以直接看第 2 节 GroupCache 总结。 0. 前言: tcmalloc 与 Go 以前 C++服务上线,遇到性能优化一定会涉及 Google 大名鼎鼎的 tcmalloc。 相比 glibc,tcmalloc 在多线程下有巨大的优势: vs tcmalloc 其中使用的
腾讯技术工程官方号
2020-06-04
2.5K0
Go 为什么这么“快”
作者:joellwang,腾讯 CSIG 后台开发工程师 本文主要介绍了 Go 程序为了实现极高的并发性能,其内部调度器的实现架构(G-P-M 模型),以及为了最大限度利用计算资源,Go 调度器是如何处理线程阻塞的场景。 怎么让我们的系统更快 随着信息技术的迅速发展,单台服务器处理能力越来越强,迫使编程模式由从前的串行模式升级到并发模型。 并发模型包含 IO 多路复用、多进程以及多线程,这几种模型都各有优劣,现代复杂的高并发架构大多是几种模型协同使用,不同场景应用不同模型,扬长避短,发挥
腾讯技术工程官方号
2020-02-27
1.2K0
一起 goroutine 泄漏问题的排查
作者: yanhengwang,腾讯 PCG 开发工程师 在 golang 中创建 goroutine 是一件很容易的事情,但是不合理的使用可能会导致大量 goroutine 无法结束,资源也无法被释放,随着时间推移造成了内存的泄漏。避免 goroutine 泄漏的关键是要合理管理 goroutine 的生命周期,通过导出 runtime 指标和利用 pprof 可以发现和解决 goroutine 泄漏问题。 笔者维护了一个通过 SSH 连接到目标机器并执行命令的服务,这是一个内部小服务,平时没有问题
腾讯技术工程官方号
2020-01-08
2.5K0
万字长文带你深入浅出 Golang Runtime
本文作者:yifhao,腾讯PCG NOW直播 后台工程师 介绍 本文基于 2019.02 发布的 go 1.12 linux amd64 版本, 主要介绍了 Runtime 实现的一点原理和细节, 对大家容易错或者网络上很多错误的地方做一些梳理: Golang Runtime 是个什么 Golang Runtime 的发展历程, 每个版本的改进 Go 调度: 协程结构体, 上下文切换, 调度队列, 大致调度流程, 同步执行流又不阻塞线程的网络实现等 Go 内存: 内存结构, mspan 结构, 全
腾讯技术工程官方号
2019-12-03
2.1K0
从并发模型看 Go 的语言设计
传统的程序语言设计都不会将输入输出作为语言的核心,但 Tony Hoare 认为输入输出是基本的编程原语,且通信顺序进程(Communicating sequential processes,CSP)的并行组合(这里可能用「并发」会更为准确)是基本的程序组织方法。Go 语言的并发设计就是基于 CSP 模型的。
腾讯技术工程官方号
2019-05-16
8030
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档