0%
Go Web Frameworks
- Web框架分类
1 2 3 4 5 6
| # 运行性能: > 追求性能的框架很简洁,包含东西很少,一个路由一个MVC, 比如Gin
# 开发效率: > 封装很好,集成很多功能, 比如Beego
|
- Web框架选型
1 2 3
| 1. 对于中小型项目,开发效率往往是业务的第一需求, 任何领域做到第一名的产品基本上都有一个共性: 开发、迭代速度快 2. 好的框架要能区分清楚业务团队和架构团队的边界,什么应该是业务负责,什么应该是架构负责, 3. 架构是为加速业务发展而生,需要兼顾业务的开发效率和底层的性能效率
|
Go 语言特性
- Goroutine
1
| Goroutine设计,提供“一个请求一个协程”的请求模型.对比PHP的“一个请求一个进程”的模型,提升后端资源占用和调度负载。
|
- Runtime
1
| Go的Runtime机制让运行程序不再依赖各种环境和库
|
- compile
1
| Go提供交叉编译、数据结构、channel等语言级别提醒,让处理Web请求变得简单
|
First Step:
- net, net/http
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # Web Server > Web Server的本质,实际上就是接收、解析HTTP请求传输的文本字符,理解这些文本字符的指令,然后计算、在将返回值组织成HTTP响应的文本字符,通过TCP网络输出回去 > 是一个通过HTTP协议处理Web请求的计算机系统 - HTTP协议: 超文本传输协议 - HTTP Head: 描述一般是和业务无关与传输相关的信息(请求地址、编码格式、缓存时长) - HTTP Body: 描述的是与业务相关的信息 # net 库 > 对应OSI的TCP层
# net/http库 > 对应OSI的HTTP层, 解析HTTP消息体
# net/http 标准库源代码 > 阅读代码库的技巧: 库函数(function) > 结构定义(struct/class) > 结构函数(method) - 库函数: 这个库要提供的功能 - 结构定义: 这个库分为几个核心模块 - 结构函数: 每个核心模块应该提供的能力
|
- context
- router
- middleware
- encapsulation
- restart
Second Step:
- 面向接口编程
- 设计目录结构
- 命令行交互
- 定时任务
- 配置和环境
- 多输出日志
Third Step:
- 一体化、自动化
- 调试模式
- 进程、接口管理
- GORM
- 缓存服务
- 发布与维护
Fourth Step:
- 设计需求分析
- 技术方案设计
- 网站统计服务
- 一站式前后台
毒鸡汤
参考资料