基于gRPC go实现消息发布订阅## 使用gRPC go实现 基于Topic的高效消息订阅发布模型  姓名:___ 张凯 中国电子云 ) - 使用 “go” 命令创建goroutine go sockstore.Start() - goroutine使用channel交换消息 - 异步场景,直接往指定channel发送数据 -0 码力 | 25 页 | 260.04 KB | 2 年前3
2.2.3 使用 Go 重新实现一套 Service MeshGO CN 使用 Go 重新实现一套 Service Mesh 张晋涛 API7.ai 云原生技术专家 个人介绍 张晋涛 Apache APISIX PMC Kubernetes Ingress-NGINX maintainer Microsoft MVP 『K8S生态周报』的维护者 公众号:『MoeLove』 GitHub: https://github.com/tao1234566333 Blog: https://moelove.info/ ’ alt=‘OCR图片’/> Service Mesh 现状 0 1 为什么要重新实现 Service Mesh 0 2 为什么用 Go 实现 Service Mesh 0 3 如何用 Go 实现 Service Mesh 0 4 我们有哪些收获 0 5 第一部分 Service Mesh 现状 ’ alt=‘OCR图片’/> Solo alt=‘OCR图片’/> 第二部分 为什么要重新实现 Service Mesh ’ alt=‘OCR图片’/> 背景 API7.ai是一家提供API全生命周期管理服务/产品的公司 API7.ai是 Apache APISIX的创始团队 Apache APISIX是Apache基金会的顶级开源项目,是一款高性能易扩展的云原生API网关 ’ alt=‘OCR图片’/> 重新实现 Service Mesh0 码力 | 24 页 | 4.02 MB | 1 月前3
2.2 从零开始用 Go 实现 Lexer & Parser - 何源从零开始用 Go 实现 Lexer & Parser 何源 yuan@liulishuo.com 流利说 流利说 Help everyone become a global citizen! aithub/lingochamp 流利说 Empower everyone to achieve their full potential 何源 yuan@liulishuo.com Platform “(”; 43 RightParen = “)”; 44 Slash = “/”; 45 LeftDoubleCurly = “{”; 46 RightDoubleCurly = “}”; 3. 实现 实现 使用现有工具,比如 goyacc 正则表达式?:P Use states, actions, and a switch statement 现有工具 难 debug (can think “I know, I’ll use regular expressions.” Now they have two problems. -Jamie Zawinski Thinking in Go ’ alt=‘OCR图片’/> [TYPE C&D]\nID:1766229869997200821\nPic(id=5849427d5de7de2948c7a825): Bill_Helen0 码力 | 81 页 | 4.72 MB | 1 月前3
2.Go语言实现中的几个研究课题_毛康力# Go语言实现中的几个研究课题 毛康力 @舜飞科技 ## 关于我 • Go发布1.0时开始关注 • 最早接触是在2012年 - 喜欢研究底层实现 • http://www.zenlife.tk/  有同事称我大神或大师(湿?) Println("timed out") default: fmt.Println("nothing ready at the moment") } • select如何实现? • select其实是一个整体 • c1 c2并不能独立对待 - 要么全部成功,要么失败,否则可能死锁 • 单纯对select结构加锁行不通!!! • 共享一个全局锁? ![Image] 8aaaa130ac07ef5c/p13_1.jpg) - 研究课题:能否实现lock-free channels? ## 大纲 - 并发 - 接口 - 垃圾回收 - 调度 - 死锁检测 ## 接口 • 接口定义了一系列方法 - 如果类型实现了这些方法,它就实现了这个接口 • 接口不依赖实现 - 避免了过度设计,比如OO里面基于继承的方式 ## 接口 Go入门指南 书栈(BookStack.CN) ## 目录 致谢 阅前必读 内容介绍 前言 第1章:Go 语言的起源,发展与普及 1.1 起源与发展 1.2 语言的主要特性与发展的环境和影响因素 第2章:安装与运行环境 2.1 平台与架构 2.2 Go 环境变量 2.3 在 Linux 上安装 Go 2.4 在 Mac OS OS X 上安装 Go 2.5 在 Windows 上安装 Go 2.6 安装目录清单 2.7 Go 运行时(runtime) 2.8 Go 解释器 第3章:编辑器、集成开发环境与其它工具 3.1 Go 开发环境的基本要求 3.2 编辑器和集成开发环境 3.3 调试器 3.4 构建并运行 Go 程序 3.5 格式化代码 3.6 生成代码文档 3 3.7 其它工具 3.8 Go 性能说明 3.9 与其它语言进行交互 第4章:基本结构和基本数据类型 4.1 文件名、关键字与标识符 4.2 Go 程序的基本结构和要素 4.3 常量 4.4 变量 4.5 基本类型和运算符 4.6 字符串 4.7 strings 和 strconv 包 4.8 时间和日期 4.9 指针 第5章:控制结构0 码力 | 466 页 | 4.44 MB | 2 年前3
Go 入门指南(The way to Go)1986bf1/p1_3.jpg) The Way to Go Go入门指南 Ivo Balbaert 著 陈佳桦 译 ## 前言 原文出处:https://github.com/Unknwon/the-way-to-go_ZH_CN ## 用更少的代码,更短的编译时间,创建运行更快的程序,享受更多的乐趣 对于学习 Go 编程语言的爱好者来说,这本书无疑是最适合你的一本书籍,这里包 开发出的软件能够很好地在现代的多核计算机上工作 - 开发出的软件能够很好地在网络环境下工作 • 使人们能够享受软件开发的过程 Go 语言就在这样的环境下诞生了,它让人感觉像是 Python 或 Ruby 这样的动态语言,但却又拥有像 C 或者 Java 这类语言的高性能和安全性。 Go 语言出现的目的是希望在编程领域创造最实用的方式来进行软件开发。它并不是要用奇怪的语法和晦涩难懂的概念来从根本上推翻已有的编程语言,而是建立并改善了 来支持并发和并行编程。 这本书是为那些想要学习 Go 这门全新的,迷人的和充满希望的编程语言的开发者量身定做的。当然,你在学习 Go 语言之前需要具备一些关于编程的基础知识和经验,并且拥有合适的学习环境,但你并不需要对 C 或者 Java 或其它类似的语言有非常深入的了解。 对于那些熟悉 C 或者面向对象编程语言的开发者,我们将会在本书中用 Go 和一些编程语言的相关概念进行比较(书中会使用大家所熟知的缩写0 码力 | 380 页 | 2.97 MB | 2 年前3
1.3 Go coding in go wayprint $ sieve [2..n] [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97] sieve.go//并发组合 (borrowed from Rob Pike’s slide) func generate(ch chan<- int) { for i := 2; ; i++ { channel. go generate(ch) // Start generate() as a subprocess. for { prime := <-ch fmt.Print(prime, "\n") ch1 := make(chan int) go filter(ch, } sieve.go (cont.) From divan’s blog (http://divan.github.io/posts/go_concurrency_visualize/) ’ alt=‘OCR图片’/> 思考 面对同一个问题,来自不同编程语言的程序员给出了思维方式截然不同的解决方法 一定程度上印证了前面的假说:编程语言影响编程思维 避免Go coding in0 码力 | 69 页 | 1.24 MB | 1 月前3
The fuzzy tale of an x/crypto vulnerabilityinputs or correctness is paramount: parsers, network protocols, cryptography, ... ### github.com/dvyukov/go-fuzz ## func Fuzz(data []byte) int ## func Fuzz(data []byte) int { parse(data) return 0 } Hit Counter cycles back to beginning ## V erified by encrypting 256+ GiB! ## Discovery in Upstreams • Go implementation ported from SUPERCOP • Confirmed to still have the bug • More seriously: also present [Image](/uploads/documents/6/b/3/4/6b348f116144dcd3489668319402a350/p72_1.jpg) groups.google.com/forum/#!msg/go... ## Filippo Valsorda and Adam Langley 












