Go Web编程个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感 觉起来比典型的面向对象语言更轻量级。 Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。 按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go是一 GOROOT=$HOME/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN 看到如下图片即说明你已经安装成功 7 图1.1 源码安装之后执行Go命令的图 如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境 变中是否包含了Go的安装目录。 Go标准包安装 Go标准包安装 linux-amd64.tar.gz -C $GO_INSTALL_DIR。 设置PATH,export PATH=$PATH:$GO_INSTALL_DIR/go/bin 然后执行go 9 图1.2 Linux系统下安装成功之后执行go显示的信息 如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境 变中是否包含了go的安装目录。0 码力 | 295 页 | 5.91 MB | 1 年前3
2.1.1 Golang主动式内存缓存的优化探索之路MemoryTile序列化性能提升超2倍 MemoryTile反序列化性能提升近10倍 基于MemoryTile的映射,特殊场景反序列化性能提升近600倍 主动式内存缓存框架 第三部分 技术全景图 01. 主动式内存缓存架构的技术全景图 数据中心、数据源 02. 分布式部署,解决海量数据的传输、加载 数据全量加载时,缓解数据库压力 链路优化 优化 协议 编码 空值剔除 数据存储、数据传输 带宽减少40% 工程化的通用数据管理器,提供正排、倒排等丰富的查询模式 数据存储 倒排更新过程 冷热数据交换后,DataManager中 部分数据可能交换到远端存储 本地没有数据实体,数据发生更新, 只知道变更后的新数据 根据新的数据可以构建出新的倒排关 系,旧的倒排关系应该如何正确的被 删除? 倒排更新过程 map[id][]Bitmap slice底层有指针 存储减少40% 再次减少20% 倒排更新过程Ex0 码力 | 48 页 | 6.06 MB | 1 年前3
Go 入门指南(The way to Go)语言简洁到可以将它整个的装入你的大脑中,而且比学习 Scala(Java 的并发语言)有更低的门槛,真可谓是 21 世纪的 C 语言! 作为一门系统编程语言,你不应该为 Go 语言的大多数代码示例和练习都和控制台有着密不可分的关系而感到惊奇, 因为提供平台依赖性的 GUI(用户界面)框架并不是一个简单的任务。有许多由第三方发起的 GUI 框架项目正在如 火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI Thompson 就开始研发一款以 C 语言为目标结果的编译器来拓展 Go 语言的设计思想。 这是一个由计算机领域 “发明之父” 所组成的黄金团队,他们对系统编程语言,操作系统和并行都有着非常深刻的见 解 图 1.1 Go 语言设计者:Griesemer、Thompson 和 Pike 在 2008 年年中,Go 语言的设计工作接近尾声,一些员工开始以全职工作状态投入到这个项目的编译器和运行实现 上。Ian com/golang/go,Go 项目 Bug 追踪和功能预期详见 github.com/golang/go/issues。 Go 通过以下的 Logo 来展示它的速度,并以囊地鼠(Gopher)作为它的吉祥物。 图1.2 Go 语言 Logo 谷歌邮件列表 golang-nuts 非常活跃,每天的讨论和问题解答数以百计。 关于 Go 语言在 Google App Engine 的应用,这里有一个单独的邮件列表0 码力 | 466 页 | 4.44 MB | 1 年前3
Go 入门指南(The way to Go)语言简洁到可以将它整个的装入你的大脑中,而且比 学习 Scala(Java 的并发语言)有更低的门槛,真可谓是 21 世纪的 C 语言! 作为一门系统编程语言,你不应该为 Go 语言的大多数代码示例和练习都和控制台有着密不可分的关系而 感到惊奇,因为提供平台依赖性的 GUI(用户界面)框架并不是一个简单的任务。有许多由第三方发起的 GUI 框架项目正在如火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 就开始研发一款以 C 语言为目标结果的编 译器来拓展 Go 语言的设计思想。 这是一个由计算机领域 “发明之父” 所组成的黄金团队,他们对系统编程语言,操作系统和并行都有着非 常深刻的见解 图 1.1 Go 语言设计者:Griesemer、Thompson 和 Pike Go入门指南 - 4 - 本文档使用 看云 构建 在 2008 年年中,Go 语言的设计工作接近尾声,一些员工开始以全职工作状态投入到这个项目的编译器 github.com/golang/go/issues。 Go 通过以下的 Logo 来展示它的速度,并以囊地鼠(Gopher)作为它的吉祥物。 Go入门指南 - 5 - 本文档使用 看云 构建 图1.2 Go 语言 Logo 谷歌邮件列表 golang-nuts 非常活跃,每天的讨论和问题解答数以百计。 关于 Go 语言在 Google App Engine 的应用,这里有一个单独的邮件列表0 码力 | 380 页 | 2.97 MB | 1 年前3
GoFrame框架介绍及设计中,如果分散在多个模块中,那么开发、提交、部署的成 本都会上升。 CRP 共同复用原则 (Common Reuse Principle) 不要强迫一个模块依赖它不需要的东西。 模块复用原则竞争关系张力图 模块化设计-单仓包设计 痛点: • 实现相同功能逻辑的模块百花齐放,选择成本过高 • 项目依赖的模块过多,项目整体的稳定性会受到影响 • 项目依赖的模块过多,无从下手是否应当升级模块版本 个模块版本的升级 • 减轻心智负担,提高模块可维护性,更容易保证各业务项目的模块版本一致性 改进: 模块化设计-常见问题 1. 模块低耦设计:文件层面的源文件下载与模块之间的逻辑耦合没有直接关系 2. 框架核心精简:功能强大且代码精简,包含测试与示例代码共8MB容量 3. 编译语言特性:编译型语言和解释型语言的模块管理逻辑不太一样 虽然框架每一个模块都按照低耦合设计,模块可以选择性引 业务逻辑层 - BLL 对具体问题进行逻辑判断与执行操作。 数据访问层 - DAL 实现数据的增删改查等操作,并将操作结果反馈到业务逻辑层 BLL。 模型定义层 - Model 也常用Entity实体对象来表示,主要用于数据库表的映射对象。 代码分层设计-项目代码结构 对象封装设计 第五部分 • 包与对象封装 • 资源明明规范 • 对象封装示例 • 对象访问安全 对象封装设计-包与对象封装0 码力 | 37 页 | 8.84 MB | 1 年前3
2.1.7 谈如何构建易于拆分的单体应用⼩项 ⽬ ➢ 选择基础设施相对完善的云平台和合适的业务框架 03 突破 建模:通过表象看本质 第⼆部分 建模:通过表象看本质 ➢ 软件开发过程:描述软件开发全过程、软件开发活动以及他们之间关系的结构框架。 。。。 常⻅的软件开发模型 RUP开发模型 业务建模 01 软件开发过程 建模:通过表象看本质 ➢ 建模:对现实世界特征的模拟和抽象,⽐如机械模型,汽⻋模型等。 02 ➢ 常⻅的问题 1. 晦涩难懂的概念,有时为了说明⼀些概念引⼊⼀些新的概念(领域服务/领域对象/领域 模型/值对象/聚合根/实体/⽤例等); 2. ⽅法这么多,到底谁更值得信赖; 3. 案例过于陈旧,如银⾏系统,电⼒系统等,⾥⾯阐述的⽅法和步骤到较难运⽤到互联⽹ 的业务中; 忘掉⼀些晦涩难懂的概念和复杂的步骤,从⽣活的视⻆出发,来思考我们的业务模型 愿望——到底想要什么! ➢ 构成:参与者 + ⽬标 + 边界 误区:建模初期陷⼊功能/系统⽤例的分析,导致⽤例粒 度过细,难以抓住核⼼诉求! 建模:通过表象看本质 07 业务实体—物 ➢ 业务实体:代表参与者执⾏⼀个或多个⽤例时所使⽤的“事物”。⽽这个“事物”才正是我们所需要分析的核⼼概念。 ➢ 难点:理不清软件世界中需要的“事物”怎么办? ➢ 解法:联系⽣活中的类似场景进⾏推0 码力 | 27 页 | 13.04 MB | 1 年前3
2.2.3 Go语言的抢占式调度M:machine,系统线程,执⾏实体,想要在 CPU 上执⾏代码,必须有线 程,与 C 语⾔中的线程相同,通过系统调⽤ clone 来创建。 P:processor,虚拟处理器,M 必须获得 P 才能执⾏代码,否则必须陷⼊休 眠(后台监控线程除外),你也可以将其理解为⼀种 token,有这个 token,才 有在物理 CPU 核⼼上执⾏的权⼒。 G、P、M 的全局⼤图 调度循环的实现 第三部分0 码力 | 44 页 | 7.43 MB | 1 年前3
Hello 算法 1.1.0 Go版艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 羽毛球筒则如同“队列”,一端放入、另一端取出;字典就像一个“哈希表”,能够快速查找目标词条。 . . . . . . . . . . . . . . . . . 187 第 9 章 图 189 9.1 图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.0.0 Golang版. . . . . . . . . . . . . . . . . 187 第 9 章 图 189 9.1 图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 9.2 图的基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 9.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 章 前言 hello‑algo.com 3 图 0‑1 本书主要内容 0.1.3 致谢 本书在开源社区众多贡献者的共同0 码力 | 382 页 | 17.60 MB | 1 年前3
Hello 算法 1.0.0b5 Golang版. . . . . . . . . . . . . . . . . 181 第 9 章 图 183 9.1 图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.2 图基础操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.3 图的遍历 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 9.4 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。 第 0 章 前言 hello‑algo.com 3 图 0‑1 Hello 算法内容结构 0.1.3 致谢 在本书的创作过程中,我得到了许多人的帮助,包括但不限于:0 码力 | 379 页 | 30.70 MB | 1 年前3
共 47 条
- 1
- 2
- 3
- 4
- 5













