- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Golang之美讲义
Golang之美 —蔡欣圻、邵聪聪 2016-09 目录 Golang的哲学 Golang之美 Golang vs Java 风靡世界?! 我们的先行实践 Golang的哲学 1、go背景介绍: go语言是google 2009年发布的第二版开源编程语言,针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 2、go是面向接口、组合编程; 3、正交性:语言设计的正交性,保证语言的稳定性和简单,go很好的遵循正交规律,如:goroutine接口、组合等; 4、少即是多:有且仅有一种方法把事情做好做对,保持简单行的方法是go语言特性紧提供一种方法,减少重复、冗余,把事情做到极致是go的原则; 5、并发语言层面支持:并发更好利用多核没有更强的表现力来模拟真实世界; 6、开放性:开源,语言的实现对程序员不是个黑盒子,任何想了解语言实现都可以参与。 7、强大的作者阵容:C语言之父、Unix系统之父、Utf8和javascript V8之父等等 Golang之美 一、 可直接编译成机器码,不依赖其他库,部署就是扔一个文件上去就完成了 二、 编译器和标准库、三方库都是Go语言实现,完全实现了语言上的自举,任何人都可以轻松根据自己的需求修改源代码,再也不用担心去阅读或者修改C或者C++实现的源码了 三、 静态类型语言,静态类型的语言就是可以在编译的时候检查出来隐藏的绝大多数问题 四、语言层面支持并发,这个就是Go最大的特色,天生的支持并发。天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生基因的美丽呢?Go就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。 五、内置runtime、GC,从1.5开始GC已经逐渐趋于完美,下个版本1.8可以控制在海量存储对象的场景下,保证1ms内的gc耗时 六、简单易学,Go语言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go关键字是25个,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、多态、接口等。 七、丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大,是目前标准库最强大的语言之一,基本上平时使用的所有功能都可以在标准库中觅得身影。 八、完善的第三方生态环境,你所需要的所有功能都可以在第三方库中找到,而且go的三方库开发非常活跃,这个通过github的统计数据就可以得知,具体的三方库部分列表可以通过awesome-go去查看 九、跨平台编译 可以在任何一个平台编译其它所有系统和平台的发布版本,例如在mac上编译windows、linux、plan9、fuchsia,编译平台包括i386、amd64、arm等等,所以go在物联网和嵌入式领域特别有优势,编译出来的不仅体积小,而且无需安装任何依赖就可以在嵌入式系统中运行 十、内嵌C、C++支持,前面说了作者是C的作者,所以Go里面也可以直接包含c代码,利用现有的丰富的C库,不过其实我们并不提倡这么做,因为Go语言已经足够快,也许只有在数据库底层存储这种场景需要调用C、C++函数去完成一些任务了。 十一、内置强大的工具 Go语言里面内置了很多标准工具链,包括了代码格式化和风格提示、单元测试、Benchmark、系统profile、代码生成、文档生成等等。 例如,gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,对于后续项目的维护非常有优势。很多人都发现go的第三方库的源码非常好阅读,就是因为简洁的语法和统一的代码风格。 下面附上Go自带的标准profile工具生成的图(在本地对远程的服务器进行profile),只需一行命令即可: 1、系统中各个函数的调用关系和CPU时间分布图: go tool pprof -web http://
文档评论(0)