Go语言学习站点

目录

1.1.1. Go语言为并发而生

1.1.2. Go语言简单易学

1.1.3. 使用go的公司

1.1.4. go适合做什么

1.1.5. 学习Go语言的前景

1.1.6. 学习Go语言目录导航


http://www.topgoer.com/

 

1.1.1. Go语言为并发而生

go语言(或 Golang)是Google开发的开源编程语言,诞生于2006年1月2日下午15点4分5秒,于2009年11月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。

go是非常年轻的一门语言,它的主要目标是“兼具Python 等动态语言的开发速度和C/C++等编译型语言的性能与安全性”

很多公司,特别是中国的互联网公司,即将或者已经完成了使用 Go 语言改造旧系统的过程。经过 Go 语言重构的系统能使用更少的硬件资源获得更高的并发和I/O吞吐表现。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。

Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。可以将 goroutine 理解为一种虚拟线程。Go 语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine

goroutine的特点:

    1.`goroutine`具有可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。
    2.`goroutine`的启动时间比线程快。
    3.`goroutine`原生支持利用channel安全地进行通信。
    4.`goroutine`共享数据结构时无需使用互斥锁。

1.1.2. Go语言简单易学

语法简洁

Go 语言简单易学,学习曲线平缓,不需要像 C/C++ 语言动辄需要两到三年的学习期。Go 语言被称为“互联网时代的C语言”。Go 语言的风格类似于C语言。其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括号,循环也只有 for 一种表示方法,就可以实现数值、键值等各种遍历。

代码风格统一

Go 语言提供了一套格式化工具——go fmt。一些 Go 语言的开发环境或者编辑器在保存时,都会使用格式化工具进行修改代码的格式化,这样就保证了不同开发者提交的代码都是统一的格式。(吐槽下:再也不用担心那些看不懂的黑魔法了…)

开发效率高

Go语言学习站点_第1张图片

Go语言实现了开发效率与执行效率的完美结合,让你像写Python代码(效率)一样编写C代码(性能)。

1.1.3. 使用go的公司

  • Google
    • https://github.com/kubernetes/kubernetes
  • Facebook
    • https://github.com/facebookgo
  • 腾讯
  • 百度
  • 360开源日志系统
    • https://github.com/Qihoo360/poseidon

1.1.4. go适合做什么

  • 服务端开发
  • 分布式系统,微服务
  • 网络编程
  • 区块链开发
  • 内存KV数据库,例如boltDB、levelDB
  • 云平台

1.1.5. 学习Go语言的前景

目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。

Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态。Go语言的岗位需求持续高涨,目前的Go程序员数量少,待遇好。

抓住趋势,要学会做一个领跑者而不是跟随者。

国内Go语言的需求潜力巨大,目前无论是国内大厂还是新兴互联网公司基本上都会有Go语言的岗位需求。

1.1.6. 学习Go语言目录导航

  • 前景
  • 开发环境
    • Go的安装
    • 配置GOPATH
    • 编辑器
    • Git安装
    • 第一个go程序
  • Go基础
    • Go语言的主要特征
    • Golang内置类型和函数
    • Init函数和main函数
    • 命令
    • 运算符
    • 下划线
    • 变量和常量
    • 基本类型
    • 数组Array
    • 切片Slice
    • Slice底层实现
    • 指针
    • Map
    • Map实现原理
    • 结构体
  • 流程控制
    • 条件语句if
    • 条件语句switch
    • 条件语句select
    • 循环语句for
    • 循环语句range
    • 循环控制Goto、Break、Continue
  • 函数
    • 函数定义
    • 参数
    • 返回值
    • 匿名函数
    • 闭包、递归
    • 延迟调用(defer)
    • 异常处理
    • 单元测试
    • 压力测试
  • 方法
    • 方法定义
    • 匿名字段
    • 方法集
    • 表达式
    • 自定义error
  • 面向对象
    • 匿名字段
    • 接口
  • 网络编程
    • 互联网协议介绍
    • socket编程
      • socket图解
      • TCP编程
      • UDP编程
      • TCP黏包
    • http编程
    • WebSocket编程
  • 并发编程
    • 并发介绍
    • Goroutine
    • runtime包
    • Channel
    • Goroutine池
    • 定时器
    • select
    • 并发安全和锁
    • Sync
    • 原子操作(atomic包)
    • GMP 原理与调度
    • 爬虫小案例
  • 数据操作
    • go操作MySQL
      • go操作MySQL
      • Insert操作
      • Select操作
      • Update操作
      • Delete操作
      • MySQL事务
    • go操作Redis
      • Redis介绍
      • 链接Redis
      • String类型Set、Get操作
      • String批量操作
      • 设置过期时间
      • List队列操作
      • Hash表
      • Redis连接池
    • go操作ETCD
      • ETCD介绍
      • 操作ETCD
    • zookeeper
      • 基本操作测试
      • 简单的分布式server
      • Zookeeper命令行使用
    • go操作kafka
      • Kafka介绍
      • Kafka深层介绍
      • Kafka的安装
      • 操作Kafka
    • go操作RabbitMQ
      • RabbitMQ介绍
      • RabbitMQ安装
      • Simple模式
      • Work模式
      • Publish模式
      • Routing模式
      • Topic模式
    • go操作ElasticSearch
      • ElasticSearch介绍
      • Elasticsearch安装
      • Kibana安装
      • 操作ElasticSearch
    • NSQ
      • 安装
      • 生产者
      • 消费者
    • GORM
      • 入门指南
        • 概览
        • 模型定义
        • 惯例
        • 连接数据库
      • CRUD 接口
        • 创建
        • 查询
        • 更新
        • 删除
      • 关联
        • Belongs To
        • Has One
        • Has Many
        • Many To Many
        • 关联
        • 预加载
      • 教程
        • 链式操作
        • 错误处理
        • 钩子
        • 事务
        • 数据库迁移
        • 原生 SQL 和 SQL 生成器
        • 通用数据库接口
      • 高级主题
        • 复合主键
        • 创建插件
        • GORM Dialects
        • 自定义Logger
        • 更新日志
      • Gorm用法介绍
    • xorm
    • go操作memcached
  • 常用标准库
    • fmt
    • Time
    • Flag
    • Log
    • IO操作
    • Strconv
    • Template
    • Http
    • Context
    • 数据格式
    • 反射
  • beego框架
    • 简介
    • beego 安装
      • beego 安装升级
      • bee工具的使用
    • 快速入门
      • 新建项目
      • 路由设置
      • Controller运行机制
      • Model逻辑
      • View编写
      • 静态文件处理
    • beego的MVC架构介绍
      • controller设计
        • 参数配置
        • 路由设置
        • 控制器函数
        • XSRF过滤
        • 请求数据处理
        • Session控制
        • 过滤器
        • Flash数据
        • URL构建
        • 多种格式数据输出
        • 表单数据验证
        • 错误处理
        • 日志处理
      • model设计
        • 概述
        • ORM使用
        • CRUD操作
        • 高级查询
        • 原生SQL查询
        • 构造查询
        • 事务处理
        • 模型定义
        • 命令模式
        • 测试用例
        • 自定义字段
        • FAQ
      • view设计
        • 模板语法指南
        • 模板处理
        • 模板函数
        • 静态文件处理
        • 模板分页处理
    • beego的模块设计
      • Session模块
      • Grace模块
      • Cache模块
      • Logs模块
      • Httplib模块
      • Context模块
      • Toolbox模块
      • Config模块
      • I18n模块
    • beego高级编程
      • 进程内监控
      • API自动化文档
    • 应用部署
      • 独立部署
      • Supervisor部署
      • Nginx部署
      • Apache部署
    • beego第三方库
    • 应用例子
      • 在线聊天室
      • 短域名服务
      • Todo列表
    • beego实用库
      • 验证码
      • 分页
    • FAQ
  • gin框架
    • 简介
    • gin路由
      • 基本路由
      • Restful风格的API
      • API参数
      • URL参数
      • 表单参数
      • 上传单个文件
      • 上传多个文件
      • routes group
      • 路由原理
      • 路由拆分与注册
    • gin 数据解析和绑定
      • Json 数据解析和绑定
      • 表单数据解析和绑定
      • URI数据解析和绑定
    • gin 渲染
      • 各种数据格式的响应
      • HTML模板渲染
      • 重定向
      • 同步异步
    • gin 中间件
      • 全局中间件
      • Next()方法
      • 局部中间件
      • 中间件练习
      • 中间件推荐
    • 会话控制
      • Cookie介绍
      • Cookie的使用
      • Cookie练习
      • Cookie的缺点
      • Sessions
    • 参数验证
      • 结构体验证
      • 自定义验证
      • 多语言翻译验证
    • 其他
      • 日志文件
      • Air实时加载
      • gin验证码
      • 生成解析token
      • 权限管理
    • gin 源码解读
      • net/http的大概流程
      • 揭开gin的神秘面纱
      • gin牛逼的context
      • gin的路由算法
  • Iris框架
    • 关于
    • 安装
    • 开始使用
    • Host
      • 带有TLS的自动公共域名
    • 配置
    • 路由
      • 路径参数类型
      • 反向查询
      • 中间件
      • 处理HTTP错误
      • 子域名
      • 包装路由器
      • 重写Context
      • Context方法
    • HTTP Method Override
    • API版本控制
    • 内容协商
    • 响应记录器
    • HTTP Referer
    • 请求认证
    • URL查询参数
    • 表单
    • 模型验证
    • 缓存
    • 文件服务
    • 视图
    • Cookies
    • Sessions
    • Websockets
    • MVC
    • 测试
  • Echo框架
  • 微服务
    • 认识微服务
    • 微服务生态
    • 微服务详解
    • RPC
    • RPC系统文档
    • Raft
    • gRPC
      • 安装
      • gRPC简介
      • Protobuf⇢Go转换
      • Protobuf语法
      • 小案例
      • OpenSSL安装
      • 认证
      • 拦截器
      • 内置Trace
      • HTTP网关
    • Go Micro入门
    • Go Micro接口详解
    • Go Micro文档1.x
    • Go Micro文档2.x
  • Go高级
    • 快速排序算法
    • 堆排序算法
    • 冒泡排序算法
    • 二分查找方法
    • 选择排序算法
    • 基数排序算法
    • 拓扑排序
    • 字符串匹配
    • 二叉搜索树
    • 散列表
    • 链表
    • 跳跃表
    • 字典树
    • 向量空间
  • 插件库
    • 跨平台交叉编译
    • 文件上传
    • 依赖管理
    • 高效读取配置信息
    • 实时读取文件内容
    • 加密解密
      • 哈希算法
      • 加密解密
      • md5
      • base64
      • sha
      • hmac
    • 跨域
    • 系统性能数据gopsutil库
    • pprof性能调优
    • 数据绑定结构体
      • 查询结果反射结构体
      • form数据绑定结构体
    • 验证器
    • 验证码
    • 流量控
    • 发邮件
    • 页面静态化
    • 文件监控
    • 雪花算法
    • 函数验证中间键
    • 封装websocket
    • 生成PDF
    • 获取HTTP请求的IP地址
    • JSON Web令牌
    • 检查切片中是否存在元素
    • 查看图片主要颜色
    • 判断字符串开头
    • 字符串中解析日期
    • 压缩解压文件
    • PDF转JPG
    • Sessions
    • markdown解析库
    • 选项设计模式
    • 运行系统命令和二进制文件
    • proxy转发
    • 字符串数组排序
    • 带进度条大文件下载
    • gjson
    • 解决中文乱码
    • 二维码
    • Yaml编码和解码
    • 中文分词
    • 权限管理
    • Swaggo
    • 网页截图
    • 汉字转拼音
    • CLI框架
    • Google 翻译API
    • 限流器
    • 缓存
    • 支付插件
    • 获取https过期时间
    • 获取服务器配置
    • 热重启
    • 原生中间件
    • 设置https
  • 项目
    • github库地址
    • TCP扫描器
    • 定时任务
      • cron
      • gocron
    • 基于角色的访问控制框架
    • uuid
    • 支付宝支付
    • 微信支付
    • 微信公众号开发
    • 爬虫小案例
    • 千万数据过滤
      • 需求
      • 读入数据
      • 数据清洗
      • 省份划分
    • go-admin
    • go-vue-admin
    • go-admin
    • log
      • Logger
      • Zap Logger
      • 日志切割归档
    • 聊天室小案例
    • 性能压测工具wrk
    • gcc安装
  • 开源仓库
    • go学习线路图
    • 音频和音乐
    • 身份验证和OAuth
    • 机器人相关
    • 标准CLI
    • 构建用户界面库
    • 配置
    • 持续集成
    • CSS预处理器
    • 数据结构
    • 数据库
      • 数据库
      • 数据库架构迁移
      • 数据库工具
      • SQL查询构建器
    • 数据库驱动
      • 关系数据库
      • NoSQL数据库
      • 搜索和分析数据库
      • 多个后端
    • 日期和时间
    • 分布式系统
    • 电子邮件
    • 嵌入式脚本语言
    • 错误处理
    • 文件
    • 金融
    • Forms
    • 功能性
    • 游戏开发
    • 生成与泛型
    • 地理位置
    • 编译器
    • Goroutines
    • 图形界面
    • 图片
    • 物联网
    • 工作计划
    • JSON格式
    • Logging
    • 机器学习
    • 实现消息传递
    • 微软办公软件
    • 依赖注入
    • 项目布局
    • Strings
    • 其他
    • 自然语言处理
    • 网络
    • HTTP客户端
    • OpenGL
    • ORM
    • 包管理
    • 性能
    • 查询语言
    • 资源嵌入
    • 科学与数据分析
    • 安全
    • 序列化
    • 服务器应用
    • 流处理
    • 模板引擎
    • 测试
    • 文字处理
    • 第三方API
    • 实用工具
    • UUID
    • 验证方式
    • 版本控制
    • 视频
    • Web框架
    • 中间件
    • 路由器
    • 视窗
    • XML格式
    • 代码分析
    • 编辑器插件
    • 硬件
    • go生成工具
    • go工具
    • DevOps工具
    • 持续更新...
  • 其他
    • Golang 58个坑
    • 资料下载
    • 零碎知识点
  • 面试题
  • go中文标准文档
  • go专家编程
  • go设计模式
  • go公众号开发
  • 关于
  • 更新列表
  • 持续更新中...

你可能感兴趣的:(GO)