热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

golang学习资料[Basic]

基础语法《GO语言圣经》第一章:入门Helloworld命令行参数查找重复的行GIF动画获取URL并发获取多个URLWeb服务第二章:程序结构命名声明变量赋值类型包和文件作用域第三章:基础数据类型整数

基础语法

《GO语言圣经》

  • 第一章:入门
    • Helloworld
    • 命令行参数
    • 查找重复的行
    • GIF动画
    • 获取URL
    • 并发获取多个URL
    • Web服务
  • 第二章:程序结构
    • 命名
    • 声明
    • 变量
    • 赋值
    • 类型
    • 包和文件
    • 作用域
  • 第三章:基础数据类型
    • 整数
    • 浮点数
    • 复数
    • 布尔型
    • 字符串
    • 常量
  • 第四章:复合数据类型
    • 数组
    • Slice(切片)
    • Map
    • 结构体
    • JSON
    • 文本和HTML
  • 第五章:函数
    • 函数声明
    • 递归
    • 多返回值
    • 错误
    • 函数值
    • 匿名函数
    • 可变参数
    • Deferred函数
    • Panic异常
    • Recover捕获异常
  • 第六章:方法
    • 方法声明
    • 基于指针对象的方法
    • 通过嵌入结构提来扩展类型
    • 方法值和方法表达式
    • 示例:Bit数组
    • 封装
  • 第七章:接口
    • 接口约定
    • 接口类型
    • 实现接口的条件
    • flaq.Value接口
    • 接口值
    • sort.interface接口
    • http.Handler接口
    • error接口
    • 示例:表达式求值
    • 类型断言
    • 基于类型断言区别错误类型
    • 通过类型断言询问行为
    • 类型开关
    • 示例:基于标记的XML解码
  • 第八章:Goroutines和Channels
    • Goroutines
    • 示例:并发的Clock服务
    • 示例:示例: 并发的Echo服务
    • Channels
    • 并发的循环
    • 示例: 并发的Web爬虫
    • 基于select的多路复用
    • 示例: 并发的字典遍历
    • 并发的退出
    • 示例:聊天服务
  • 第九章:基于共享变量的并发
    • 竞争条件
    • sync.Mutex互斥锁
    • sync.RWMutex读写锁
    • 内存同步
    • sync.Once初始化
    • 竞争条件检测
    • 示例: 并发的非阻塞缓存
    • Goroutines和线程
  • 第十章:包和工具
    • 包简介
    • 导入路径
    • 包声明
    • 导入声明
    • 包的匿名导入
    • 包和命名
    • 工具
  • 第十章:测试
    • go test
    • 测试函数
    • 测试覆盖率
    • 基准测试
    • 剖析
    • 示例函数
  • 第十二章:反射
    • 为何需要反射
    • reflect.Type和reflect.Value
    • Display递归打印
    • 示例: 编码S表达式
    • 通过reflect.Value修改值
    • 获取结构体字段标识
    • 显示一个类型的方法集
    • 几点忠告
  • 第十三章:底层编程
    • unsafe.Sizeof, Alignof 和 Offsetof
    • unsafe.Pointer
    • 示例: 深度相等判断
    • 通过cgo调用C代码
    • 几点忠告

网络编程

《Nettwork Programming》

  • 体系结构
    • 协议层
    • 网络
    • 网关
    • 数据包
    • 连接模型
    • 通信模型
    • 分布式通信模型
    • C/S系统
    • C/S应用
    • 分布式服务端
    • 通信Flow
    • 分布式组件
    • 中间件模型
    • 持久处理
    • 失败节点
    • Acceptance Factors
    • 透明性
    • 分布式计算的八个误区
  • Go语言概览
    • 类型
    • 多线程
    • 类型转换
    • 声明
    • GOPATH
    • 运行Go程序
    • 标准库
    • 错误值
  • 第三章:Socket级别编程
    • TCP/IP栈
    • 互联网地址
    • IP地址类型
    • 服务
    • TCP Socket
    • 控制TCP连接
    • UDP数据报
    • 监听多个Socket的服务
    • Conn, PacketConn, 和Listener 类型
    • 原始Socket和IPConn类型
  • 第四章:数据序列化
    • 结构化数据
    • 双方协定
    • 自描述数据
    • ASN.1
    • JSON
    • Gob包
    • 将二进制数据编码成字符串
    • Protocol Buffers
  • 第五章:应用级别协议
    • 协议设计
    • 你为什么应该担忧?
    • 版本控制
    • 消息格式
    • 数据格式
    • 一个简单的样例
    • 状态信息
  • 第六章:管理字符集和编码
    • 定义
    • ASCII
    • ISO 8859
    • Unicode
    • UTF-8,Go,和Runes
    • UTF-16和GO
    • Unicode Cotchas
    • ISO 8859 和 Go
    • 其他字符集和Go
  • 第七章:安全
    • ISO安全体系
    • 数据完整
    • 对称密钥加密
    • 公钥加密
    • X.509验证
  • 第八章:HTTP
    • URLs和资源
    • 简单用户代理(User Agent)
    • 配置HTTP请求
    • Client对象
    • 代理处理(proxy)
    • 通过Client进行HTTPS连接
    • 服务器
    • HTTPS
  • 第九章:模板
    • 插入对象值
    • 管道
    • 定义函数
    • 变量
    • 条件语句
    • HTML/Template包
  • 第十章:一个完整的Web服务器
    • 浏览网站的流程图
    • 浏览文件
    • 基础服务器
    • listFlashCards函数
    • manageFlashCards函数
    • 中国字典
    • Flashcards集合
    • 解决声调
    • ListWords函数
    • showFlashCards函数
    • 在浏览器上的展现
    • 运行这个服务器
  • 第十一章:HTML
    • Go语言的HTML/Template包
    • Tokenizing HTML
    • XHTML/HTML
    • JSON
  • 第十二章:XML
    • 解析XML
    • Unmarshalling XML
    • Marshalling XML
    • XHTML
    • HTML
  • 第十三章:
  • 远程进程调用
    • Go语言的RPC
    • JSON
  • 第十四章:REST
    • URIs和资源
    • 表现
    • REST 动词
    • 无状态
    • 应用状态引擎的超媒体(HATEOAS)
    • 链接表示
    • Transactions with REST
    • The Richardson Maturity Model
    • Flashcards Revisited
    • The Demultiplexer (Demuxer)
    • Content Negotiation
    • Handling Other URLs
    • The Complete Server
    • Client
    • 使用REST还是RPC
  • 第十五章:WebSocket
    • websocket服务器
    • The Go Sub-Repository Package
    • The Gorilla Package

语言技巧

《Go in Practice》

  • 第一部分:基础
    • 第一章:走进Go
      • Go是什么
      • Go中值得注意的地方
        • 多返回值
        • 现代标准库
        • Concurrency with goroutines and channels
        • Go工具链:不仅仅是一个编程语言
      • 众多语言中的Go
        • C和Go
        • Java和Go
        • Python、PHP和Go
        • Javascript、Node.js和Go
      • 开始运行Go
      • 你好,Go
    • 第二章:基础
      • 命令行程序
      • 处理配置
      • 现实世界的Web服务
    • 第三章:Go中的Concurrency
      • 理解Go的Concurrency模型
      • 使用goroutines
      • 使用channels
  • 第二部分:多彩的应用
    • 第四章:处理error和panic
      • Error处理
      • panic系统
    • 第五章:调试和测试
      • 定位bug
      • 日志
      • 访问栈追踪(stack trace)
      • 测试
      • 性能测试
  • 第三部分:应用接口
    • 第六章:HTML和Email模板
      • HTML模板
      • 为Email使用模板
    • 第七章:服务和接收资源和表单
      • 提供静态内容服务
      • 处理表单请求
    • 第八章:Web服务
      • REST APIs
      • 传递和处理HTTP error
      • 解析和映射JSON
      • API版本控制
  • 第四部分:应用云端部署
    • 第九章:使用云服务
      • 云集算是什么
      • 管理云服务
      • 云服务器上运行你的程序
    • 第十章:云服务之间的通信
      • 微服务和高可用
      • 服务间通信
    • 第十一章:反射和代码生成
      • 反射的三个特征
      • Structs、tags、和annotations
      • 通过Go代码生成Go代码

Web编程

《Go Web Programming》

  • 第一部分:Go语言和Web应用
    • 第一章:Go语言和Web应用
      • 使用Go开发Web应用
      • Web应用是怎样工作
      • HTTP简介
      • Web应用的出现
      • HTTP请求(request)
      • HTTP响应(response)
      • URI
      • HTTP/2简介
      • 一个Web'应用的组成部分
      • 你好,Go
    • 第二章:Go实现ChitChat
      • 我们来聊天吧
      • 应用设计
      • 数据模型
      • 接收和处理请求
      • 通过模板生成HTML响应
      • 安装PostgreSQL
      • 数据库接口
      • 启动服务器
      • 组合封装起来
  • 第二部分:基础Web应用
    • 第三章:handling请求
      • Go的net/http库
      • Go服务
      • Handlers和handler函数
      • 使用HTTP/2
    • 第四章:processing请求
      • 请求和响应
      • HTML表单和Go
      • ResponseWriter
      • COOKIEs
    • 第五章:展现内容
      • 模板和模板引擎
      • Go语言模板引擎
      • 动作
      • 参数、变量和管道
      • 函数
      • 上下文语义
      • 嵌套模板
      • 使用block动作来定义模板
    • 第六章:存储数据
      • 内存存储
      • 文件存储
      • Go和SQL
      • Go和SQL 关系
      • Go关系映射器
  • 第三部分:现实世界
    • 第七章:Go Web服务
      • web服务简介
      • 基于SOAP的Web服务
      • 基于REST的Web服务
      • 使用Go解析和创建XML
      • 使用Go解析和创建JSON
      • 创建Go Web服务
    • 第八章:测试 你的应用
      • Go和测试
      • Go单元测试
      • Go HTTP测试
      • 测试重复和依赖注入
      • 第三方Go测试库
    • 第九章:使用Go的concurrency
      • concurrency不是并行
      • Goroutines
      • Channels
      • Web应用中使用Concurrency
    • 第十章:部署Go应用
      • 部署到服务器
      • 部署到Heroku
      • 部署到Google APP Engine
      • 部署到Docker
      • 不同部署方法的比较

选:分布式系统

MIT分布式系统课程


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 在2022年,随着信息化时代的发展,手机市场上出现了越来越多的机型选择。如何挑选一部适合自己的手机成为了许多人的困扰。本文提供了一些配置及性价比较高的手机推荐,并总结了选择手机时需要考虑的因素,如性能、屏幕素质、拍照水平、充电续航、颜值质感等。不同人的需求不同,因此在预算范围内找到适合自己的手机才是最重要的。通过本文的指南和技巧,希望能够帮助读者节省选购手机的时间。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
author-avatar
G2602914553
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有