包含标签 gofast 的文章

GoFast(三)| 事件生命周期

开发框架要好用,可扩展性、赋予开发者的介入能力很重要。为此我们设计了一套事件机制,让开发人员能够自由介入每次请求的全生命周期,通过Context携带的资源在事件处理函数间自由翱翔。 生命周期 目前事件设计的还很不合理,跟其它模块关联比较多。思路是这样,以后慢慢调整。 Incoming Request │ └─▶ Routing │ └─▶ ………

阅读全文

GoFast(二)| 路由核心基于RadixTree

很多场景中,高效的数据结构都离不开树状结构,什么完全二叉树、红黑树、Radix树、图等好多名词都是具备子孙节点的树状结构,自由灵活的节点内容更让使用者扑朔迷离。一般树都是通过链表来实现,也有通过数组实现的;链表实现自由灵活相对简单,数组实现比较复杂而且不能随意变更节点数量,有其局限性,但是数组实现的内存占用更小更高效。GoFast将采用数……

阅读全文

GoFast(一)| 设计概览

在这里我对GoFast的主要设计思路做一些概要介绍。 框架核心流程 源代码开始的地方:gofast/fst/fst.go 说明:以后我们也把这些后台WebServer叫做Application,简称App。 CreateServer 每个应用都要从这里开始,在这里我们定义了一个配置结构AppConfig,将来所有的配置参数都放在这里面,配 ………

阅读全文

GoFast(零)| 为什么写这个WEB Framework

当前Go语言生态中的WEB开发框架已经有很多了,比如 gin、beego、iris 等,各有各的特点,经过这几年的沉淀已经足够优秀了。那我还不拿来主义直接用,还要再造个轮子干啥呢?大致是因为这几点考虑: gin足够简洁高效,但太简了,我需要继续封装点东西,方便后期开发 beego特性丰富,不过封装的层级太多,代码量大看着头晕,封装过多性能 ………

阅读全文