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 年前3Go 入门指南(The way to Go)
用更少的代码,更短的编译时间,创建运行更快的程序,享受更多 的乐趣 对于学习 Go 编程语言的爱好者来说,这本书无疑是最适合你的一本书籍,这里包含了当前最全面的学习 资源。本书通过对官方的在线文档、名人博客、书籍、相关文章以及演讲的资料收集和整理,并结合我自 身在软件工程、编程语言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类 来进行讲解。 随着软件规模的不断扩 行比较(书中会使用大家所熟知的缩写 “OO” 来表示面向对象)。 本书将会从最基础的概念讲起,同时也会讨论一些类似在应用 goroutine 和 channel 时有多少种不同的模 Go入门指南 - 1 - 本文档使用 看云 构建 式,如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来 开发 Web 应用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 代码示例,以避免你在不了 解某些高级概念的情况下而感到迷茫。 我们通过 227 个完整的代码示例和书中的解释说明来对所有涉及到的概念和技巧进行彻底的讲解,你可以 Go入门指南 - 2 - 本文档使用 看云 构建 下载这些代码到你的电脑上运行,从而加深对概念的理解。 本书会尽可能地将前后章节的内容联系起来,当然这也同时要求你通过学习不同的知识来对一个问题提出 尽可能多的解决方案。记住,0 码力 | 380 页 | 2.97 MB | 1 年前3Go 入门指南(The way to Go)
6 生成代码文档 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 指针 - 2 - 本文档使用 书栈(BookStack 类型的切片 8.5 map 的排序 8.6 将 map 的键值对调 第9章:包(package) 9.1 标准库概述 9.2 regexp 包 9.3 锁和 sync 包 - 3 - 本文档使用 书栈(BookStack.CN) 构建 9.4 精密计算和 big 包 9.5 自定义包和可见性 9.6 为自定义包使用 godoc 9.7 使用 go install 安装自定义包 结构体、集合和高阶函数 第12章:读写数据 12.1 读取用户的输入 12.2 文件读写 12.3 文件拷贝 12.4 从命令行读取参数 12.5 用 buffer 读取文件 - 4 - 本文档使用 书栈(BookStack.CN) 构建 12.6 用切片读写文件 12.7 用 defer 关闭文件 12.8 使用接口的实际例子:fmt.Fprintf 12.9 格式化 JSON 数据0 码力 | 466 页 | 4.44 MB | 1 年前3Go在工程实践的错误处理
Golang在工程实践中的错误处理 彭友顺 石墨文档 产研负责人 目 录 为什么我们处理错误会这么慢 01 如何完善错误信息 02 优雅处理错误信息 03 分布式错误处理 04 错误信息手册的必要性 05 为什么我们处理错误 会这么慢 第一部分 错误信息不够完善 why 原因 出现 错误 定位 慢 恢复 慢 效率低 为什么我们处理错误会这么慢 错误处理不够优雅 为什么调试慢?-- 错误信息 高亮信息 封装组件 充足信息 对端信息 请求方法 请求参数 响应数据 状态信息 耗时时间 执行行号 能够确定对端的唯一来源,例如对端的应用名称、对端的 配置、对端的IP。 对端请求的方法。 请求的参数信息,包括 header 里的 metadata 响应的数据,包括 header 里的 metadata 错误码和错误信息 请求到响应的耗时时间 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 年前3Golang 101(Go语言101 中文版) v1.21.a
我感觉我仍然是一 个Go新手程序员。 我放弃了写那本书。 放弃?《Go语言101》现在不是已经完成了 吗? 那本曾经计划要写的书不是《Go语言101》。 放弃那本书的写作计划后,我通 过阅读很多官方Go文档和网络中的各种Go文章、关注Go官方项目的问题跟踪 列表和一些Go论坛、查看一些代码等途径, 逐渐地,我几乎消除了我所有关 于Go编程细节中的困惑。 我大概花了大约一年时间来消除这些困惑。 在这个时期,每当我消除了某个 Go官方工具链 目前,Go官方工具链中提供的工具是使用得最广泛的Go开发工具。 《Go语言 101》所有中所有的实例代码都使用Go官方工具链中提供的标准编译器编译验 证过。 本文将介绍如何配置Go开发环境和如何使用Go官方工具链中提供的go命令。 一些非官方工具链中的工具也将简单提及。 安装Go官方工具链 请从国际官网 ? 或者国内官网 ? 下载Go官方工具链, 并按照下载页面中的说 x版本支持从1.0到1.21的所有Go语言版本。 为了从任意目录运行Go官方工具链中工具命令(通过go命令), Go官方工具 链安装目录下的bin子目录路径必须配置在PATH环境变量中。 当使用安装程序 安装Go官方工具链时,安装程序很可能已经自动地将此配置好了。 Go官方工具链近来的版本均支持一个称为Go模块(Go modules)的特性,用 来管理项目依赖。 此特性在版本1.11中被试验性地引入并从版本10 码力 | 821 页 | 956.82 KB | 1 年前3Golang 101(Go语言101 中文版) v1.21.a
我感觉我仍然是一个 Go新手程序员。 我放弃了写那本书。 放弃?《Go语言101》现在不是已经完成了吗? 那本曾经计划要写的书不是《Go语言101》。 放弃那本书的写作计划后,我通 过阅读很多官方Go文档和网络中的各种Go文章、关注Go官方项目的问题跟踪 列表和一些Go论坛、查看一些代码等途径, 逐渐地,我几乎消除了我所有关于 Go编程细节中的困惑。 我大概花了大约一年时间来消除这些困惑。 在这个时期,每当我消除了某个主 取本书最新版) Go官方工具链 目前,Go官方工具链中提供的工具是使用得最广泛的Go开发工具。 《Go语言 101》所有中所有的实例代码都使用Go官方工具链中提供的标准编译器编译验 证过。 本文将介绍如何配置Go开发环境和如何使用Go官方工具链中提供的go命令。 一些非官方工具链中的工具也将简单提及。 安装Go官方工具链 请从国际官网 或者国内官网 下载Go官方工具链, 并按照下载页面中的说明 安装Go官方工具链。 x版本支持从1.0到1.21的所有Go语言版本。 为了从任意目录运行Go官方工具链中工具命令(通过go命令), Go官方工具 链安装目录下的bin子目录路径必须配置在PATH环境变量中。 当使用安装程序 安装Go官方工具链时,安装程序很可能已经自动地将此配置好了。 Go官方工具链近来的版本均支持一个称为Go模块(Go modules)的特性,用来 管理项目依赖。 此特性在版本1.11中被试验性地引入并从版本10 码力 | 608 页 | 1.08 MB | 1 年前3Golang 101(Go语言101 中文版) v1.21.a
我感觉我仍然是一个Go新手程序员。 我放弃了写那本书。 放弃?《Go语言101》现在不是已经完成了吗? 那本曾经计划要写的书不是《Go语言101》。 放弃那本书的写作计划后,我通过阅 读很多官方Go文档和网络中的各种Go文章、关注Go官方项目的问题跟踪列表和一些 Go论坛、查看一些代码等途径, 逐渐地,我几乎消除了我所有关于Go编程细节中的 困惑。 我大概花了大约一年时间来消除这些困惑。 在这个时期,每当我消除了某个主题的 Go官方工具链 目前,Go官方工具链中提供的工具是使用得最广泛的Go开发工具。 《Go语言101》 所有中所有的实例代码都使用Go官方工具链中提供的标准编译器编译验证过。 本文将介绍如何配置Go开发环境和如何使用Go官方工具链中提供的go命令。 一些 非官方工具链中的工具也将简单提及。 安装Go官方工具链 请从国际官网(https://golang.org/doc/install)或者国内官网 x版本支持从1.0到1.21的所有Go语言版本。 为了从任意目录运行Go官方工具链中工具命令(通过go命令), Go官方工具链安 装目录下的bin子目录路径必须配置在PATH环境变量中。 当使用安装程序安装Go 官方工具链时,安装程序很可能已经自动地将此配置好了。 Go官方工具链近来的版本均支持一个称为Go模块(Go modules)的特性,用来管理 项目依赖。 此特性在版本1.11中被试验性地引入并从版本10 码力 | 591 页 | 21.40 MB | 1 年前32.游戏战中陪伴助手微服务架构设计与应用
吃鸡率的帮助有多大 推荐系统接入——系统架构 推荐系统: 向量化 方案探索——资源点推荐 针对具体场景开发 - 专利:《一种在游戏中离线挖掘、实时推荐资源点的方案》 - 大数据挖掘资源出现位置 - 左:配置文件 - 右:大数据挖掘 - 不足: - 太 bug 了,限制使用 方案探索——聚类统计 模仿大多数玩家的选择 - 实现方法: - 为玩家生成 [0, 1] 特征向量 - 聚类统计,存入 天 常驻人力 运营 1、开发 1、项目管理 0.5 运营 1 后台技术栈 Lua Go 代码理解成本 >10000 行代码 + 1500 行注释 135 行代码 + 82 行注释 + 开发模式文档 交接周期 未知(未交接过) 1 天(几位开发参与过) 持续测试 无 有 性能和成本优化 第四部分 贵 - 部署:腾讯云 TKE(Tencent Kubernetes Engine);微服务 缓存功能下沉 - 由重排层也不是业务层存储缓存 - 破坏推荐系统架构,降低复用性 - 裁剪对局历史 - 最多缓存 10 分钟的对局历史 - 不是根本解决方法 - 微服务单体化 - 腾讯文档团队《回归单体成为潮流?腾讯文档如何实现灵活架构切换》 - 更进一步优化:网络 RPC 改为函数调用,同时保留微服务架构 微服务——上线前压测 贵 微服务——火焰图 - 以实验层火焰图为例,业务逻辑仅占 CPU0 码力 | 47 页 | 11.10 MB | 1 年前3对 Go 程序进行可靠的性能测试
编写测试用例 3. 自动化性能测试用例 4. 执行性能测试用例 5. 分析性能测试结果 6. 性能调优 7. 性能基准测试(Performance Benchmarking) 8. 向客户推荐合适的配置 可靠的测试环境 2020 © Changkun Ou · Go 夜读 · 对 Go 程序进行可靠的性能测试 什么是可靠的性能基准测试环境 5 影响测试环境的软硬件因素 ● 硬件:CPU 这是一个未解决的 Issue,目的是希望 Go 团队能够在 testing 包中使用文档来说明编译器优化的情况,进而避免基准测试测量不准 确的问题 ● https://github.com/golang/go/issues/23471 ○ 这是一个未解决的 Issue,目的是希望 Go 团队能够发布一篇官方文档来详述如何科学的对 Go 程序进行性能测试 ○ 当然,本次分享的 PPT 其实解决了这个问题0 码力 | 37 页 | 1.23 MB | 1 年前3Hello 算法 1.1.0 Go版
感谢校铨在知识产权方面提供的专业帮助,这对本开源书的完善起到了重要作用; ‧ 感谢苏潼为本书设计了精美的封面和 logo ,并在我的强迫症的驱使下多次耐心修改; ‧ 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能。比如在某台计算机中,算法 A 的运行 时间比算法 B 短;但在另一台配置不同的计算机中,可能得到相反的测试结果。这意味着我们需要在各种机 器上进行测试,统计平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费资源。 者的优劣并根据情境选择合适的方 法至关重要。 2.3 时间复杂度 运行时间可以直观且准确地反映算法的效率。如果我们想准确预估一段代码的运行时间,应该如何操作呢? 1. 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 2. 评估各种计算操作所需的运行时间,例如加法操作 + 需要 1 ns ,乘法操作 * 需要 10 ns ,打印操作 print() 需要0 码力 | 383 页 | 18.48 MB | 1 年前3
共 53 条
- 1
- 2
- 3
- 4
- 5
- 6