# Golang 开发技能图谱
## Go 语言环境搭建
- Go 安装
- GOPATH 与工作空间
- Go 命令
- Go开发工具
## GO 语言编程基础
- 关键词和语法(Language Syntax)
- 数据类型(Arrays, Slices and Maps)
- 流程控制(if/else,for/range)
- Go 函数(Function)
- 面向对象(Methods, Interfaces and Embedding)
- 包处理(Packaging and Exporting)
- Go 指针(Using Pointers)
- 程序测试(Testing and Debugging)
- 对象合成(Composition)
- 错误处理(Error Handling)
- 标准库(Standard Library)
- 反射(Reflection)
## 并发编程
- Go 并发基础(Concurrency, Race Conditions and Channels)
- 并发模式(Concurrency Patterns)
## Go Web 编程
- Web基础
- Web工作方式
- Go 搭建一个简单的web服务
- Go 的 HTTP 包详解
- 表单
- 处理表单的输入
- 验证表单的输入
- 预防跨站脚本
- 防止多次递交表单
- 处理文件上传
- 数据库
- database/sql接口
- 使用MySQL数据库
- 使用PostgreSQL数据库
- 使用beedb库进行ORM开发
- NOSQL数据库操作
- Session 和数据存储
- Session 和 Cookie
- Go 如何使用 Session
- Session 存储
- 预防 Session 劫持
- 文本文件处理
- XML 处理
- JSON 处理
- 正则处理
- 模板处理
- 文件操作
- 字符串处理
- Web服务
- Socket 编程
- WebSocket
- REST
- RPC
- 安全与加密
- 预防 CSRF 攻击
- 确保输入过滤
- 避免 XSS 攻击
- 避免 SQL 注入
- 存储密码
- 加密和解密数据
- 国际化和本地化
- 设置默认地区
- 本地化资源
- 国际化站点
- 错误处理,调试和测试
- 错误处理
- 使用GDB调试
- Go怎么写测试用例
- 部署与维护
- 应用日志
- 网站错误处理
- 应用部署
- 备份和恢复
- 如何设计一个Web框架
- 项目规划
- 自定义路由器设计
- Controller 设计
- 日志和配置设计
- 实现博客的增删改
- 扩展Web框架
- 静态文件支持
- Session 支持
- 表单支持
- 用户认证
- 多语言支持
- pprof支持
## Go 应用
- Docker
- Bee Go
- NSQ
- NewSQL
## Go 实战案例
有疑问加站长微信联系(非本文作者)