这是我参与「第五届青训营 」伴学笔记创作活动的第13天,开始的开始除了准备学习相关的知识,还要规划好每天的日程。
昨天记录了RDBMS关键技术分析,今天做一些大项目知识的相关介绍。
回顾下昨天的知识,SQL引擎需要做查询解析、查询解析、查询执行以及存储引擎。 查询解析:SQL语言接近自然语言,入门容易。但是各种关键字、操作符组合起来,可以表达丰富的语意。因此想要处理SQL命令,首先将文本解析成结构化数据,也就是抽象语法树(AST)。 查询解析:SQL是一门表意的语言,只是说『要做什么』,而不说『怎么做』。所以需要一些复杂的逻辑选择『如何拿数据』,也就是选择一个好的查询计划。优化器的作用根据AST优化产生最优执行计划(Plan Tree)。 查询执行:根据查询计划,完成数据读取、处理、写入等操作。事务引擎:处理事务一致性、并发、读写隔离等 存储引擎:内存中的数据缓存区、数据文件、日志文件。
然后是对gin框架做一些简要的介绍。
- Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点
- 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的
net/http足够简单,性能也非常不错 - 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范
gin 框架中采用的路由库是基于httprouter做的,gin支持Restful风格的API,即Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化",是一种互联网应用程序的API设计理念:URL定位资源,用HTTP描述操作。在大项目中要用到文件上传,multipart/form-data格式用于文件上传,gin文件上传与原生的net/http方法类似,不同在于gin把原生的request封装到c.Request中。