Golang初识

字节跳动也就是我们常说的今日头条

1.今日头条基于Go语言构建千亿级微服务的实践

今日头条当前后端服务超过80%的流量是跑在Go构建的服务上

微服务数量超过100个

高峰QPS超过700万

日处理请求量超过3000亿

是业内最大规模的Go应用

2.Go构建微服务的历程

在2015年之前,头条的主要编程语言是Python以及部分C++

随着业务和流量的快速增长,服务端的压力越来越大,随之而来的问题频出

Python的解释型语言特性以及落后的多进程服务模型受到了巨大的挑战

此外,当时的服务端是一个典型的单体架构,耦合严重

部分独立功能也急需从单体架构中拆出来

3.为什么选择Go语言?

Go语言相对其他语言具有几点天然的优势:

语法简单,上手快

编译型语言,运行速度快

性能高,编译快,开发效率也不低

天生支持并发,充分利用多核,协程模型是非常优秀的服务端模型,同时也适合网络调用

静态编译,部署方便,编译包小,没有依赖

4.什么是Go?

Go语言是Google于2009年推出的一门新的系统编程语言。

Go的另外一个名字叫Golang,简称云计算时代的C语言。

Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。

Go语言介于C和Python之间,运行速度快,开发效率高。

5.Go的主要特点有哪些?

可直接编译成机器码,不依赖其他库

类型安全和内存安全

以非常直观的极低代价的方案实现高并发

高效的垃圾回收机制

快速编译(同时解决C语言中头文件太多的问题)

为多核计算机提供性能提升的方案

UTF-8编码支持

跨平台编译

内嵌C支持

特点:静态类型语言,但是有动态语言的感觉

1.静态编译

2.垃圾回收

3.简洁的符号和语法

4.平坦的类型系统

5.基于CSP的并行模型

6.高效简单的工具链

7.丰富的标准库

6.Go存在的价值是什么?用来做什么?

Go在谷歌,以软件工程为目的的语言设计

服务器编程

分布式系统

网络编程

内存数据库

云平台

Go是记事本编码吗?

包括vim  IDEA  Sublime Text  Eclipse等众多知名IDE均已支持

vscode idea  liteide  goland

7.国内知名互联网公司在使用Go语言的有哪些?

百度  BFE项目手百消息通讯系统

阿里  CDN

腾讯  腾讯游戏蓝鲸平台

京东  云消息推送系统、云存储、京东商场

小米  运维监控系统、小米互娱、小米商城、小米视频、小米生态链

360   日志搜索系统Poseidon

美图、滴滴等等

字节跳动  今日头条基于Go语言构建千亿级微服务的实践

8.Go语言写的开源软件有哪些?

Docker  容器

Kubernetes  Google Borg的开源实现

Etcd  类似zookeeper的高可用key-value存储

9.什么时候用Go?

做一些页面,逻辑变化大用Python

高性能大规模,分布式集群管理用Go

10.Golang软件下载的地址在哪?

官方下载地址https://golang.org/dl

国内下载地址https://dl.gocn.io

https://golangtc.com/download

我们下载这个go1.9.2.windows-amd64.msi

打开cmd
go version
go run hello.go

package main

import "fmt"

func main() {
	fmt.Println("hello go")
}

还要安装Git

11.Go语言开发工具的ide

liteide

https://liteide.org/cn/

https://sourceforge.net/projects/liteide/files

12.Go语言帮助文档

go语言官网https://golang.org

go中文社区https://studygolang.com

go中文在线文档https://studygolang.com/pkgdoc

初始Golang的更多相关文章

  1. 第一篇:初始Golang

    Golang简介 编程语言已经非常多,偏性能敏感的编译型语言有 C.C++.Java.C#.Delphi和Objective-C 等,偏快速业务开发的动态解析型语言有PHP.Python.Perl.R ...

  2. golang 时间的比较,time.Time的初始值?

    参考: https://golangcode.com/checking-if-date-has-been-set/ https://stackoverflow.com/questions/209243 ...

  3. golang语言构造函数

    1.构造函数定义 构造函数 ,是一种特殊的方法.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中.特别的一个类可以有多个构造函数 ,可根据其参数个 ...

  4. golang 使用 iota

    iota是golang语言的常量计数器,只能在常量的表达式中使用. iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(io ...

  5. Golang 语法学习笔记

    Golang 语法学习笔记 包.变量和函数. 包 每个 Go 程序都是由包组成的. 程序运行的入口是包 main. 包名与导入路径的最后一个目录一致."math/rand" 包由 ...

  6. 从OOP的角度看Golang

    资料来源 https://github.com/luciotato/golang-notes/blob/master/OOP.md?hmsr=toutiao.io&utm_medium=tou ...

  7. Golang语法与代码格式速记【转】

    // Description: Golang语法与代码格式速记 // Author: cxy // Date: 2013-04-01 // Version: 0.3 // TODO 说明 // TOD ...

  8. 【GoLang】golang 最佳实践汇总

    最佳实践 1 包管理 1.1 使用包管理对Golang项目进行管理,如:godep/vendor等工具 1.2 main/init函数使用,init函数参考python 1.2.1 main-> ...

  9. GoLang之基础

    GoLang之基础 Go是一种并发的.带垃圾回收的.快速编译的语言. 经典的"hello world"入门: package main import "fmt" ...

随机推荐

  1. idea使用的JDK版本1.9换成1.8后相关的更改设置

    File——>Project Structure 一.查看Project中的jdk 1.检查Project SDK:中jdk 版本是否为1.8版本 2.检查Project language le ...

  2. Hiveserver2 OOM问题解法

    数据平台做一些计算需要通过hive jdbc方式连到hiveserver2执行job,但是hiveserver 正常运行一段时间后,总是会报如下OOM:   1 2 3 4 5 6 7 8 9 10 ...

  3. dive 方便的观察容器各层信息的工具

      dive 是一个方便的观察容器各层信息的工具,同时也集成了容器构建命令,方便我们在构建容器 镜像的同时查询镜像各层的变动信息 安装 mac 系统,可以按照自己的系统选择安装方式 wget http ...

  4. mino federation 功能

    mino federation 可以让我们进行 bucket的查找,实现更灵活的分布式控制 其中依赖了几个组件 coredns etcd 参考架构图 说明 官方也提供了一个简单的部署的demo,总的来 ...

  5. 改变codeblocks里面各种注释的颜色。

    ->Setting->Editor->Syntax highlighting->“Comment(normal)” /* 改变块注释颜色 */"Comment lin ...

  6. 普林斯顿数学指南(第一卷) (Timothy Gowers 著)

    第I部分 引论 I.1 数学是做什么的 I.2 数学的语言和语法 I.3 一些基本的数学定义 I.4 数学研究的一般目的 第II部分 现代数学的起源 II.1 从数到数系 II.2 几何学 II.3 ...

  7. JSON数据的优化

    JSON数据的可以优化吗?肯定可以,之前都是使用XML,但之后用XML越来越少了,就是因为XML包含的冗余信息太多了.那么JSON数据有没有冗余呢? 肯定有,名称就是重复的!! 例如如下的JSON数据 ...

  8. Office 2010 打开文件后所有的格式成了时间的解决方法

    最新不知道什么原因,每一个 Excel 文件打开后,时需的数据都成了时间格式. 而且改都改不了,改了后第二次打开又成了这个样子. 最后找到解决方法. 如下动画,将 [$F400] 数据格式删除就可以. ...

  9. 基于redis 3.x搭建集群环境

    由于我团队开发的在线坐席系统,即将面对线上每周3000W的下行投放客户,产品的咨询量可能会很大,基于前期,200W的投放时,前10分钟,大概800问题量,平均一个客户大概8个问题,也就是说每分钟10个 ...

  10. Arduino在64位WIN7下无法安装驱动的解决办法

    1.获取权限 打开C:\Windows\System32\DriverStore\FileRepository,对着FileRepository文件夹,右键 >>属性 >>安全 ...