阶段1-----------------------------------------------------------------------------------------------------------
学习目标1
- 了解Go语言中包的含义;
- 安装和使用第三方的包;
- 学会处理Go语言项目中包的依赖问题;
- 熟悉Go语言中的常用网络IO和磁盘IO操作;
- 学会编写命令行工具和简单的项目;
学习目标2
- 学会编写单元测试;
- 了解网络基础原理;
- 了解TCP/UDP协议、Web开发原理;
- 熟悉并使用net/http标准库;
- 熟悉常用的数据协议;
学习目标3
- 熟悉Go语言中的结构体;
- 理解Go语言中的面向对象编程;
- 使用面向对象思维方式进行Go语言编程,来解决实际问题;
学习目标4
- 熟悉Go语言中的接口;
- 掌握面向接口编程;
- 理解反射存在的意义及反射原理;
- 学会使用反射解决实际问题;
解锁技能
- 掌握大型Go项目的目录组织结构,掌握基本的编程规范;
- 为自己的项目编写测试用例;
- 具备编写大型交互式程序的能力;
- 具备独立编写Web应用程序框架的能力;
- 熟悉并了解目前业界先进的数据协议;
- 深入理解面向对象编程思想和反射的原理机制;
- 理解并掌握面向接口编程的思维方式;
- 能够编写出一定规模的Go语言程序解决现实问题;
阶段2-----------------------------------------------------------------------------------------------------------
学习目标1
- 理解并发和并行;
- 深入理解Go语言的并发编程机制;
- 理解goroutine调度模型;
- 深入理解channel;
- 使用goroutine和channel实现并发编程;
- 深入理解context;
- 使用互斥锁、读写锁实现线程安全;
学习目标2
- 熟悉MySQL数据的基本使用;
- 使用Go操作MySQL数据库及ORM的使用;
- 熟悉Redis的基本使用;
- 熟练使用Go语言操作Redis;
- 掌握分布式实时消息平台-NSQ;
解锁技能
- 深入理解Go的并发模型,掌握Go核心的并发编程技巧;
- 可以开发出可靠的高并发程序;
- 掌握业界主流数据库、缓存、消息队列程序的使用,能够完成项目的架构设计;
阶段3-----------------------------------------------------------------------------------------------------------
Web开发方向:个人博客项目
- gin框架介绍;
- RESTful 风格API介绍;
- MVC模式与MVVM模式介绍;
- gin路由;
- gin模板与渲染;
- gin表单提交与上传文件;
- gin中间件;
- 项目实战(博客系统/问答系统);
- 文章列表展示功能;
- 文章详情页功能;
- 发表文章功能;
- 文章评论功能;
- 性能分析和压力测试;
后端开发方向:日志收集系统
- etcd介绍;
- 模块划分与api接口设计;
- 收集客户端开发;
- 测试与运行;
- 日志收集后台开发;
- 测试与运行;
- Kafka介绍;
- kafka搭建与测试;
- 生产与消费代码示例;
- 日志检索方案设计;
- 日志transfer子系统开发;
- Elastic Search搭建;
- kibana搭建;
- 系统整合和测试;
后端开发/架构:微服务架构
- 微服务架构介绍;
- 微服务框架Go Micro介绍;
- 网关;
- 配置中心;
- RPC;
- protobuf协议;
- 实战案例;
解锁技能
1,能够使用Go语言开发Web项目,如在线商城、问答网站、新闻站点等,升级为Go语言全栈开发工程师。
2,能够根据业务需求,设计并开发出大规模、高并发的服务端程序,升级为服务端开发工程师、服务端开发架构师。
3,掌握微服务架构设计与实现
项目实战
1、实战项目:图书管理系统;
2、实战项目:配置库开发;
3、实战项目:日志库开发;
4、实战项目:海量用户聊天室开发;