Go 入门指南(The way to Go)
复用技术的自动化。 这个特性显然是 Go 语言最强有力的部分,不仅支持了日益重要的多核与多处理器计算机,也弥补了现存编程语言在 这方面所存在的不足。 Go 语言中另一个非常重要的特性就是它的构建速度(编译和链接到机器代码的速度),一般情况下构建一个程序的时 间只需要数百毫秒到几秒。作为大量使用 C++ 来构建基础设施的谷歌来说,无疑从根本上摆脱了 C++ 在构建速度 上非常不理想的噩梦。这不仅极大地提 C 语言或者 Fortran 更加快,使得编译这一环节不再成为在软件开发中困扰开发人 员的问题。在这之前,动态语言将快速编译作为自身的一大亮点,像 C++ 那样的静态语言一般都有非常漫长的编译 和链接工作。而同样作为静态语言的 Go 语言,通过自身优良的构建机制,成功地去除了这个弊端,使得程序的构建 过程变得微不足道,拥有了像脚本语言和动态语言那样的高效开发的能力。 另外,Go 语言在执行速度方面也可以与 语言通过另一种途径实现面向对象设计(第 10-11 章)来放弃类和类型的继承 尽管在接口的使用方面(第 11 章)可以实现类似变体类型的功能,但本身不支持变体类型 不支持动态加载代码 不支持动态链接库 不支持泛型 通过 recover 和 panic 来替代异常机制(第 13.2-3 节) 不支持断言 不支持静态变量 关于 Go 语言开发团队对于这些方面的讨论,你可以通过 Go0 码力 | 466 页 | 4.44 MB | 1 年前3Go 入门指南(The way to Go)
在线程基础上多路复用技术的自动化。 这个特性显然是 Go 语言最强有力的部分,不仅支持了日益重要的多核与多处理器计算机,也弥补了现存 编程语言在这方面所存在的不足。 Go 语言中另一个非常重要的特性就是它的构建速度(编译和链接到机器代码的速度),一般情况下构建 一个程序的时间只需要数百毫秒到几秒。作为大量使用 C++ 来构建基础设施的谷歌来说,无疑从根本上 摆脱了 C++ 在构建速度上非常不理想的噩梦。这不仅极大地提升了开发者的生产力,同时也使得软件开 C 语言或者 Fortran 更加快,使得编译这一环节不再成为在软件 开发中困扰开发人员的问题。在这之前,动态语言将快速编译作为自身的一大亮点,像 C++ 那样的静态 语言一般都有非常漫长的编译和链接工作。而同样作为静态语言的 Go 语言,通过自身优良的构建机制, Go入门指南 - 8 - 本文档使用 看云 构建 成功地了去除了这个弊端,使得程序的构建过程变得微不足道,拥有了像脚本语言和动态语言那样的高效 语言通过另一种途径实现面向对象设计(第 10-11 章)来放弃类和类型的继承 尽管在接口的使用方面(第 11 章)可以实现类似变体类型的功能,但本身不支持变体类型 不支持动态加载代码 不支持动态链接库 不支持泛型 通过 recover 和 panic 来替代异常机制(第 13.2-3 节) 不支持断言 不支持静态变量 关于 Go 语言开发团队对于这些方面的讨论,你可以通过 Go 常见问题0 码力 | 380 页 | 2.97 MB | 1 年前3如何使用 docker 部署一个 beego 项目
链滴 如何使用 docker 部署一个 beego 项目 作者:xhaoxiong 原文链接:https://ld246.com/article/1526210600840 来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)理解 Docker
Docker 帮助你为应用程序创建一个单独的可部 class="highlight-cl"> # Set the entry po 原文链接:如何使用 docker 部署一个 beego 项目 nt of the container to the bee command that runs the 注意 image 的确切名字和编号可能不同,但是,你应该至少看到列表中有
原文链接:如何使用 docker 部署一个 beego 项目golang 和
test-image
image如果发现在尝试过程中
build
了多余的无效的镜像,可以尝试使用0 码力 | 5 页 | 269.19 KB | 1 年前35.cgo 原理解析及优化实践
编译器 链接器通过符号寻址 cgo 预编译 - C 调用 Go cgo 预编译 - C 调用 Go ① 普通 C 代码 ② Wrapper C 代码 通过 crosscall2 调用 Wrapper Go ③ Wrapper Go 代码 调用目标 Go 函数 cgo_export_static/dynamic 申明导出 Go 函数 方便后续链接器寻址 cgo cgocall 调用 Wrapper C ③ Wrapper C 代码 调用目标 C 函数 cgo_import_static 申明导入 C 函数 方便后续链接器寻址 常规编译 三种源码,分别编译,最终链接为一个可执行文件 asm 可以手写,C 不可以 go build -v -x -work cgo 调度机制 第三部分 GMP 调度模型 来源:https://learnku0 码力 | 45 页 | 5.74 MB | 1 年前3Go Web编程
3/目录下。在正文中按 需要添加代码。 格式规范 格式规范 正文 正文 请参看已有章节的规范,要注意的是,每个章节在底部都需要有一个links节,包含“目录”,“上一节”和“下一 节”的链接。 代码 代码 代码要go fmt后提交。注释文件注明其所属章节。 如何编译 如何编译 build.go依赖markdown的一个解析包,所以第一步先 go get github 态文件有专门的处理方式)。 这个就是浏览器的一个功能,第一次请求url,服务器端返回的是html页面,然后浏览器开始渲染HTML:当解析到 HTML DOM里面的图片连接,css脚本和js脚本的链接,浏览器就会自动发起一个请求静态资源的HTTP请求,获取相对 应的静态资源,然后浏览器就会渲染出来,最终将所有资源整合、渲染,完整展现在我们面前的屏幕上。 网页优化方面有一项措施是减少HTTP请 log.Fatal("ListenAndServe: ", err) } } 上面这个代码,我们build之后,然后执行web.exe,这个时候其实已经在9090端口监听http链接请求了。 在浏览器输入http://localhost:9090 可以看到浏览器页面输出了Hello astaxie! 可以换一个地址试试:http://localhost:9090/?0 码力 | 295 页 | 5.91 MB | 1 年前32.1.3 如何用Go模拟CPU
计算机的演化历史 – 硬件计算到冯诺伊曼架构 • 构建虚拟世界 – MOS 6502 • 控制单元(control unit) • 运算逻辑单元(arithmetic logic unit) • 6502汇编器与链接器 • 未来目标 1970年程序员 CPU 80KHz 单核 内存 64KB 手编磁芯 老娘把你送上月球 2021年程序员 CPU 2,400,000KHz 4核 内存 8,000,000KB Parser(可以参加比赛) • 解析语句 • 几乎不用的就直接不实现 • 大概2000行左右就输出obj(json) • 实现链接器 • 最头疼的是指令地址确定 • 想debug方便还得 • 实现objdump (检查指令和地址) • 实现nm(named map,检查链接) Go 编写汇编器等工具 Go 编写汇编器 未来计划 • 让Go能跑在6502上(10%) • 已经能输出部分语句0 码力 | 42 页 | 7.10 MB | 1 年前32.2.3 Go语言的抢占式调度
06 Go 程序的启动 第⼀部分 编译过程 Go 程序 hello.go 的编译过程: ⽂本 -> 编译 -> ⼆进制可执⾏⽂件 编译过程 编译:⽂本代码 -> ⽬标⽂件(.o,.a) 链接:将⽬标⽂件合并为可执⾏⽂件 使⽤ go build -x 可以观察这个过程 可以⼿动分步骤执⾏: 1. go tool compile hello.go 2. go tool link hello0 码力 | 44 页 | 7.43 MB | 1 年前3IPC性能极致优化方案-RPAL落地实践
必要不通知事件。 2. 数据序列化/反序列化 需要做到跨进程的虚拟地址空间共享,通过传递指针来传递一切数据。 全进程地址空间共享与保护 第二部分 全进程地址空间共享与保护 模拟插件/动态链接库等方案的用户态上下文切换和虚拟地址访问,需要解决: 1. 虚拟地址冲突问题; 2. 页表隔离问题; 3. 内存安全性问题; 全进程地址空间共享与保护 地址空间气泡方案 全进程地址空间共享与保护0 码力 | 39 页 | 2.98 MB | 1 年前3Go在工程实践的错误处理
有错误码找不到代码对应地方 • 有错误码不知道是哪个版本的代码 • 错误码在代码里还有没有使用,错误码越变越多, • 错误码腐化,没用的错误码应该随版本下线 • 错误码的 SOP,国际化问题 相关链接 各种组件实现调试和高亮信息 https://github.com/gotomicro/ego https://github.com/ego-component 快速定位错误 https://mp0 码力 | 30 页 | 3.11 MB | 1 年前3基于 mesos 的容器调度框架
http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 8/36 订阅 通过 SUBSCRIBE 消息, 开启一个长链接来订阅事件 (Event), 常用事件类型: 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone0 码力 | 36 页 | 2.49 MB | 1 年前3
共 23 条
- 1
- 2
- 3