Gopher China 2023 大会又准时和大家见面了, 2015年由 Go 中国社区发起的第一届 Gopher China 大会在上海成功举办,历时七年已成为国内最权威和最干货的Go大会,我们致力于为中国广大的 Gopher 提供最好的交流平台。举办 Gopher China 大会的目的是汇集广大 Go 语言的开发者以及大规模应用 Go 的示范企业给大家带来精彩分享,呈现一场最 cool 的盛会。
迄今为止,Gopher China 大会已经成功举办了七届,并且每年都会有 gopher meetup 线下巡回见面会,大会参会者累计已突破万人。前七届大会的成功举办也获得了良好的口碑,在技术圈内满意度和推荐度高达95%以上。
根据传统我们依然提前开放有虫吃的优惠早鸟票~
Go⾼级语法概念深⼊理解与精华点拨
Go项⽬源码结构、包、函数/⽅法、接⼝、API等设计原则⼀站式集中讲解
全景解析打造⼀个全新Go项⽬过程中所需的基础功能构件与⼯程实践
课程⽬标
能够直击本质,深⼊理解Go⾼级语法概念
能够使⽤正确的设计原则对Go包、函数/⽅法、接⼝与API进⾏设计与实现
能够为⼀个全新Go项⽬选择或实现最适当的基础功能构件
能够在⼀个全新Go项⽬中实施有益的的⼯程实践
语法⾼⼿:⼀学时带你深⼊理解Go语法概念,从此再⽆“语法坑”
Go取得成功的秘诀:了解Go背后的那些设计哲学与设计决策
Go类型系统:有何与众不同
值与指针:各司其责
数组与切⽚:静与动
字符串与rune:我中有你
map:其实坑挺多
函数与⽅法:本质是⼀家
结构体与接⼝:继承还是组合
错误处理:真的outdate了么?
并发原语:不是银弹
栈、堆与GC:便利背后的开销
反射:真的不该⽤么
unsafe:其实很安全
泛型:利与弊
设计能⼿:上到项⽬布局,下到函数原型,你应该了解的那些设计
原则与最佳实践
Go项⽬源码结构设计:演化历史与事实标准
包设计:职责基本单元
函数还是⽅法?
接⼝设计:需要发现的眼光
错误处理设计:告诉你⼏种策略
API设计的主流实践
⼯程达⼈:Go⼯程的那些事⼉从此轻⻋熟路——Go ⼯程构件
主框架:如何初始化与优雅退出
配置构件:⽀持多种配置⽅式
⽇志构件:⾃实现还是⼆次封装与适配
观测构件:现代Go服务程序必备
诊断构件:如何兼顾低开销
⼯程达⼈:Go⼯程的那些事⼉从此轻⻋熟路—Go⼯程实践
静态代码分析:消除公认隐患代码
测试:单元测试、覆盖率测试、模糊测试⼀个都不能少
调试:print⼤法好
在线诊断:权衡利弊选择最适合你的
性能调优:以不变应万变
部署升级:利⽤云原⽣时代的便利
大会开场
Go Team 的分享
待定
待定
待定
待定
午餐
MatrixCube: 基于Golang实现的分布式存储框架
MatrixCube在新一代分布式HTAP数据库MatrixOne(0.4)中承担了分布式的核心功能。MatrixCube是一个复制状态机模型的Multi-Raft的架构,对底层数据存储做了抽象,可以对接任意单机存储引擎提供分布式的存储能力。
Go语言生态和组件应用
OpenSergo & Sentinel: 下一代微服务治理标准与实践
在现代微服务架构中,针对复杂微服务架构的稳定性治理是广大开发者关注的重点。本次分享主要围绕微服务治理展开,介绍开放通用的、面向分布式服务架构、覆盖全链路异构化生态的服务治理标准 OpenSergo,结合流量灰度、流量染色、流控降级、过载保护等常见微服务治理场景,介绍如何利用 OpenSergo 统一的 CRD/DSL 来对异构化的 Go 微服务架构进行统一的治理;并结合 OpenSergo 流量治理的标准实现 Sentinel Go 来介绍流量治理相关技术的原理、生态与最佳实践,以及社区在服务治理领域的展望。
微服务架构下基于 Kratos 的服务注册与发现
不同服务之间通常需要相互调用。在单体应用程序当中,服务间通过语言层级的方法或者过程实现相互调用。在传统的分布式系统部署下,服务在固定并且已知的位置(主机与端口)运行,从而确保各服务可利用HTTP/REST或者某种RPC机制进行相互调用。然而,现代化微服务应用程序中通常在虚拟化或者容器化环境中运行,在这样的环境中服务的实例数量和位置是动态变化的。因此,要想实现客户端向动态变化的一组服务端实例发送请求,我们需要引入服务注册与发现机制,课题将通过实际案例讲解带你理解服务注册与发现在企业级项目的实践。
GORM 在字节跳动的最佳实践
字节跳动的业务类型繁多,采用的微服务的业务架构对于开发效率、执行性能、扩展性、安全性有着极高的要求。本课题讲解了GORM 在字节跳动的最佳实践,如何通过 GORM 与 RPC、API 接口交互,减少代码冗余,并满足公司业务在性能、安全性上的要求;如何通过灵活的定制、扩展 GORM 实现业务需求,例如多租户、读写分离、数据隐私、数据加密、Chaos 支持等等;如何通过代码生成框架 Gen 提升开发者的开发效率,同时加强业务安全。
Go 语言核心工具链及应用实践
移植 Go 语言到龙芯处理器
芯片一直是我们国家的短板,而龙芯处理器是国 产芯片的骄傲,已经成功地应用在北斗定位导航系统中。本次分享的内容将介绍移植 Go 语言到龙芯处理器的工作,涉及编译器,汇编器,链接器和运行时的修改。目前龙芯 port 已经进入 Go 官方 git 仓库的主分支,将在下个 版本 Go-1.19 正式发布。
基于 LLVM 的“另一个 Go 编译器”
字节跳动内部有大量的 Go 工程,因此对性能优化有强烈的需求。马春辉所在团队对 Go 原生编译器做了大量优化,取得了几十万核的节省(平均 CPU 节省 8%)。然而因为 Go 原生编译器的本质缺陷,他们决定基于高性能的 LLVM 编译框架,打造“另一个 Go 编译器”,以期望能获得更优的性能。来自字节跳动的马春辉将介绍他们基于 LLVM 打造的“另一个 Go 编译器”,包括现阶段取得的成果和未来的长远规划。
Go on GPU
在过去十多年里,多核异构计算逐渐成为主流,形成 CPU 作为 调度中枢、并与其他专用处理器分管计算任务的模式。其中,得益于图形计算技术的演进和完善,GPU 逐渐开始成为通用计算领域里不可或缺的一部分。欧长坤博士聚焦于 Go 语言在 GPU 计算中的实践,以一个支持 GPU 计算的库为背景,展开介绍如何使 Go 语言与 GPU 的各类管线进行交互,并探讨实践过程中的实现难点和性能挑战,最后将对 Go 语言社区内以 GPU计算为基础的相关应用领域进行展望。
Go 链接器
链接是大编译流程的最后一道工序,负责把编译器输出的中间文 件和库文件捆绑成单一文件,计算并填补编译时缺失的信息,使输出文件成为真 正的“可执行程序”。本次分享将介绍可执行文件的结构,并带领大家剖析 Go 链接器的工作流程。
beego开源成长之路
1. 早期项目如何启动
2. beego早期的启动点
3. 如何构建开源社区闭环
TiDB 项目的维护和发展
以 TiDB 为例,讨论一个开源数据库项目,如何维护与发展。内容包括开源项目维护的核心关键,商业模式、License、Governance 模型、开发者关系等等,也对一些普遍对开源项目的误解作一些探讨
go-zero开源项目的成长史
1. 何来go-zero项目?
2. 为什么会走向开源?
3. 开源之后的收获
4. 开源运营两年的心得
5. go-zero未来的思考
茶歇
万亿级流量转发软件BFE的开源之路
BFE(Beyond Front End)是基于Go语言编写的七层负载均衡软件。经过多年的内部研发和大流量验证后,BFE于2019年对外开源,并于2020年6月成为CNCF的Sandbox Project。这是中国在网络领域第一个被CNCF接受的开源项目。 本次分享将分析负载均衡技术的发展趋势,对比七层负载均衡多个技术生态之间的优缺点,讲述BFE的设计理念,并重点说明在BFE项目开源过程中的思考和心路历程。
CloudWeGo 开源实践:浅谈开源的道与术
- CloudWeGo 的开源背景与初衷
- CloudWeGo 的开源项目迭代
- CloudWeGo 的开源社区治理实践
- CloudWeGo 的开源运营实践
- CloudWeGo 的开源商业化探索
- CloudWeGo 的开源后续规划与展望
圆桌论坛
待定
待定
基于 dubbogo 的 Dubbo Mesh 新形态
1 在 RocketMQ 之上的⾦融级安全通信;
2 Dubbo 数据面批判以及其新形态;
3 分布式事务与数据一致性;
千万级高性能长连接Go服务架构实践
本次长连接技术分享,一方面结合百度APP在消息、直播、云控等业务中使用长连接的实践,来介绍百度APP长连接服务的架构及演进;另一方面,结合工作中使用Golang的实践,说明当前使用Golang开发的优势和问题。
茶歇
Go泛型的实现、陷阱和应用场景
Go泛型2022年2月份发布了,Gopher页一直关注着这个特性,那么Go泛型是如何实现的?和其它语言有什么区别?Go泛型又有哪些陷阱?Go泛型到底应用在哪些场景?本次分享尝试解答这些问题,帮助你更快更好的了解泛型应用泛型
企业级 Go HTTP 框架在字节跳动的实践
1. 字节跳动内部 Go HTTP框架的变迁(来自业务线、基础组件的困境和契机)
2. Hertz 设计目标 (更高的性能,支撑更灵活、复杂的需求)
3. Hertz 落地的性能收益 (内部降本增效,承载流量的规模)
4. Hertz 核心特点 (具体到易用、高性能、可扩展的设计亮点举例)
5. Hertz 未来规划和挑战(打造 cloudwego 产品矩阵)
语法⾼⼿:⼀学时带你深⼊理解Go语法概念,从此再⽆“语法坑”
设计能⼿:上到项⽬布局,下到函数原型,你应该了解的那些设计
⼯程达⼈:Go⼯程的那些事⼉从此轻⻋熟路——Go ⼯程构件
⼯程达⼈:Go⼯程的那些事⼉从此轻⻋熟路—Go⼯程实践
大会开场
Go Team 的分享
待定
待定
待定
待定
午餐
MatrixCube: 基于Golang实现的分布式存储框架
OpenSergo & Sentinel: 下一代微服务治理标准与实践
微服务架构下基于 Kratos 的服务注册与发现
GORM 在字节跳动的最佳实践
移植 Go 语言到龙芯处理器
基于 LLVM 的“另一个 Go 编译器”
Go on GPU
Go 链接器
beego开源成长之路
TiDB 项目的维护和发展
go-zero开源项目的成长史
茶歇
万亿级流量转发软件BFE的开源之路
CloudWeGo 开源实践:浅谈开源的道与术
圆桌论坛
待定
待定
基于 dubbogo 的 Dubbo Mesh 新形态
千万级高性能长连接Go服务架构实践
茶歇
Go泛型的实现、陷阱和应用场景
企业级 Go HTTP 框架在字节跳动的实践