第一阶段:Go语言开发实战
1.Go语言介绍及开发环境搭建
1.Go语言是什么
2.Go语言优势
3.Go语言适合来做什么
4.Go语言安装和设置
5.标准命令概述
6.第一个Go语言程序
2.基础类型
1.变量的命名规则
2.变量的声明
3.变量的初始化
4.变量的赋值
5.匿名变量
6.基础数据类型
7.字面常量
8.常量定义
9.iota枚举
10.类型转换
11.类型别名
12.fmt包的格式化输出
3.运算符
1.算术运算符
2.关系运算符
3.逻辑运算符
4.位运算符
5.赋值运算符
6.其他运算符
7.运算符优先级
4.流程控制
1.选择结构
2.循环语句
3.跳转语句
5.函数
1.定义格式
2.自定义函数
3.递归函数
4.函数类型
5.匿名函数与闭包
6.延迟调用defer
7.获取命令行参数
8.作用域(局部变量,全局变量)
6.工程管理
1.工作区
2.包
3.测试案例
4.GOPATH设置
5.编译运行程序
6.Go install 的使用
7.复合类型
1.指针
2.数组
3.Slice
4.map
5.结构体
8.面向对象编程
1.封装与继承
2.interface{}数据类型
3.类型断言
4.多态的特性
9.异常处理
1.error接口
2.panic错误
3.recover
10.复合类型加强
1.map加强
2.Slice加强
11.开发实战
基于Go语言的综合案例实战
第二阶段:Golang高级编程
1.Linux命令
1.Linux下的目录结构
2.工作日程应用命令
3.Ubuntu下的软件安装和卸载
2.linux开发与调试工具
1.Go语言Linux下IDE开发工具安装与配置
2.文件描述符,虚拟地址空间
3.Linux系统IO函数
4.阻塞和非阻塞的概念
3.文本文件处理
1.字符串处理
2.字符串转换
3.文件操作
4.文本文件案例
4.反射机制
1.结构体标签
2.结构体序列化
3.json
4.reflect反射
5.系统I/O操作
1.os包
2.文件属性相关函数
3.链接相关概念及函数
4.目录操作相关概念及函数
6.进程与通信
1.进程相关的概念
2.进程操作相关函数
3.孤儿进程
4.僵尸进程
5.进程回收
6.进程间通信
7.线程与同步
1.互斥量
2.死锁以及解决方案
3.读写锁
4.条件变量
5.条件变量实现生产消费者模型
6.线程同步
7.Sync包
8.goroutine协程与调度器
1.Goroutine协程的概念
2.Goroutine调度器机制
3.协程的高并发编程
9.channel管道与CSP同步机制
1.CSP通讯顺序同步机制
2.channel管道及特性
3.缓存channel与非缓存channel
4.并发的循环
5.select
第三阶段:Golang网络与服务器开发
1.网络协议与网路编程
1.OSI七层模型结构
2.TCP/IP 4层模型结构
3.B/S、C/S优缺点对比
4.常见网络协议格式
5.套接字;网络字节序
6.IP地址转换函数
7.编写TCP的C/S网络程序
8.UDP通信机制与模型
9.本地套接字
10.三次握手建立连接过程
11.四次握手断开连接过程
12.滑动窗口概念
13.错误处理函数封装
14.TCP状态转换
15.2MSL概念
16.端口复用方法
17.半关闭
18.socket网络编程
2.Golang网络编程实战
1.socket客户端编程
2.socket服务端编程
3.案例:并发的时钟服务器
4.案例:并发的回显服务器
5.实战:高并发网络聊天室
3.面向对象设计
1.多态的意义
2.常用设计模式
3.接口设计和实现
4.RPC远程调用机制
1.RPC使用protocol buffers
2.RPC环境搭建
3.golang实现RPC远程调用
4.RPC-Server编写
5.RPC-Client编写
5.高并发服务时间轮
1.时间轮原理
2.时间轮Golang实现
3.时间轮的测试和使用
6.高并发服务器框架设计
1.服务器框架基础类IServer实现
2.服务器框架消息接口设计与实现
3.服务器框架数据包接口设计与实现
4.服务器框架网络连接接口设计与实现
5.服务器框架网络连接管理者接口设计与实现
6.服务器框架网络请求接口设计与实现
7.服务器框架网络请求路由设置
7.AOI通信广播机制
1.AOI算法实现
2.基于AOI算法的区域广播
3.全局广播
4.AOI位置信息管理
8.项目实战一
Golang高并发服务器开发
第四阶段:前端开发
1.html与css
2.JavaScript
3.jQuery
第五阶段:Web服务器开发
1.关系型数据库-mysql
1.mysql表的约束
2.mysql中出现的中文乱码问题
3.mysql函数库连接数据库
4.mysql API访问数据库
5.使用基础类API实现mysql客户端工具
6.预处理类API访问mysql数据库
7.使用api修改mysql事务特性
2.no-sql缓存型数据库-redis
1.key-value存储方式特性
2.redis的环境安装和redigo驱动安装
3.redis中key相关操作
4.redis中string相关操作
5.redis中list相关操作
6.redis中hash相关操作
7.redis中set和sort-set相关操作
3.git
1.代码版本控制工具git的常用指令
2.git的团队开发组建
3.git代码仓库的创建与管理
4.分布式文件系统fastDFS
1.分布式概念
2.tracker、storage、client相关配置
3.fastDFS中go的api封装
5.Nginx与反响代理部署
1.Nginx环境安装
2.Nginx环境配置
3.Nginx反响代理搭建
4.Nginx搭建负载均衡
6.beego框架
1.beego的框架环境搭建
2.controller设计:
参数配置、
路由设置、
session控制、
多种格式数据输出、
请求数据处理
3.model设计:
ORM使用、
CRUD操作、
高级查询、
原生SQL查询
4.view设计:
模板语法指南、
模板处理
7.项目实战二
基于Beego的Web项目
第六阶段:容器化编程
1.虚拟化VS容器化
1.虚拟化基础知识
2.常见虚拟化种类及技术实现
3.容器化基础知识
4.虚拟化 VS 容器化
2.Docker与Kubernetes(k8s)实战
1.Docker快速入门
2.Docker镜像管理
3.Docker容器管理
4.Docker数据管理
5.Docker网络管理
6.Docker集群管理
7.Kubernetes设计架构
8.Kubernetes集群与部署
第七阶段:基于分布式的Golang微服务开发
1.分布式编程理论
- 高可用设计
- 负载均衡
- 集群
2.微服务特性
1.微服务与微服务框架介绍
2.单体式服务特点
3.微服务架构的特性
4.微服务架构的缺点
3.protobuf通信协议
1.protobuf简介
2.数据交互的格式比较
3.protobuf的优点
4.protobuf的安装
4.服务发现
1.什么是服务发现
2.Consul的环境与安装
3.Consul代理
4.Consul Server
5.Consul Client
6.注册服务
7.查询服务
8.Consul架构
5.gRPC远程调用机制
1.gRPC使用protocol buffers
2.gRPC环境搭建
3.golang实现gRPC远程调用
4.gRPC-Server编写
5.gRPC-Client编写
6.go-mirco微服务框架
1.Micro介绍与安装编译
2.创建微服务
3.启动consul进行监管
4.微服务的srv端操作
5.微服务handler编程
6.微服务与gRPC
7.RESTful
1.REST概念
2.RESTful的实现
3.RESTful接口设计
8.微服务项目设计
1.微服务拆分原则
2.微服务项目流程与接口设计
3.Docker-compose单机集群
9.项目实战三
基于微服务的房源租赁平台
第八阶段:区块链公链开发
1.常用密码算法
1.对称加密体系
2.非对称加密体系
3.数字签名
4.数据机密性
5.身份鉴别
6.数据完整性
2.常用密码协议
1.密码学安全协议
2.数字证书认证(CA)中心
3.公钥基础设施PKI系统
3.区块链概念(链与币、通证)
1.链、软(硬)叉、挖矿、算力、双花、51%攻击等
2.共识机制(Pow、PoS、DPoS、Pbft、Raft等)
3.智能合约与去中心化
4.公有链、私有链、联盟链
5.电子钱包、数字货币
6.通证的价值与流转
7.行业动态
4.Golang区块链公链开发
1.Golang区块链公链开发-区块链架构实现
2.Golang区块链公链开发-工作量证明
3.Golang区块链公链开发-持久化
4.Golang区块链公链开发-UTXO交易结构
5.Golang区块链公链开发-交易与地址
6.Golang区块链公链开发-交易与梅克尔树
7.Golang区块链公链开发-交易与网络
第九阶段:区块链框架编程
1.Unix Shell脚本开发
1.shell中的变量
2.shell中的输入输出
3.shell中的管道
3.shell中的函数语法
2.HyperLedger Fabric的环境部署与搭建
1.docker的安装与集成
2.Go环境集成
3.部署HyperLedger Fabric
4.First-NetWork环境测试与网络启动
3.HyperLedger Fabric框架
- fabric 账号 和 fabric-ca 的使用
- fabric中的组织, 节点, 用户
- fabric中的通道
- fabric中的共识机制
- fabric中的账本
- fabric的交易流程
4.HyperLedger Fabric核心模块
1.cryptogen模块命令与配置
2.configxgen模块命令与配置
3.orderer模块命令与配置
4.peer模块命令与peer channel
5.证书与channel管理
5.智能合约与链代码
1.ChainCode介绍
2.Golang的ChainCode代码结构
3.ChainCode交易背书机制
6.Solo多机多节点部署
1.orderer排序节点
2.部署peer0.orggo节点
3.部署peer0.orgcpp节点
4.链代码打包
7.Kafka集群
1.创始块和通道文件
2.Zookeeper部署与配置
3.Kafka理念及设置
4.orderer节点设置
5.多集群环境搭建
8.链代码实战
1.dairy组织部署
2.process组织部署
3.sell组织部署
4.溯源业务chainCode编写
9.华为BCS区块链平台开发实战
1.华为云平台区块链服务简介
2.云平台区块链服务搭建
3.链代码管理
4.链代码编写
5.个人认证链代码
6.项目区块链服务系统搭建
7.交易信息上链
10.项目实战四
基于联盟链的农商品溯源平台
第十阶段:以太坊DApp开发
1.前端框架
1、vue.js简介及基本概念
2、Vue.js模板语法
3、Class与Style绑定、条件渲染、列表渲染、事件处理、表单输入绑定、过滤器、实例生命周期、数据交互
4、vue组件、vue单文件组件、vue组件开发自动化工具、生成vue单页面应用项目
2.Node.js开发
- ES6介绍
- ES6变量定义
- ES6解构赋值
- ES6函数扩展
- ES6class语法
- Nodejs发展历史
- Nodejs异步IO机制
- Nodejs功能介绍
- npm包下载
10.全局变量
11.path模块
12.fs模块
13.fs模块reader流
3.Solidity语言
1.基础语法:整型、布尔、浮点、internal、external、storage、memory等
2.高级语法:数组、枚举、结构、映射、元组等
4.以太坊与智能合约
1.合约编程: 合约、继承、全局函数、地址、转账、事件、修饰器等
2.以太坊简介与环境搭建
a. Mist钱包
b. MetaMask钱包
c. Remix编译器
5.以太坊开发框架
- 区块链搭建并实现多个节点实现数据交互
a. 私有链搭建
b. 联盟链搭建 - Truffle框架学习
a. 部署在不同的环境中(develop环境、Ganache、私有链、ropsten网络等)
b. 单元测试编写
c. 内置项目介绍 - Web3.0.js学习
6.IPFS 去中心化分布式文件系统
- IPFS服务的启动、关闭、及项目配置
- IPFS常用数据结构指令
- Nodejs调用IPFS-api
- IPFS与以太坊结合案例
7.以太坊DApp开发实战
案例1:以太坊博彩
案例2:发行代币
8.项目实战五
基于以太坊的众筹钱包开发
强化
1.以太坊源码概览与源码分析
- 下载、编译、启动Go-etherenum
- Go-etherenum客户端代码和Node分析
- 以太坊RPC通信实例和原理代码分析
- Ethereum服务和以太坊P2P协议发送广播源码分析
- 以太坊P2P协议接收广播的处理和Fetcher源码分析
- 以太坊核心BlockChain源码分析
- 以太坊通过EVM执行交易过程分析
- 以太坊Bloom过滤器实现原理及应用场景分析
2.EOS开发实战
1.EOS介绍与白皮书解读
2.DApp要求与DPOS共识算法
3.账户与并行执行
4.Token模型与资源使用
5.基于EOS的智能合约开发
3.Go与数据结构
1.Go语言与队列
2.Go语言与链表
3.Go语言与堆栈
3.Go语言与二叉树
4.Go与常用算法
1.冒泡排序
2.选择排序
3.快速排序
4.二分查找
5.归并排序
6.堆排序
5.Go与常用算法
1.冒泡排序
2.选择排序
3.快速排序
4.二分查找
5.归并排序
6.堆排序
6.UnixShell脚本高级编程
1.高级指令引入
2.Shell函数
3.Shell特殊用法
4.Shell案例实战
黑马程序员区块链培训大纲:
http://www.itheima.com/course/gotext.html