网址:http://www.1cxy.net
GO技术交流QQ群:254416566
所处阶段 | 主讲内容 | 技术要点 | 学习目标 |
第一阶段Go语言开发入门实战 | 1.Go语言介绍及开发环境搭建 | 1.Go语言是什么 2.Go语言优势 3.Go语言适合来做什么 4.Go语言安装和设置 5.标准命令概述 6.第一个Go语言程序 |
课程设计理念: 夯实基础,Go语言作为区块链技术第一编程语言, 学习Go语言编程从入门到精通,从单纯的语法理解到灵活应用解决实际问题,有助于区块链技术基础做铺垫,掌握Linux和Windows双系统开发环境,掌握常见数据结构和算法(时间复杂度计算,排序,搜索,栈,队列,二叉树),建立面向对象思维,能对问题进行抽象归类。掌握基础的并发理论。 可掌握的核心能力: 1、通过Go语培养编程思维和动手能力; 2、通过Go语言的学习培养面向过程及编程思想,为以后的深入学习就业课程打下坚实基础。 可解决的现实问题: 1、具备Go领域基础专业编程能力; 2、实现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 get,test,install等等 的使用 7.go语言包管理(godep/glide/govender) |
||
7.复合类型 | 1.指针 2.数组 3.Slice 4.map 5.结构体 |
||
8.面向对象编程 | 1.封装与继承 2.接口的实现 3.Interface{}数据类型 4.类型断言 5.多态的特性 6.反射 |
||
9.指针与方法 | 1.对象生命周期和匿名函数 2.指针数组 3.指向指针的指针 4.指针与函数的副本机制 5.带有指针接收器的方法 |
||
10.异常处理 | 1.error接口 2.panic错误 3.recover |
||
11.文件处理 | 1.字符串处理 2.字符串转换 3.正则表达式 4.Json处理 5.文件操作 6.案例:拷贝文件,文件切割归并 |
||
12.go标准库开发 | 1.创建自定义包 2.导入包 3.Go命令行工具简介 4.Strings包 5.Bytes包 6.容器包 7.IO包 8.OS包 9.Image包 10.数学处理包 11.runtime包 12.日志包 13.系统调用包 14.反射包 15.unicode编码包 16.unsafe包 17.调试包 |
||
13综合文件处理 | 1.处理JSON文件 2.处理XML文件 3.处理纯文本文件 4.处理二进制文件 5.创建ZIP归档文件 6.创建可压缩tar包 7.解开ZIP归档文件 8.解开tar归档文件 |
||
14.开发实战 | 1.黑白棋项目实战 2.大数据文件处理实战 |
||
第二阶段Linux与Go语言高级编程 | 1.Linux命令 | 1.Linux下的目录结构 2.工作日程应用命令 3.Ubuntu下的软件安装和卸载 |
课程设计理念 1.Linux是企业级服务器,必会 2.高并发的多进程多线程开发服务器后端开发必会 可掌握的核心能力: 具备Linux平台Golang服务器开发方向基本知识和常用技能,并具备基本的开发能力。 可解决的现实问题: 1、具备Golang后端开发能力 2、具备Linux系统编程能力 3、可解决常见Linux系统编程问题 4、了解系统编程的并发机制 市场价值: 熟练学习和掌握后,可满足企业开发的初中级需求。 |
2.LinuxShell | 1.Linux下的目录结构 2.工作日程应用命令 3.Ubuntu下的软件安装和卸载 4.base shell 5.base shell脚本常规编程 6.base shell脚本实战 |
||
3.Linux开发与调试工具 | 1.Go语言Linux下IDE开发工具安装与配置 2.文件描述符,虚拟地址空间 3.Linux系统IO函数 4.阻塞和非阻塞的概念 |
||
4.系统I/O操作 | 1.OS包 2.文件属性相关函数 3.链接相关概念及函数 4.目录操作相关概念及函数 |
||
5.多进程开发 | 1.进程相关的概念 2.进程操作相关函数 3.孤儿进程 4.僵尸进程 5.进程回收 |
||
6多进程同步与通信 | 1.进程共享内存通信 2.进程匿名管道通信 3.进程命名管道通信 4.进程信号量通信 5.进程读写文件通信 6.进程互斥量通信 7.进程网络通信 |
||
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 |
||
10.高并发原理分析 | 1Mutex的实现、扩展功能和坑。 2RWMutex的实现、扩展功能和坑。 3Waitgroup的实现、坑 4Cond的使用和坑 5Once的实现和坑,单例的Eager/Lazy实现 6Pool的坑, net.Conn的池 7Map的实现、应用场景 8Context的一些问题 |
||
11高并发拓展 | 1可重入锁 2信号量 3SingleFlight及应用 4ErrGroup 5自旋锁 6文件锁 7并发Map的多种实现 |
||
12原子操作分析 | 1原子操作的实现 2操作的数据类型 3提供的函数 4通用Value类型 5.扩展的原子操作库 |
||
13.channel实战 | 1.常见易犯错的channel使用场景 2.三大使用场景 3.Or-done模式的三种实现 4.扇入 5.扇出 6.Tee 7.Pipeline 8.流式处理 |
||
14.golang内存模型分析 | 1.堆,栈,静态区,代码区 2.init函数 3.goroutine 4.channel 5.Mutex/RWMutex 6.Waitgroup 7.Once 8.atomic |
||
15线程安全数据结构设计与实战 | 1.文件线程安全实战 2.并发大数据搜索实战 |
||
第三阶段Go语言网络与服务器开发 | 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网络编程 |
课程设计理念: 高并发服务器开发,掌握Linux操作系统groutines协程/进程/线程管理和网络socket编程,熟练编写C/S客户机服务器通信程序,理解Go协程的调度器机制具备常见高并发服务器开发,游戏服务器开发能力。 可掌握的核心能力: 1.具备常用后台服务器开发方向基本知识和常用技能,并具备基本的开发能力; 2.掌握gouroutine、channel等go语言并发机制和高并发服务器解决方案; 3.掌握Linux平台系统编程; 4.掌握网络编程协议,实现网络间点对点通信。 可解决的现实问题: 能够实现包括服务器后台、服务器数据库的开发。 市场价值: 熟练学习和掌握后,可满足企业开发的初中级需求。 |
2.Golang网络编程实战 | 1.socket客户端编程 2.socket服务端编程 3.案例:并发的时钟服务器 4.案例:并发的回显服务器 5.实战:高并发网络聊天室 6.实战:分布式排序 7.实战:文件传输 8.实战:文件夹传输 |
||
3.RPC远程调用机制 | 1.RPC使用protocol buffers 2.RPC环境搭建 3.golang实现RPC远程调用 4.RPC-Server编写 5.RPC-Client编写 |
||
4.GRPC远程调用机制 | 1gRPC简介 2gRPC编写指南 3gRPC编译指南 4gRPC远程调用 5gRPC异步通信 6gRPC流通信 |
||
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高并发大数据搜索服务器开发 | ||
9.基于Golang轻量级TCP并发服务器框架实现 | 1基础路由模块 2全局配置 3消息封装 4多路由模式 5读写分离模型 6消息队列及多任务 7链接管理 8连接属性设置 |
||
10.TCP并发游戏服务器实战 | 1AOI兴趣点算法 2数据传输协议protocol buffer 3Proto3协议定义 4构建项目及用户上线 5世界聊天 6上线位置信息同步 7移动位置与AOI广播 8玩家下线 9模拟客户端AI模块 |
||
第四阶段前端开发 | 1.html5与css3 | html概述及基本结构 html标签及布局入门 css载入方式 css选择器 css属性入门 css基本布局演示 相对地址与绝对地址 列表及表单 盒子模型 css显示属性 css元素溢出 表格 定位 css权重 |
课程设计理念: html5/css/javascript是整个互联网页面的基石,学好他们打好基础非常的重要。 web服务是web服务的基石。 可掌握的核心能力: 1、可根据UI设计,开发web网站的前端页面; 2、PC端和移动端页面特效开发; 3、前端页面性能优化。 4.掌握web服务开发 可解决的现实问题: 1、开发常见Web网站的前端页面和移动端H5页面; 2、跟后台进行数据通信; 3、掌握当前市场流行的前后端分离的开发模式中所用的前端框架。 4.掌握web服务开发与对接前端 市场价值: 前端作为web网站开发的半壁江 |