作者Tips:毕业近两年时间自己主要是做golang web后端开发工作,接触到的框架也是gin gorm居多,所以在框架准备方面,读者可根据自己的项目背景做合理的准备。
gin,gorm框架
问题1.你们项目的架构是什么?基于什么框架?
答:项目B/S架构,用到gin,gorm框架。
问题2.谈谈B/S架构
答:B/S架构(Browser/Server)是指浏览器/服务器架构,是一种分布式计算架构,它将应用程序的用户界面和数据存储分离,用户界面运行在客户端的浏览器上,数据存储在服务器端,这样就可以更加高效地管理数据,提高系统的可扩展性。
B/S架构优点:1.便于维护,只需要在服务器端进行修改就可以更新整个系统;2.可以跨平台,只要客户端支持浏览器,就可以访问系统;3.可以支持多用户访问,可以同时支持多个用户访问系统。
B/S架构缺点:1.客户端依赖于网络,如果网络不稳定,就会影响使用体验;2.安全性较差,由于数据传输是通过网络进行的,因此容易受到攻击;3.性能受限,由于客户端和服务器端的数据传输是通过网络进行的,因此会受到带宽的限制。
问题3.gin的架构设计是什么?什么场景下适用于gin框架?你还了解其他框架吗?
答:Gin是一个用Go语言编写的Web框架,它提供了一系列的API,可以帮助开发者快速构建Web应用,并且提供了灵活的路由功能,可以帮助开发者快速实现路由规则的配置。此外,Gin还提供了多种实用的功能,比如中间件、模板引擎等,可以帮助开发者更加高效地开发Web应用。追求灵活快速搭建项目适合用gin框架。gin框架相比其他框架相对轻量且高性能,还了解iris,beego框架。
问题4.为什么说gin轻量且高性能?
答:Gin的轻量和高性能主要来源于其精简的架构设计,它将Web应用的核心功能模块化,使得开发者可以根据需要来自由组合这些模块,从而更加高效地实现Web应用的开发,而且Gin使用Go语言开发,可以更好地利用Go语言的高性能特性,从而提高Web应用的性能。
问题5.说说gin,iris,beego框架的优缺点?
答:Gin框架的优点是采用Go语言开发,可以更好地利用Go语言的高性能特性,从而提高Web应用的性能,可扩展性强,简单易用;缺点是功能比较单一,没有提供更多的辅助工具。不支持多核心,没有更多的特性,可能会出现资源泄漏的情况。
Iris框架的优点是提供了更多的功能,比如路由守卫、安全验证等,可以帮助开发者更加安全可靠地开发Web应用;缺点是由于提供了更多的功能,可能会导致应用的性能有所下降。
Beego框架的优点是提供了更多的辅助工具,可以帮助开发者更加快速地完成Web应用的开发;缺点是由于采用了模块化的架构,可能会导致应用的维护和扩展比较困难。
问题6.gin框架在什么情况下会出现资源泄漏?
答:一般情况下,Gin框架在使用不当的情况下可能会出现资源泄漏,比如在请求处理过程中分配了大量内存,但是没有及时释放,从而导致系统资源的浪费。例如:在不正确使用请求上下文或者不正确关闭连接池等情况下也会出现资源泄漏的情况。因此,在开发Gin应用时,应该注意资源的管理,避免出现资源泄漏的情况。
问题7.gin框架的路由规则配置有什么特殊之处吗?
答:Gin框架的路由规则配置更加灵活,可以更好地满足开发者的需求。它支持多种路由规则的配置,比如可以指定路由的HTTP方法、路径参数等,从而更加精细地控制Web请求的处理流程。
问题8.iris 和beego不能指定路由的http方法吗?
答:不能,Iris和Beego都不支持指定路由的HTTP方法,只能指定路径参数。但是Gin框架可以指定路由的HTTP方法,从而更加精细地控制Web请求的处理流程。
问题9.gorm框架是什么?
答:Gorm是一个开源的Go语言ORM框架,它支持多种数据库,可以帮助开发者快速构建数据库操作应用,并且提供了灵活的查询功能,可以帮助开发者快速实现数据库操作。此外,Gorm还提供了多种实用的功能,比如自动迁移、模型关联、查询缓存等,可以帮助开发者更加高效地开发数据库应用。
问题11.gorm框架的底层实现你有了解吗?
答:了解。Gorm框架的底层实现是一个叫做sqlx的库,它提供了一系列用于操作数据库的API,可以帮助开发者快速构建数据库操作应用。Gorm框架在sqlx的基础上进行了封装,提供了更加方便的API,从而使得开发者可以更加高效地实现数据库操作。
参考资料
1.《B/S架构》https://blog.csdn.net/qq_46071165/article/details/1240910482.《Gin框架源码解析》https://www.shuzhiduo.com/A/RnJWw68yJq/3.《Go 三款主流框架--Gin Beego Iris 选型对比》https://zhuanlan.zhihu.com/p/4270954114.《知识体系之Go面试题》https://blog.csdn.net/weixin_36750623/article/details/127050854