07|目标:站在巨人肩膀,你的理想框架到底长什么样?
叶剑峰
该思维导图由 AI 生成,仅供参考
你好,我是轩脉刃。
在前面几节课,我们使用 Golang 的 net/http 库实现了一个带有控制器、路由、中间件等功能的 Web 框架,凡事都在向完成一个自定义 Web 框架的方向发展。
在开发的过程中,不知道你有没有意识到,其实框架中的某个模块,比如说路由,实现的方法不止一种,每一个模块要实现的功能也各有不同,所以用哪一种方法来实现,以及要实现哪些功能,都是一种选择。
而每种选择的背后,其实都是方向问题,因为这些选择共同构成了一个框架的倾向性,也就是设计感。你要明白,我们的最终方向是:实现我们想要的理想框架。这就好比驾驶汽车的时候,作为司机,你要对目的地有明确清晰的认识。
那理想框架到底是什么样子的?这个终极问题,闭门造车是无法得到答案的,所以今天,我想让你先从埋头搭建 Web 框架的视角中暂时跳出来,站在更高的角度来纵观全局。
开源框架怎么比较
我们先进入开源世界,对比开源世界中现有的各种 Web 框架,理解一下它们的实现选择和意图。
Golang 语言的 Web 开发有很多的框架可以用,但是选择太多也不是好事,因为在技术群里我总会遇到群友有这些疑问:哪款框架比较好呢?我要选择哪款框架呢?这些疑问至少暴露出两个问题:一不知道如何比较开源框架、二不了解这些开源框架,那么接下来我们一一解答。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入比较了三款 Golang Web 框架:Gin、Beego、Echo,并提出了衡量框架的五个标准:核心模块、功能完备性、框架扩展性、框架性能、文档完备度及社区活跃度。在对比分析中,Beego 框架被认为是一个功能完备性很强的框架,适用于快速开发的场景。Echo 框架则更适合个人开发者,注重扩展性和框架性能。而Gin 框架则适合企业级团队使用,具有较高的社区活跃度和功能完备性。总结指出,选择框架应该根据真正的业务需求,选取最合适的框架。文章通过分析框架的特点和适用场景,为读者提供了选择框架的思路和方法。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 Web 框架》,新⼈⾸单¥59
《手把手带你写一个 Web 框架》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- 友用的是 beego 同事一开始介绍的,然后我就直接使用了,其实对于他自带的ORM 个人用的不是很习惯 很有可能是之前接触 laravel mybatis的缘故 一开始上手 beego的ORM不是很喜欢 所以及时用的是beego还是换了各种ORM体验 比如 ent 或者 gorm 所以我个人是比较喜欢那种 可扩展 自由度高的框架
作者回复: 嗯,大多数的程序员都会喜欢扩展高的框架,但是一个团队一定就一套路子,否则就各种乱了。框架一定程度上说就是牺牲自由度换规范化的。
2021-12-032 - 王仔秋秋糖iris框架也非常不错的
作者回复: 是的,go有很多优秀开源框架
2021-10-152 - 王阿觉Go zero也很不错
作者回复: 是的,go有很多优秀的开源框架
2021-10-151 - 星期三。看文章的描述,beego和echo好像中间节点不能存放handler,那 /user/name 和 /user/name/bob 这两个路由底层结构是怎么样的
作者回复: beego的底层结构也是一个树,https://github.com/beego/beego/blob/7ec9cfdb4d0a21e8bb5fb0aa2c9c0e3700e4bd15/server/web/tree.go#L201 按照segment建立这个树。name这个节点也会存放handler的,在beego代码的tree结构中,leafInfo这个结构里面
2021-12-07 - 党其实没啥好选择的 会啥用啥 都不会就看有人带没有了2022-06-07
- Charles框架选择维度衡量,web框架前三名beego、echo、gin从路由,context,middleware等核心内容进行比较2022-03-17
- 骑着🚀看银河iris 值得分析和学习2022-02-21
收起评论