golang之web

陈好 · · 4363 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

大多数编程语言之上的 Web 开发框架都是遵照 MVC 的处理流程去开发 Web 应用:Model 部分封装数据,Controller 部分处理业务逻辑,View 部分植入变量填充模板页面。而大部分 Web 框架关于 MVC 的三部分都是在 Server-side 处理,比如对 View 部分的处理都是在 Server-side 通过程序动态对模版变量求值后再拼接组装成 HTML 页面输出给浏览器去呈现。而 Go 开发 Web 应用,并不依赖任何 Web 开发框架,用内置的标准库就可以轻而易举地实现:比如使用 net/http 标准库就可以数行代码构建一个完整的 Web 骨架应用;再比如,通过关键字 struct 封装一个数据结构就可以表达原本 MVC 框架中需要用厚重的 ORM (Object-Relational Mapping) 才能表达的那部分。大道至简,这可以说是 Go 的哲学。在 View 这一层,Go 也有相应标准库提供支持,但更推荐的做法,是当下比较流行的 MVVM (Model-View-ViewModel):Server-side 只输出 JSON,浏览器 DOM 作为 View 层,前端 JavaScript 充当 Contoller 部分;这样,不仅减少了 Server-side 的资源消耗还有中间传输的网络流量,而且前端可以更灵活和更丰富,后端也可以更轻盈和更高效,也更有利于项目的分工和协作。 而 Go 对 JSON 的生成和输出,有数据测试表明异常高效(在 i7-2600K 处理器上针对所有编程语言包含开发框架总计约100个测试对比中,Go 的性能指标稳居第一,详见:http://t.cn/RvZHyKI)。以我个人喜好之见,后端用 Go 前端用 AngularJS 可以说是现今流行 MVVM 方式的 Web 开发之绝唱组合。所以,如有疑问 Go 适不适合用来做 Web 开发,我想答案很肯定的:不但可以而且更简单同时做得更出色甚至还可以做的更多。

有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:陈好

查看原文:golang之web

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4363 次点击  
加入收藏 微博
上一篇:golang 定时器
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传