第01节 Go语言简介

本节内容:

  • Go简介。
  • Go语言应用。
  • Go成功的项目。
  • 为什么选择Go语言。
  • Go语言特点总结

1.1 Go简介

**Go (或 Golang )**是 Google 2007 年开发的一种开源编程语言。

2009年11月10日,Google Open Source Blog向全球发布了这款语言。

Go 的主要目标是:兼具 Python 等动态语句的开发速度和C/C++等编译型语言的性能与安全性

1.2 Go语言应用

  • 服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。

  • 分布式系统,数据库代理器等。

  • 网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。

  • 内存数据库,前一段时间google开发的groupcache,couchbase的部分组建。

  • 云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。

1.3 Go成功的项目

  • nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息。

  • docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。

  • packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者。

  • skynet:分布式调度框架。

  • Doozer:分布式同步工具,类似ZooKeeper。

  • Heka:mazila开源的日志处理系统。

  • cbfs:couchbase开源的分布式文件系统。

  • tsuru:开源的PAAS平台,和SAE实现的功能一模一样。

  • groupcache:memcahe作者写的用于Google下载系统的缓存系统。

  • god:类似redis的缓存系统,但是支持分布式和扩展性。

  • gor:网络流量抓包和重放工具。

1.4 为什么选择Go语言

C/C++的问题:

  • 开发效率低,对开发者要求高
  • libc只向后兼容,运维难度偏大

Lua/Python的问题:

  • 动态语言,缺少编译过程,低级错误频出
  • 缺少有效的性能分析及调试工具

1.5 Go语言特点总结

  1. 有C基础,学Golang非常轻松。
  2. 同步方式轻松实现高并发。
  3. 代码简洁,格式统一,阅读方便。
  4. 性能强劲的同时,开发效率又不差于Python等动态语言。

Go语言学习课程:
Go语言零基础手把手入门

第01节 Go语言简介相关推荐

  1. Transact-SQL语言简介

    第6章Transact-SQL语言简介 6.1 Transact-SQL概述 Transact-SQL是SQL Server的编程语言,是结构化查询语言(SQL)的增强版本,SQL 是首先由IBM开发 ...

  2. php语言开始和结束分别为,0055 PHP语言简介和HelloWorld

    0055 PHP语言简介和HelloWorld 作者:PHPYuan 时间:2018-10-01 03:41:29 第3章学习了如何编写JavaScript代码来动态修改网页内容. 虽然JavaScr ...

  3. 《从问题到程序:用Python学编程和计算》——1.2 Python语言简介

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第1章,第1.2节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1. ...

  4. 01 数据库和MySQL简介

    01 数据库和MySQL简介 文章目录 01 数据库和MySQL简介 什么是数据库(database) 为什么要有数据库? 没有数据库时的烦恼 管理方式 产生的问题 数据库 常见的关系型数据库 什么是 ...

  5. go语言学习:语言简介

    一.Go语言简介 Go语言(或 Golang) 起源于 2007 年,并在 2009 年正式对外发布.Go 是非常年轻的一门语言,它的主要目标是"兼具 Python 等动态语言的开发速度和 ...

  6. 第一节 加工中心数控系统简介

    2006-04-04 00:01:55 加工中心加工 第一节 加工中心数控系统简介 一,Siemens 810D数控系统 Siemens 810D数控系统是由德国Siemens公司研制开发的,它具有以 ...

  7. 计算机c语言程序,计算机编程|C语言简介

    int main(void) { float total; printf('输入总钱数:\n'); scanf('%f',&total); int num; printf('输入红包数量:\n ...

  8. (一)HTML 语言简介

    HTML 语言简介 HTML 语言简介 1.XHTML 2.网页的基本概念 3.HTML语义化 4.HTML字符编码 4.1.码点表示法 4.2.字符的实体表示法 5.URL简介 URL编码 HTML ...

  9. java程序包不存在_第一章 Java语言简介

    Java语言简介 Java之父 James Gosling(詹姆斯·高斯林) 正式诞生时间 1995年,已有二十多年历史 三大方向 JavaSE(桌面版,基础需重点掌握) JavaME(移动版,现在基 ...

最新文章

  1. mysql java驱动 ibm_JDBC驱动汇总
  2. 阿里巴巴王坚:用数据来改变世界
  3. 树结构的储存与特点(相关基础知识)
  4. InDesign入门教程,如何链接图形?
  5. 如何在Mac系统中修改设备名称
  6. oracle 偶尔登录超时,OracleClient,间歇性连接问题:应用程序挂起在OracleConnection.Open()上,没有超时,没有引发异常...
  7. 人工智能面试问题整理
  8. 2020年下半年软件设计师上午真题及答案解析
  9. Linux命令:ls -l(ll)结果解析
  10. IT十年人生过客-十二-痛并快乐着
  11. 百度地图自定义图标偏移问题
  12. 计算机丢失iggy,我似乎已经丢失了什么
  13. python xlrd读取文件报错_python利用xlrd读取excel文件始终报错原因
  14. 计算机映像缺失磁盘如何修复,重装Win10系统找不到硬盘的解决方法
  15. express的sendfile与send方法
  16. 怎样让一个正常人理解“线性代数”。几乎花掉我全部百度金币下来的文章。
  17. 数据结构01秦九算法
  18. 小梅哥FPGA:基于线性序列机的TLC5620型DAC驱动设计
  19. 雷达监控与视频监控性能对比分析
  20. apache atlas 案例_Apache Atlas

热门文章

  1. 查看linux系统的常用命令
  2. Excel自动化办公(一) | 满足你对Excel数据的所有幻想,python-office一键生成模拟数据
  3. Elasticsearch分片原理
  4. OpenCV实践之路——雅虎色情图片检测神经网络试用报告
  5. TrecQA 数据集下载
  6. MySQL参数binlog-do-db对binlogs写入的影响
  7. Java 支付宝支付 Alipay
  8. oracle ora00353,ORA-00354 ORA-00353 ORA-00312异常处理
  9. 一场网约车司机们的「合作社实验」
  10. SAP中订单结算KO88\ CO88\KO8G的区别