如何向Go官方提交代码-蒙卓如何向Go官方提交代码 蒙卓 hi@mzh.io 自我介绍 ● 后端工程师,主要写Go ● 业余搞Go官方库开发 ● 主要喜欢折腾ARM/MIPS 性能优化 ● 第一个中国Go 官方MIPS64 builder 维护者 目录 1. 为啥参与Go开发 2. 如何提交CL 3. 交流技巧 4. 参考资料 为啥参与Go开发? 解决BUG 4000+ issue 2510 TODO0 码力 | 38 页 | 5.95 MB | 1 年前3
03. Golang 在隐私计算平台建设中的实践 - 刘敬趣链科技版权所有©2016 – 2021 6 隐私计算历史 1982年年姚期智提 出 百 万 富 翁 问 题 , 安 全 多 ⽅方 计 算概念被提出 1986年年姚期智提出 基于混淆电路路的通 ⽤用解决⽅方案 2016年年⾕谷歌提出联 邦学习,解决安卓 ⼿手机终端⽤用户的联 合模型训练 2009年年Gentry⾸首 次提出了了全同态 算法 2013年年Intel推出SGX指 架构 趣链科技版权所有©2016 – 2021 9 平台体系 • 区块链协同层 数据共享⽬目录,数据确权授 权、追溯审计以及联盟治理理 • 隐私计算⽹网络 多节点通过p2p组⽹网,并基于安 全多⽅方计算、联邦学习、可信执 ⾏行行环境按照数据隐私密级进⾏行行价 值共享 • 业务应⽤用层 基于SDK接⼊入上层业务系统 趣链科技版权所有©2016 – 2021 10 隐私计算流程0 码力 | 37 页 | 6.20 MB | 1 年前3
云原生go-zero微服务框架设计思考工具大于约定和文档 ● 尽可能约束做一件事只有一种方式 ● 对业务开发友好,封装复杂度 go-zero是如何设计的 客户端 API端 Service端 缓存层 iOS PC web 安卓 HTTP协议 日志记录 加解密 鉴权&防重放 异常捕获 并发控制 数据统计 监控报警 链路跟踪 自动降载 自动熔断 超时控制 gRPC协议 日志记录 缓存控制 调用鉴权 异常捕获 并发控制0 码力 | 29 页 | 5.70 MB | 9 月前3
Go 入门指南(The way to Go)会被用于在 Go入门指南 - 10 - 本文档使用 看云 构建 Chrome OS 中执行 Go 语言开发的应用程序。 Go 语言可以在 Intel 或 ARM 处理器上运行,因此它也可以在安卓系统下运行,例如 Nexus 系列的产 品。 在 Google App Engine 中使用 Go 语言:2011 年 5 月 5 日,官方发布了用于开发运行在 Google App Engine 处理器上的移植进度:https://codedr-go- ppc.googlecode.com/hg/。 注意事项 在 Mac 系统下使用到的 C 工具链是 Xcode 的一部分,因此你需要通过安装 Xcode 来完成这些工具的安 装。你并不需要安装完整的 Xcode,而只需要安装它的命令行工具部分。 你可以在 下载页面 页面下载到 Mac 系统下的一键安装包或源代码自行编译。 通过源代码编译安装的过程与环境变量的配置与在 error: can’t find import: fmt 则说明你的环境变量没有配置正确。 如果你想要在 Windows 下使用 cgo (调用 C 语言写的代码),则需要安装 MinGW,一般推荐安 装 TDM-GCC。如果你使用的是 64 位操作系统,请务必安装 64 位版本的 MinGW。安装完成进行环境 变量等相关配置即可使用。 在 Windows 下运行在虚拟机里的 Linux 系统上安装0 码力 | 380 页 | 2.97 MB | 1 年前3
2.1.3 如何用Go模拟CPU如何用Go模拟CPU 蒙卓 华为 – 2012实验室 工程师 成为盘古? 让这个世界里面的人(程序)无法察觉 这个世界是创造出来的 目录 • 计算机的演化历史 – 硬件计算到冯诺伊曼架构 • 构建虚拟世界 – MOS 6502 • 控制单元(control unit) • 运算逻辑单元(arithmetic logic unit) • 6502汇编器与链接器 • 未来目标 1970年程序员0 码力 | 42 页 | 7.10 MB | 1 年前3
Go 入门指南(The way to Go)浏览器中内置了一款 Go 语言的编译器用于本地客户端(NaCl),这很可能会被用于在 Chrome OS 中执行 Go 语言开发的应用程序。 Go 语言可以在 Intel 或 ARM 处理器上运行,因此它也可以在安卓系统下运行,例如 Nexus 系列的产品。 在 Google App Engine 中使用 Go 语言:2011 年 5 月 5 日,官方发布了用于开发运行在 Google App Engine 的工具链是用 C 语言编写的,因此在安装 Go 之前你需要先安装相关的 C 工具。如果你使用的是 Ubuntu 的话,你可以在终端输入以下指令( 译者注:由于网络环境的特殊性,你可能需要将每个工具分开安 装 )。 1. sudo apt-get install bison ed gawk gcc libc6-dev make 你可以在其它发行版上使用 RPM 之类的工具。 3. 获取 Go Windows 下,标准库的位置在 Go 根目录下的 子目录 pkg\windows_386 中;在 Linux 下,标准库在 Go 根目录下的子目录 pkg\linux_amd64 中(如果是安 装的是 32 位,则在 linux_386 目录中)。一般情况下,标准包会存放在 $GOROOT/pkg/$GOOS_$GOARCH/ 目录 下。 Go 的标准库包含了大量的包(如:fmt0 码力 | 466 页 | 4.44 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Go 版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 第 16 章 附錄 368 16.1 程式設計環境安裝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 16.2 一起參與創作 . . . . . . 前言 www.hello‑algo.com 6 圖 0‑3 執行程式碼示例 執行程式碼的前置工作主要分為三步。 第一步:安裝本地程式設計環境。請參照附錄所示的教程進行安裝,如果已安裝,則可跳過此步驟。 第二步:克隆或下載程式碼倉庫。前往 GitHub 倉庫。如果已經安裝 Git ,可以透過以下命令克隆本倉庫: git clone https://github.com/krahets/hello-algo 可以重新計算接收到的 資料的雜湊值,並與接收到的雜湊值進行比較。如果兩者匹配,那麼資料就被視為完整。 對於密碼學的相關應用,為了防止從雜湊值推導出原始密碼等逆向工程,雜湊演算法需要具備更高等級的安 全特性。 ‧ 單向性:無法透過雜湊值反推出關於輸入資料的任何資訊。 ‧ 抗碰撞性:應當極難找到兩個不同的輸入,使得它們的雜湊值相同。 ‧ 雪崩效應:輸入的微小變化應當導致輸出的顯著且不可預測的變化。0 码力 | 385 页 | 18.80 MB | 10 月前3
2.2.2 深入理解BFE代表:Nginx, APISIX Envoy 生态 • 最早用于 Service Mesh • 也可用于网关 • 代表:Envoy Go 生态 • 基于Go语言的生 态积累 • 更好的稳定性和安 全性 • 易于开发扩展功能 • 代表:BFE, Traefik API网关 七层负载均衡 BFE主要设计思想 • 转发模型优化 • 支持多租户 • 引入条件表达式,减少正则表达式使用0 码力 | 26 页 | 1.78 MB | 1 年前3
2.1.1 Golang主动式内存缓存的优化探索之路Golang主动式内存缓存的优化探索之路 安晏伯 学而思网校 技术专家 目 录 问题引入 01 难点攻克 02 主动式内存缓存框架 03 总结 04 问题引入 第一部分 为什么能有极致的性能? 01. 如何优化? 解决了哪些技术难题? 主动式内存缓存 如何优化? 极致的性能 除了网络IO,与Redis有什么区别? 复杂的查询怎么办? 02. 传统的Cache很难0 码力 | 48 页 | 6.06 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.atype IntegerType int Go 1.17引入的两个函数为: func Add(ptr Pointer, len IntegerType) Pointer。 此函数在一个(非安 全)指针表示的地址上添加一个偏移量,然后返回表示新地址的一个指 针。 此函数以一种更正规的形式部分地覆盖了下面将要介绍的使用模式3 中展示的合法用法。 func Slice(ptr *ArbitraryType println(t.x) // ok。继续使用值t,但只使用t.x字段。 } 事实五:*unsafe.Pointer是一个类型安全指针类型 是 的 , 类 型 *unsafe.Pointer 是 一 个 类 型 安 全 指 针 类 型 。 它 的 基 类 型 为 unsafe.Pointer。 既然它是一个类型安全指针类型,根据上面列出的类型转换 规则,它的值可以转换为类型unsafe.Pointer,反之亦然。 如何正确地使用非类型安全指针? unsafe标准库包的文档中列出了六种非类型安全指针的使用模式 。 下面将对 它们逐一进行讲解。 使用模式一:将类型*T1的一个值转换为非类型安全指针值,然后将此非类型安 全指针值转换为类型*T2。 利用前面列出的非类型安全指针相关的转换规则,我们可以将一个*T1值转换为 类型*T2,其中T1和T2为两个任意类型。 然而,我们只有在T1的尺寸不小于T2并 且此转换具有实际意义的时候才应该实施这样的转换。0 码力 | 608 页 | 1.08 MB | 1 年前3
共 18 条
- 1
- 2













