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:
- 设计需求分析
 
- 技术方案设计
 
- 网站统计服务
 
- 一站式前后台
 
毒鸡汤
参考资料