内容简介:最近在用Golang开发Web后台, 前端用 ReactJS 或者微信小程序框架.单从微信小程序框架的感觉和设计思路来看, 和 Vue.js 非常像, 这种前端框架, 的确是用 Golang 做为后端开发更好一点.就拿现在我正在用的 Gin 这个 Golang 框架来说, 其实只用几十行写个路由返回微信小程序用的 JSON 数据就可以了, 基本上所有的界面效果都由小程序去渲染, 后台服务可以做的很薄:
最近在用Golang开发Web后台, 前端用 ReactJS 或者微信小程序框架.
单从微信小程序框架的感觉和设计思路来看, 和 Vue.js 非常像, 这种前端框架, 的确是用 Golang 做为后端开发更好一点.
就拿现在我正在用的 Gin 这个 Golang 框架来说, 其实只用几十行写个路由返回微信小程序用的 JSON 数据就可以了, 基本上所有的界面效果都由小程序去渲染, 后台服务可以做的很薄:
- 设计好数据库
- 理清需求和业务逻辑
- Golang从数据库和HTTP路由请求, 按照 Restful API 规范返回 JSON 数据即可.
因为 Golang 的 HTTP 库设计的非常好, 所以基于 Golang HTTP 库的Web框架多如牛毛, 大多数Web框架都很轻, 主要的功能都在路由设计上.
所以如果拿 Rails 和 Golang 做对比的话:
- Rails 更像一个Web最佳实践的全功能框架, 什么都有最好的, 但是因为包括的东西实在是太多了, 光是学清楚每个最佳实践库的配置和集成就很复杂, 因为 Rails 真的要配置好的话, 不同模块之间的集成往往都是不透明的, 你首先要学会这些配置, 只有看了源代码才知道为什么一定要这么配置才能功能
- Golang 框架和Rails是反的, 框架只有核心的 HTTP 路由功能, 至于高级功能, 比如HTTPS, 表单Token验证, JSON解析, 数据库的ORM等等, 都需要网上去找库和中间件实现, 但是每个模块之间的胶水代码都是自己写的, 所以模块之间关系处理都比较透明, 出了错好解决到问题的根源
简单的结论:
- Rails更适合做传统偏向内容的Web网站构建, 约定好的配置入门比较简单, 开发效率高, 但是要玩精通还是比较复杂, 受到框架限制比较多
- Golang更适合前后端分离的应用开发, 比如小程序, 高级功能入门比较复杂, 但是一旦折腾好了, 可以很容易玩出高级功能, 不用受到严格框架的限制
像我这种Emacs党, 说句实话, 我更喜欢Golang这种框架, 虽然很多功能都需要自己折腾, 但是可以做到很多细节心中有数, 每个模块的最佳实践可以随着自己的经验增加而快速迭代, 而像 Rails 这种每个大版本引入的新的最佳实践都会和上一版本不兼容, 团队和业务代码多了, 更新代码去兼容最新框架本身就很痛苦.
最近开发了微信小程序, 感觉Web也像三国一样, 分久必合合久必分.
- 最开始是 Java 这种简单粗暴的中间件玩法
- 过去十年大多数都是 Rails 这种更加优雅的 Web 框架, 强调最佳实践, 强调 Web 纯正的方法论
- 现在移动终端的性能、多分辨率和用户体验的新需求, 大家又回到Java那个时代的前后端分离了
其实, 计算机这么多年的软件框架一直都是随着流星硬件和用户交互模式的迁移而不断变化和不断重复历史.
对于我这种操作系统行业打拼出来的人, Golang这种Web框架的思路对于我更简单, 设计好数据库和API接口, 剩下的就是把后端数据吐给前端框架就完事了.
所以, 业务导向, 什么技术对于业务最好就用什么技术, 对于小程序开发, 我选择 Golang Web框架.
以上所述就是小编给大家介绍的《聊聊Rails和Golang开发的体验差别》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 聊聊 ab、wrk、JMeter、Locust 这些压测工具的并发模型差别
- 聊聊 ab、wrk、JMeter、Locust 这些压测工具的并发模型差别
- CHAR 和 VARCHAR 存取的差别
- 月薪 1 万和月薪 5 万的人有什么差别
- 勒索病毒无差别攻击普通用户 盗版软件成重灾区
- 丧心病狂的“无差别攻击”:GarrantyDecrypt勒索变种来袭
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。