专业编程基础技术教程

网站首页 > 基础教程 正文

GO语言全栈大纲

ccvgpt 2024-11-24 12:25:24 基础教程 1 ℃


GO语言全栈大纲

GO语言全栈大纲

第一阶段----Go语言开发入门实战 1.Go语言介绍及开发环境搭建

2.基础类型

3.运算符

4.流程控制

5.函数

1.Go语言是什么

2.Go语言优势

3.Go语言适合来做什么

4.Go语言安装和设置

5.标准命令概述

6.第一个Go语言程序

1.变量的命名规则

2.变量的声明

3.变量的初始化

4.变量的赋值

5.匿名变量

6.基础数据类型

7.字面常量

8.常量定义

9.iota枚举

10.类型转换

11.类型别名

12.fmt包的格式化输出

1.算术运算符

2.关系运算符

3.逻辑运算符

4.位运算符

5.赋值运算符

6.其他运算符

7.运算符优先级

1.选择结构

2.循环语句

3.跳转语句


6.工程管理

7.复合类型

8.面向对象编程

9.指针与方法

10.异常处理

1.定义格式

2.自定义函数

3.递归函数

4.函数类型

5.匿名函数与闭包

6.延迟调用defer

7.获取命令行参数

8.作用域(局部变量,全局变量)

1.工作区

2.包

3.测试案例

4.GOPATH设置

5.编译运行程序

6.Go get,test,install等等 的使用

7.go语言包管理(godep/glide/govender)

1.指针

2.数组

3.Slice

4.map

5.结构体

1.封装与继承

2.接口的实现

3.Interface{}数据类型

4.类型断言

5.多态的特性

6.反射

1.对象生命周期和匿名函数

2.指针数组

3.指向指针的指针

4.指针与函数的副本机制

5.带有指针接收器的方法


11.文件处理

12 go标准库开发

13 综合文件处理

14 开发实战

1.error接口

2.panic错误

3.recover

1.字符串处理

2.字符串转换

3.正则表达式

4.Json处理

5.文件操作

6.案例:拷贝文件,文件切割归并

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.调试包

1.处理JSON文件

2.处理XML文件

3.处理纯文本文件

4.处理二进制文件

5.创建ZIP归档文件

6.创建可压缩tar包

7.解开ZIP归档文件

8.解开tar归档文件

1.黑白棋项目实战

2.大数据文件处理实战


第二阶段----Linux与Go语言高级编程 1 Linux命令

2 LinuxShell

3 Linux开发与调试工具

4 系统I/O操作

5 多进程开发

6 多进程同步与通信

1.Linux下的目录结构

2.工作日程应用命令

3.Ubuntu下的软件安装和卸载

1.Linux下的目录结构

2.工作日程应用命令

3.Ubuntu下的软件安装和卸载

4.base shell

5.base shell脚本常规编程

6.base shell脚本实战

1.Go语言Linux下IDE开发工具安装与配置

2.文件描述符,虚拟地址空间

3.Linux系统IO函数

4.阻塞和非阻塞的概念

1.OS包

2.文件属性相关函数

3.链接相关概念及函数

4.目录操作相关概念及函数

1.进程相关的概念

2.进程操作相关函数

3.孤儿进程

4.僵尸进程

5.进程回收

1.进程共享内存通信

2.进程匿名管道通信

3.进程命名管道通信

4.进程信号量通信

5.进程读写文件通信

6.进程互斥量通信

7.进程网络通信


7 协程序与通信

8 goroutine协程与调度器

9 channel管道与CSP同步机制

10 高并发原理分析

11 高并发拓展

12 原子操作分析

1.互斥量

2.死锁以及解决方案

3.读写锁

4.条件变量

5.条件变量实现生产消费者模型

6.线程同步

7.Sync包

1.Goroutine协程的概念

2.Goroutine调度器机制

3.协程的高并发编程

1.CSP通讯顺序同步机制

2.channel管道及特性

3.缓存channel与非缓存channel

4.并发的循环

5.select

1Mutex的实现、扩展功能和坑。

2RWMutex的实现、扩展功能和坑。

3Waitgroup的实现、坑

4Cond的使用和坑

5Once的实现和坑,单例的Eager/Lazy实现

6Pool的坑, net.Conn的池

7Map的实现、应用场景

8Context的一些问题

1可重入锁

2信号量

3SingleFlight及应用

4ErrGroup

5自旋锁

6文件锁

7并发Map的多种实现


13 channel实战

14 golang内存模型分析

15 线程安全数据结构设计与实战

第三阶段----Go语言网络与服务器开发 1 网络协议与网路编程

1原子操作的实现

2操作的数据类型

3提供的函数

4通用Value类型

5.扩展的原子操作库

1.常见易犯错的channel使用场景

2.三大使用场景

3.Or-done模式的三种实现

4.扇入

5.扇出

6.Tee

7.Pipeline

8.流式处理

1.堆,栈,静态区,代码区

2.init函数

3.goroutine

4.channel

5.Mutex/RWMutex

6.Waitgroup

7.Once

8.atomic

1.文件线程安全实战

2.并发大数据搜索实战

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状态转换


2 Golang网络编程实战

3 RPC远程调用机制

4 GRPC远程调用机制

5 高并发服务时间轮

6 高并发服务器框架设计

15.2MSL概念

16.端口复用方法

17.半关闭

18.socket网络编程

1.socket客户端编程

2.socket服务端编程

3.案例:并发的时钟服务器

4.案例:并发的回显服务器

5.实战:高并发网络聊天室

6.实战:分布式排序

7.实战:文件传输

8.实战:文件夹传输

1.RPC使用protocol buffers

2.RPC环境搭建

3.golang实现RPC远程调用

4.RPC-Server编写

5.RPC-Client编写

1gRPC简介

2gRPC编写指南

3gRPC编译指南

4gRPC远程调用

5gRPC异步通信

6gRPC流通信

1.时间轮原理

2.时间轮Golang实现

3.时间轮的测试和使用

1.服务器框架基础类IServer实现

2.服务器框架消息接口设计与实现

3.服务器框架数据包接口设计与实现

4.服务器框架网络连接接口设计与实现

5.服务器框架网络连接管理者接口设计与实现

6.服务器框架网络请求接口设计与实现

7.服务器框架网络请求路由设置


7 AOI通信广播机制

8 高并发服务器框架设计

9 基于Golang轻量级TCP并发服务器框架实现

10 TCP并发游戏服务器实战

第四阶段----前端开发 1 html5与css3

1.AOI算法实现

2.基于AOI算法的区域广播

3.全局广播

4.AOI位置信息管理

Golang高并发大数据搜索服务器开发

1基础路由模块

2全局配置

3消息封装

4多路由模式

5读写分离模型

6消息队列及多任务

7链接管理

8连接属性设置

1AOI兴趣点算法

2数据传输协议protocol buffer

3Proto3协议定义

4构建项目及用户上线

5世界聊天

6上线位置信息同步

7移动位置与AOI广播

8玩家下线

9模拟客户端AI模块

html概述及基本结构

html标签及布局入门

css载入方式

css选择器

css属性入门

css基本布局演示

相对地址与绝对地址

列表及表单

盒子模型

css显示属性

css元素溢出

表格

定位


2 JavaScript

3 jQuery

4 前端框架

5 nodejs

css权重

变量

数据类型及基本语法规范

函数

条件语句

获取元素方法及操作元素

事件属性及匿名函数

综合实例

数组及操作方法

循环语句

字符串及操作方法

调试程序的方法

定时器

变量作用域

封闭函数

jquery选择器

jquery样式操作

绑定click事件

jquery动画

jquery特殊效果

jquery链式调用

jquery属性操作

jquery循环

jquery事件

表单验证

事件冒泡及事件委托

Dom操作

javascript对象

json和ajax请求

1、vue.js简介及基本概念

2、Vue.js模板语法

3、Class与Style绑定、条件渲染、列表渲染、事件处理、表单输入绑定、过滤器、实例生命周期、数据交

4、vue组件、vue单文件组件、vue组件开发自动化工具、生成vue单页面应用项目

1. ES6介绍

2. ES6变量定义

3. ES6解构赋值

4. ES6函数扩展

5. ES6class语法


6 web服务开发

第五阶段----数据库与后端框架开发 1 关系型数据库-mysql

2 no-sql缓存型数据库-redis

6. Nodejs发展历史

7. Nodejs异步IO机制

8. Nodejs功能介绍

9. npm包下载

10.全局变量

11.path模块

12.fs模块

13.fs模块reader流

1web工作方式

2Go搭建一个简单的web服务

3 Go如何使得web工作

4 Go的http包详解

5.表单

5.1 处理表单的输入

5.2 验证表单的输入

5.3 预防跨站脚本

5.4 防止多次递交表单

5.5 处理文件上传

5.6 小结

6.session和数据存储

6.1 session和cookie

6.2 Go如何使用session

6.3 session存储

6.4 预防session劫持

6.5 小结

0.sql语句实战

1.mysql表的约束

2.mysql中出现的中文乱码问题

3.mysql函数库连接数据库

4.mysql API访问数据库

5.使用基础类API实现mysql客户端工具

6.预处理类API访问mysql数据库

7.使用api修改mysql事务特性

8.sql语句注入实战


3 NoSQL-MongoDB数据库实战

4 git

5 分布式文件系统fastDFS

6 Nginx与反响代理部署

1.key-value存储方式特性

2.redis的环境安装和redigo驱动安装

3.redis中key相关操作

4.redis中string相关操作

5.redis中list相关操作

6.redis中hash相关操作

7.redis中set和sort-set相关操作

1.NoSQL 简介

2.MongoDB 简介

3.MongoDB 概念解析

4.MongoDB 连接

5.MongoDB 创建数据库6.

6.MongoDB 删除数据库

7.MongoDB 创建集合

8.MongoDB 删除集合

9.MongoDB 插入文档

10.MongoDB 更新文档

11.MongoDB 删除文档

12.MongoDB 查询文档

13.MongoDB 条件操作符

14.MongoDB $type 操作符

15.MongoDB Li.Mit与Skip方法

16.MongoDB 排序

17.MongoDB 索引

18.MongoDB 聚合

19.MongoDB 复制(副本集)

20.MongoDB 分片

21.MongoDB 备份与恢复

22.MongoDB 监控

23.MongoDB 关系

24.MongoDB 数据库引用

25.MongoDB ObjectId

26.MongoDB .Map Reduce

27.MongoDB 全文检索

1.代码版本控制工具git的常用指令

2.git的团队开发组建

3.git代码仓库的创建与管理

1.分布式概念

2.tracker、storage、client相关配置

3.fastDFS中go的api封装


7 beego框架

8 beego框架实战

9 Gin框架

8 Gin框架实战

1.Nginx环境安装

2.Nginx环境配置

3.Nginx反响代理搭建

4.Nginx搭建负载均衡

1.beego的框架环境搭建

2.controller设计:

参数配置、

路由设置、

session控制、

多种格式数据输出、

请求数据处理

3.model设计:

ORM使用、

CRUD操作、

高级查询、

原生SQL查询

4.view设计:

模板语法指南、

模板处理

租房项目实战

1.Gin框架概述

2.AsciiJSON

3.HTML 渲染

4.HTTP2 server 推送

5.JSONP

6.Multipart/Urlencoded 绑定

7.Multipart/Urlencoded 表单

8.PureJSON

9.Query 和 post form

10.SecureJSON

11.XML/JSON/YAML/ProtoBuf 渲染

12.上传文件

13.单文件

14.多文件

15.不使用默认的中间件

16.从 reader 读取数据

17.优雅地重启或停止

18.使用 BasicAuth 中间件

19.使用 HTTP 方法

博客项目实战


第六阶段----容器编程 1 虚拟化VS容器化

2 Docker

3 Kubernetes(k8s)实战

第七阶段----微服务与分布式 1 微服务分布式编程理论

2 微服务特性

3 protobuf通信协议

4 服务发现

1.虚拟化基础知识

2.常见虚拟化种类及技术实现

3.容器化基础知识

4.虚拟化 VS 容器化

1.Docker快速入门

2.Docker镜像管理

3.Docker容器管理

4.Docker数据管理

5.Docker网络管理

6.Docker集群管理

1.Kubernetes设计架构

2.Kubernetes集群与部署

1. 高可用设计

2. 负载均衡

3. 集群

1.微服务与微服务框架介绍

2.单体式服务特点

3.微服务架构的特性

4.微服务架构的缺点

1.protobuf简介

2.数据交互的格式比较

3.protobuf的优点

4.protobuf的安装


5 go-mirco微服务框架

6 高阶分布式理论

7 RESTful

8 ETCD与分布式高并发

1.什么是服务发现

2.Consul的环境与安装

3.Consul代理

4.Consul Server

5.Consul Client

6.注册服务

7.查询服务

8.Consul架构

1.Micro介绍与安装编译

2.创建微服务

3.启动consul进行监管

4.微服务的srv端操作

5.微服务handler编程

6.微服务与gRPC

1.进程与线程

2.并发

3.锁

4.并行

5.集群

6.状态特征

7.系统重发与幂等性

8.硬件异常

9.CAP理论

10.CAP理论澄清

12.2PC

13.3PC

14.心跳检测

15.高可用设计

16.容错性

17.负载均衡

18.全局ID生成

19.哈希取模

20.一致性哈希

21.路由表

22 数据拆分

1.REST概念

2.RESTful的实现

3.RESTful接口设计


8 消息中间件

9 分布式组件zookper

10 分布式日志组件kafka与Kibana

11 搜索引擎Elasticsearch与Solr

0ETCD介绍

1.ETCD实现服务发现

2.ETCD实现分布式配置

3.ETCD实现分布式锁,Mutex, RWmutex实战

4.ETCD实现分布式栅栏

5.ETCD实现分布式leader选举

6.ETCD实现分布式队列

7.ETCD实现分布式优先队列

8.ETCD实现分布式STM

9.其它分布式并发库

1.RabbitMQ

2.go-nats

3.NSQ

4.消息中间件六大模式

一对一传输

一对多传输

多对多传输

任务队列模式

发布订阅模式

路由模式

交换机模式

1.zookper简介

2.Zookeeper 概述

3.Zookeeper 基础

4.Zookeeper 工作流

5.Zookeeper leader选举

6.Zookeeper 安装

7.Zookeeper CLI

8.Zookeeper API

9.Zookeeper 应用程序"

1.Apache Kafka 概述

2.Apache Kafka 基础

3.Apache Kafka 集群架构

4.Apache Kafka 工作流程

5.Apache Kafka 安装步骤

6.Apache Kafka 基本操作

7.Apache Kafka 简单生产者示例

8.Apache Kafka 消费者组示例

9.kibana分布式可视化


12 分布式综合实战

13 golang搜索引擎框架yinchengSearch实现

14 微服务项目设计

15 微服务项目实战-十亿级营销实战

1.Elasticsearch填充

2Elasticsearch版本之间迁移

3Elasticsearch API约定

4Elasticsearch文档API

5Elasticsearch搜索API

6Elasticsearch聚合

7Elasticsearch索引API

8Elasticsearch集群API

9Elasticsearch查询DSL

10Elasticsearch映射

11Elasticsearch分析

12Elasticsearch模块

13.solr延申

mapReduce编程实战

raft(kvraft)编程实战

Fault-tolerant Key/Value服务实战

Sharded Key/Value服务实战

golang搜索引擎框架yinchengSearch实现

1.微服务拆分原则

2.微服务项目流程与接口设计

3.Docker-compose单机集群

项目简介:基于腾讯云广告平台。根据关键字定位QQ群,导出QQ数据,进行邮箱群发或者导入腾讯营销系统进

行弹窗广告。高峰期数万个用户同时访问,搭建分布式结构解决客户需求。并且给客户定制系统。

项目描述:项目采用分布式结构设计。

1.web接口,基于ETCD实现了备胎模式与集群选举模式建立负载均衡(一台服务器挂掉,选举一位服务器当作

管理服务器)

2.对于17亿数据建立索引与算法优化,实现0.01秒1MB内存检索17亿数据。

3.基于golang搜索引擎riot,以及分词系统,实现关键字快速搜索

4.基于redis与go-fastDFS搭建缓存系统

5.设计通用数据库接口—导出MongoDB ,mysql,redis

6.设计通用消息中间件接口—rabbitMQ.NSQ,kafka,

7.设计加密与权限管理充值系统。

8.基于ETCD的服务发现与维护系统。

9.实现接口,负载均衡算法切换。

10.分布式数据采集系统,广度遍历提取一个网站上的所有QQ。

11.接入分布式日志。


第八阶段----密码学开发 1 常用密码算法

2 常用密码协议

3 密码与社会工程学

4 信息安全改进实战

第九阶段----后端综合项目实战 1 分布式日志系统

2 自动驾驶图像识别后端微服务集群

1.对称加密体系

2.非对称加密体系

3.数字签名

4.数据机密性

5.身份鉴别

6.数据完整性

7.国密开发

1.密码学安全协议

2.数字证书认证(CA)中心

3.公钥基础设施PKI系统

实战密码字典与破解ssh,与mysql数据库

1微服务防纂改安全实现

2微服务防监听安全实现

3微服务身份鉴定安全实现

项目简介

根据业务需求进行项目架构设计和开发,实现多产品线的业务日志收集,并且实现业务日志的可视化展示和检

索。

掌握技能

1、服务端程序架构设计;

2、Go语言开发服务端agent;

3、etcd;

4、kafka;

5、ElasticSearch;

6、Klbaba;

自动驾驶图像识别分布式后端系统

运行环境+ golang + docker + grpc + protobuf + beego + MySQL+tensorflow+redis+go-

fastDFS


3 大数据分布式精准营销与智能推荐系统


项目简介:解决公司数千汽车的在线自动识别任务,go的效率远大于python,基于golang分布式提升现有业

务性能。

项目描述:本系统作为自动驾驶的模块系统 ,提供图像识别计算任务。基于100台GPU服务器,实现数千实时

业务识别。

并且可以快速人为后台标注数据,提升模型识别率。

1. 基于redis与gofastDFS实现缓存系统+图片保存系统

2. 基于tensorflow GPU Go实现图像识别调用

3. 基于ETCD实现服务发现与选举

4. 基于GRPC与http提供两种接口

5. 提供模型的下载更新—TCP,FTP

6. 后台人为标注与训练更新模型

7. 消息中间件解决负载均衡

8. 基于密码学实现防范黑客攻击

9. 接入分布式日志系统

项目简介:基于QQ号,手机号,邮箱的标签系统,基于标签智能推荐,导出精准数据,进行商业营销。并且给

客户定制系统。

运行环境: golang + docker + grpc + protobuf + beego + redis + fastDFS +

rabbitMQ+riot+ETCD+mongoDB+NSQ+goFastDFS

项目描述:项目基于分布式设计

1. 基于mongoDB数据库实现标签系统,基于Mongodb集群

2. web接口实现数据导入,基于ECTD与消息中间件实现负载均衡,选举模式。

3. web数据采集基于分布式设计,redis队列实现,可定制搜索层数,深度遍历,广度遍历。

4. 导入数据接口,支持txt,xls,doc,pdf,mdb,常见数据格式

5. 导出数据接口,支持json,txt,xls,doc,pdf,mdb,常见数据格式

6. 外接短信系统,邮件系统。

7. 设计通用数据库接口—导出MongoDB ,mysql,redis

8. 设计通用消息中间件接口—rabbitMQ.NSQ,kafka,

9. 基于redis与go-fastDFS搭建缓存系统

10. 标签系统,统计词频与分词处理,建立标签。

11. 接入分布式日志系统

12. 权限管理与充值系统。加密GRPC调用,调用确保签名正确才能调用,支持支付宝微信支付。


  • GO语言全栈大纲
    • 第一阶段----Go语言开发入门实战
      • 1.Go语言介绍及开发环境搭建
      • 2.基础类型
      • 3.运算符
      • 4.流程控制
      • 5.函数
      • 6.工程管理
      • 7.复合类型
      • 8.面向对象编程
      • 9.指针与方法
      • 10.异常处理
      • 11.文件处理
      • 12 go标准库开发
      • 13 综合文件处理
      • 14 开发实战
    • 第二阶段----Linux与Go语言高级编程
      • 1 Linux命令
      • 2 LinuxShell
      • 3 Linux开发与调试工具
      • 4 系统I/O操作
      • 5 多进程开发
      • 6 多进程同步与通信
      • 7 协程序与通信
      • 8 goroutine协程与调度器
      • 9 channel管道与CSP同步机制
      • 10 高并发原理分析
      • 11 高并发拓展
      • 12 原子操作分析
      • 13 channel实战
      • 14 golang内存模型分析
      • 15 线程安全数据结构设计与实战
    • 第三阶段----Go语言网络与服务器开发
      • 1 网络协议与网路编程
      • 2 Golang网络编程实战
      • 3 RPC远程调用机制
      • 4 GRPC远程调用机制
      • 5 高并发服务时间轮
      • 6 高并发服务器框架设计
      • 7 AOI通信广播机制
      • 8 高并发服务器框架设计
      • 9 基于Golang轻量级TCP并发服务器框架实现
      • 10 TCP并发游戏服务器实战
    • 第四阶段----前端开发
      • 1 html5与css3
      • 2 JavaScript
      • 3 jQuery
      • 4 前端框架
      • 5 nodejs
      • 6 web服务开发
    • 第五阶段----数据库与后端框架开发
      • 1 关系型数据库-mysql
      • 2 no-sql缓存型数据库-redis
      • 3 NoSQL-MongoDB数据库实战
      • 4 git
      • 5 分布式文件系统fastDFS
      • 6 Nginx与反响代理部署
      • 7 beego框架
      • 8 beego框架实战
      • 9 Gin框架
      • 8 Gin框架实战
    • 第六阶段----容器编程
      • 1 虚拟化VS容器化
      • 2 Docker
      • 3 Kubernetes(k8s)实战
    • 第七阶段----微服务与分布式
      • 1 微服务分布式编程理论
      • 2 微服务特性
      • 3 protobuf通信协议
      • 4 服务发现
      • 5 go-mirco微服务框架
      • 6 高阶分布式理论
      • 7 RESTful
      • 8 ETCD与分布式高并发
      • 8 消息中间件
      • 9 分布式组件zookper
      • 10 分布式日志组件kafka与Kibana
      • 11 搜索引擎Elasticsearch与Solr
      • 12 分布式综合实战
      • 13 golang搜索引擎框架yinchengSearch实现
      • 14 微服务项目设计
      • 15 微服务项目实战-十亿级营销实战
    • 第八阶段----密码学开发
      • 1 常用密码算法
      • 2 常用密码协议
      • 3 密码与社会工程学
      • 4 信息安全改进实战
    • 第九阶段----后端综合项目实战
      • 1 分布式日志系统
      • 2 自动驾驶图像识别后端微服务集群
      • 3 大数据分布式精准营销与智能推荐系统

Tags:

最近发表
标签列表