Go Web编程WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3 1.Go环境配置 1.1. Go安装 1.2. GOPATH 与工作空间 1.3. Go 命令 1.4. Go开发工具 1.5. 小结 2.Go语言基础 2.1. 你好,Go 2.2. Go基础 2.3. 3 controller设计 13.4 日志和配置设计 13.5 实现博客的增删改 13.6 小结 14.扩展Web框架 14.1 静态文件支持 14.2 Session支持 14.3 表单支持 14.4 用户认证 14.5 多语言支持 14.6 pprof支持 14.7 小结 附录A 参考资料 5 1 GO环境配置 1 GO环境配置 欢迎来到Go的世界,让我们开始探索吧! 些语言上的问题:一个富有表达能力但轻 量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生 了。 在本章中,我们将讲述Go的安装方法,以及如何配置项目信息。 目录 目录 links links 目录 下一节: Go安装 6 1.1 Go 安装 1.1 Go 安装 Go的三种安装方式 Go的三种安装方式 Go有多0 码力 | 295 页 | 5.91 MB | 1 年前3
Go 入门指南(The way to Go)链接器:将项目代码链接到可执行的二进制文件(机器代码) (相关的 C 编译器名称为 6c、8c 和 5c,相关的汇编器名称为 6a、8a 和 5a) 标记(Flags) 是指可以通过命令行设置可选参数来影响编译器或链接器的构建过程或得到一个特殊的 目标结果。 可用的编译器标记如下: flags: -I 针对包的目录搜索 -d 打印声明信息 -e 不限制错误打印的个数 -f 打印栈结构 -h 性(操作系统与处理器架 Go入门指南 - 14 - 本文档使用 看云 构建 构)。 为了区分本地机器和目标机器,你可以使用 $GOHOSTOS 和 $GOHOSTARCH 设置目标机器的参数, 这两个变量只有在进行交叉编译的时候才会用到,如果你不进行显示设置,他们的值会和本地机器( $GOOS 和 $GOARCH )一样。 $GOPATH 默认采用和 $GOROOT 一样的值,但从 下载地址:Download the Go distribution 。 我们接下来也会带你一步步的完成安装过程。 1. 设置 Go 环境变量 我们在 Linux 系统下一般通过文件 $HOME/.bashrc 配置自定义环境变量,根据不同的发行版也可 能是文件 $HOME/.profile ,然后使用 gedit 或 vi 来编辑文件内容。 export GOROOT=$HOME/go 为了确保相关文件0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)5.5 Break 与 continue 5.6 标签与 goto 第6章:函数(function) 6.1 介绍 6.2 函数参数与返回值 6.3 传递变长参数 6.4 defer 和追踪 6.5 内置函数 6.6 递归函数 6.7 将函数作为参数 6.8 闭包 6.9 应用闭包:将函数作为返回值 6.10 使用闭包调试 6.11 计算函数执行时间 6.12 通过内存缓存来提升性能 接口与动态类型 11.13 总结:Go 中的面向对象 11.14 结构体、集合和高阶函数 第12章:读写数据 12.1 读取用户的输入 12.2 文件读写 12.3 文件拷贝 12.4 从命令行读取参数 12.5 用 buffer 读取文件 - 4 - 本文档使用 书栈(BookStack.CN) 构建 12.6 用切片读写文件 12.7 用 defer 关闭文件 12.8 使用接口的实际例子:fmt 链接器:将项目代码链接到可执行的二进制文件(机器代码) (相关的 C 编译器名称为 6c、8c 和 5c,相关的汇编器名称为 6a、8a 和 5a) 标记(Flags) 是指可以通过命令行设置可选参数来影响编译器或链接器的构建过程或得到一个特殊的目标结 果。 可用的编译器标记如下: 1. flags: 2. -I 针对包的目录搜索 3. -d 打印声明信息 4. -e 不限制错误打印的个数0 码力 | 466 页 | 4.44 MB | 1 年前3
3.云原生边云协同AI框架实践com/kubeedge/sedna 开源分布式协同AI框架KubeEdge-Sedna 1. GlobalCoordinator ⚫ 统一边云协同AI任务管理 ⚫ 跨边云协同管理与协同 ⚫ 中心配置管理 2. LocalController ⚫ 特性本地流程控制 ⚫ 本地通用管理: 模型, 数据集等 3. Worker ⚫ 执行训练或推理任务, 训练/推理程序, 基于现有AI框 架开 管理 联邦学习 管理 Local Controller Worker Worker Worker 边侧推理 Lib 边侧训练 Model Worker 云侧 推理 Lib 参数 聚合 云侧 训练 Model Global Manager AI任务协调 AI任务管理 模型/数据集管理 Cloud Node Messaging over KubeEdge 终身学习 开发者:导入边缘AI Lib库, 开发边云协同联邦学习程序。 ② 启动联邦学习任务,部署训练 程序到边缘 ③ 多任务检测,划分Non-IID样本集,与云端配合识别相似任务 ④ 本地训练,模型参数上传云端,云端运行跨边迁移+模型聚合算法。 Cloud EdgeNode 1 EdgeNode 2 Sedna Federated-Learning Service API model0 码力 | 37 页 | 2.36 MB | 1 年前3
03. Golang 在隐私计算平台建设中的实践 - 刘敬Hellman密钥交换思想,求双⽅方集合的交集,保护交集之外的数据 数据集 A = {a1, a2, …, an} 1.1随机⽣生成秘钥p,公共参数N 1.2加密数据集A的每个元素 fp(A) = {fp(a1), fp(a2), …, fp(an)} 秘钥K,公共参数N,加密函数 ,满⾜足交换律律 = = = fK(x) = xKmod N fpq(x) fq(fp(x)) fp(fq(x)) protocol instance:⼀一个instance对应对应具体的算法的⼀一中实现,包含算法的配置和所有元函 数的 集合 趣链科技版权所有©2016 – 2021 20 隐私计算算法框架-instance 声明算法实例例的配置 通⽤用流程的回调函数 按照隐私计算中的⻆角⾊色 配置元函数列列表 由于算法的⼀一部分逻辑是以独⽴立的函数存在 可以在框架中进⾏行行⽅方便便的复⽤用,并可以抽出 实现算法暴暴露露的调⽤用接⼝口 通过go的init函数 向框架注册算法 可注册多个算法的实 例例,具体执⾏行行时,会 选择所有参与⽅方都有 的且版本最⾼高的实例例 没有具体逻辑,只是做算 法结果的类型转换 根据配置的具体实现, 框架通过反射构建实例例 反射注⼊入继承的BaseManager字段 趣链科技版权所有©2016 – 2021 22 隐私计算算法框架-controller 通过反射扫描出元函数的⼊入参类型0 码力 | 37 页 | 6.20 MB | 1 年前3
1.3 七牛如何做HTTP服务测试 语法结构 • 基于命令行文法 command switch1 switch2 … arg1 arg2 … • 转义 – 如果参数包含空格或其他特殊字符,则可以: • 用 \ 转义 – 比如 '\ ' 表示 ' ' (空格),'\t' 表示 TAB 字符,等等 包含 – '...' 中不支持用 \ 转义,也不支持子命令,出现任何内容都当作普通字符 对待 语法结构 • 区别于Linux Shell的地方 – 参数类型不只是字符串,有完整类型系统(支持且仅支持所有 json的数据类型) • string (如:"a"、application/json),在不引起歧义的情况下,可以 省略双引号 测试环境 • 如何让 stage 和 product 环境共享测试案例? – 测试环境参数化 – 也方便测试脚本入库(不入库 User/Password、AK/SK 这种敏感 信息) host 指令 • 服务地址参数化 host foo.com 127.0.0.1:8888 get http://foo0 码力 | 27 页 | 422.11 KB | 1 年前3
Go在工程实践的错误处理哪一行代码 调用? 我的 参数问题? 对方的问题? ... 遇到一个问题,我们就追加一个日志字段,排查错误效率非常低 为什么调试慢?-- 错误信息 高亮信息 封装组件 充足信息 对端信息 请求方法 请求参数 响应数据 状态信息 耗时时间 执行行号 能够确定对端的唯一来源,例如对端的应用名称、对端的 配置、对端的IP。 对端请求的方法。 请求的参数信息,包括 header A服务出现了问题,可能是由其他B,C,F,G等服务引起的 错误尽早失败 串联信息 为什么定位慢?-- 分布式错误 TraceId 分布式信息 错误尽早失败 串联信息 A B C A B V1版本 V2版本 配置错了,C的连接地址 • b服务记录了错误日志,但仍然启动b服务,a服务用了新版本的b服务。 • b服务停止启动,并记录错误日志,a服务用了老版本的b服务。 怎么办? 这两种处理错误方式,你觉得哪种是对的?0 码力 | 30 页 | 3.11 MB | 1 年前3
微服务容灾治理) 的均值,所以CPU达到90%后约5秒会触发过载保护。 3.2系统容量计算 容量计算是第⼆个难点,怎么动态评估系统当前容量是算法的关键点之⼀。计算公式如下: 先解释⼀下各个参数的含义: • maxPass 是当前记录的所有窗⼝⾥⾯最⼤的成功处理的请求数,go-zero是100ms⼀个窗⼝, 记录了50个窗⼝,这⾥就是算过去50个窗⼝⾥最多成功处理请求的⼀个窗⼝⾥的请求数 统不被打到卡死。 但这⾥有个点需要注意,go-zero默认设置的过载保护触发的CPU阈值是90%,KubernetesHPA⾃ 动扩容默认CPU阈值是80%,当你在设置这两个参数的时候,不要让HPA的CPU阈值⼤于go-zero 的过载保护CPU阈值,否则可能会抑制HPA的⽣效。 当然整个系统并不是链路上所有服务和中间件都可以⾃动或及时扩容的,这⾥就牵出另⼀个稳定性能 界值周边来回启停,有利于⼤流量下的请求抑制 效果。 • 跟HPA的协同。⼀定要避免HPA的CPU扩容配置低于过载保护设置的阈值,否则过载保护会抑 制HPA的⽣效。但⼀般不太会发⽣,HPA默认值是80%,过载保护默认值是90%,不建议把HPA 的配置往上调。 go-zero的三类服务都已经默认集成了⾃适应过载保护: • Restfulservice •0 码力 | 13 页 | 1.68 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a第16章:结构体 第17章:值部 - 为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 ? 一书来了 解使用自定义泛型。 另外,在阐述值类型转换、值赋值和值比较规则时,自定义泛型中频繁使用的 类型参数类型被特意忽略掉了。 也就是说,本书不考虑自定义泛型中的情 形。 本书由老貘 ? 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是 本书和Go101.org网站不断增容和维护的动力。 赞赏 Go官方工具链 目前,Go官方工具链中提供的工具是使用得最广泛的Go开发工具。 《Go语言 101》所有中所有的实例代码都使用Go官方工具链中提供的标准编译器编译验 证过。 本文将介绍如何配置Go开发环境和如何使用Go官方工具链中提供的go命令。 一些非官方工具链中的工具也将简单提及。 安装Go官方工具链 请从国际官网 ? 或者国内官网 ? 下载Go官方工具链, 并按照下载页面中的说0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a第15章:指针 第16章:结构体 第17章:值部 - 为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 有什么其它值得一提吗? 本书不涵盖自定义泛型相关内容。 请阅读《Go自定义泛型101》 一书来了解 使用自定义泛型。 另外,在阐述值类型转换、值赋值和值比较规则时,自定义泛型中频繁使用的 类型参数类型被特意忽略掉了。 也就是说,本书不考虑自定义泛型中的情形。 本书由老貘 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本 书和Go101.org网站不断增容和维护的动力。 (请搜索关注微信公众号“Go 取本书最新版) Go官方工具链 目前,Go官方工具链中提供的工具是使用得最广泛的Go开发工具。 《Go语言 101》所有中所有的实例代码都使用Go官方工具链中提供的标准编译器编译验 证过。 本文将介绍如何配置Go开发环境和如何使用Go官方工具链中提供的go命令。 一些非官方工具链中的工具也将简单提及。 安装Go官方工具链 请从国际官网 或者国内官网 下载Go官方工具链, 并按照下载页面中的说明 安装Go官方工具链。0 码力 | 608 页 | 1.08 MB | 1 年前3
共 57 条
- 1
- 2
- 3
- 4
- 5
- 6













