01
let's GoLang(二): 面向对象
这是GoLang系列文章的第二篇:面向对象。上一篇是Let's GoLang(一): 反射。
严格来说,说到面向对象,那么一定会谈到Java,Go并没有Java中那种面向对象的概念,但是跟JS基于原型的面向对象一样,可以通过组合Go的一些特性来实现面向对象的功能。 说到面向对象,那么一定少不了继承、封装、多态。
原文链接:
https://zhuanlan.zhihu.com/p/55255987
原文二维码:
02
Go语言-打包静态文件
对于Go 语言开发者来说,在享受语言便利性的同时,最终编译的单一可执行文件也是我们所热衷的。
但是,Go在编译成二进制文件时并没有把我们的静态资源文件编译进去,如果我们开发的是web应用的话就需要想办法把我们的静态文件也编译进去。
本文收集了一些Go语言中用来在编译过程中将静态文件打包到编译文件的方法。
go-bindata
在Go 语言的 Awesome 中你可以看到很多静态打包库,但是,你却看不到 go-bindata,go-bindata 明显更受欢迎,更流行。
go-bindata 很简单,设计理念也不难理解。它的任务就是讲静态文件封装在一个 Go 语言的 Source Code 里面,然后提供一个统一的接口,你通过这个接口传入文件路径,它将给你返回对应路径的文件数据。这也就是说它不在乎你的文件是字符型的文件还是字节型的,你自己处理,它只管包装。
简单来说就是它可以把我们的静态文件生成.go文件,这样就可以编译成二进制文件,项目启动的时候再把这个.go文件再释放成静态文件。
原文链接:
https://c.isme.pub/2019/01/10/go-static/
原文二维码:
03
Go:指针能优化性能吗?【译】
过去几周时间,我回答了许多关于使用指针优化性能的问题。似乎很多人在这方面都感到困惑。这也可以理解,指针确实是个复杂的话题。 希望这篇文章对你有所帮助。
简而言之:不是使用指针就一定代表着性能优化。如果要彻底解释这篇文章涉及的所有细节,那篇幅可能会长到没人愿意看。所以,我精简了一下,试图用中等篇幅也能涵盖想说明的高级概念。
阅读时需要说明一点:本文讨论的是微优化,性能优化都是极其细微的。在进行微优化之前,需先进行基准测试,否则很可能看不到明显的效果。代码易读性才是第一要义。
原文链接:
https://segmentfault.com/a/1190000017969820
原文二维码:
04
理解 Golang 中函数调用的原理
函数是 Go 语言中的一等公民,理解和掌握函数的调用过程是深入学习 Golang 时无法跳过的步骤,这里会介绍 Go 语言中函数调用的过程和实现原理并与 C 语言中函数执行的过程进行对比,同时对参数传递的原理进行剖析,让读者能够清楚地知道 Go 在函数的执行过程中究竟都做了哪些工作。本文将从函数的调用惯例和参数的传递方法两个方面分别介绍函数的执行过程,同时在这里会默认阅读这篇文章的读者已经掌握了 栈、寄存器 等概念,文章并不会就这两部分内容展开进行介绍。
原文链接:
https://draveness.me/golang-funciton-call
原文二维码:
05
经济学人使用Golang构建微服务历程回顾
关键点:
经济学人内容分发系统需要更大的灵活性,将内容传递给日益多样化的数字渠道。为了实现这一灵活性目标并保持高水平的性能和可靠性,平台从一个单体结构过渡到微服务体系结构。
用Go编写的服务是新系统的一个关键组件,它使得团队能够交付可伸缩的、高性能的服务并快速迭代新产品。
Go的并发性和对API的支持以及它作为静态编译语言的设计,使得分布式事件系统能够大规模执行。与此同时,Go对于测试的支持也非常出色。
总的来说,团队在Go上的使用经验是积极的,这也是内容平台得以扩展的关键因素之一。
原文链接:
http://www.cnblogs.com/davidwang456/p/10305382.html
原文二维码:
职位推荐:
【北京】读我网络技术有限公司(伴鱼)招聘Golang语言工程师
【苏州】工业互联网招聘golang/nodejs开发工程师
【上海】爱库存招聘Go/Java工程师
招聘详情地址:https://gocn.vip/explore/category-8
探探 Gopher China 2019大会全面启动 Gopher China 2019 早鸟票开售进入倒计时〜,点击下方“阅读原文”即可报名!