7个最好的Go语言Web框架( 三 )


视图引擎:Amber(View Engine: Amber)框架支持 Amber 解析器来加载模板 。
渲染器:Markdown,JSON,JSONP,XML…框架的上下文为你提供了一种轻松地发送和定制各种内容类型的响应结果的简便方法 。
MVC模型-视图-控制器(MVC)是在计算机上实现用户界面的软件架构模式 。它将一个给定的应用程序分成三个相互关联的部分 。这样做是为了将信息的内部表示与信息呈现给用户并让用户接受的方式分离开来 。MVC设计模式分离了这些主要成分并允许高效的代码重用和并行开发 。

  • Iris支持完整的MVC功能,可以在运行时注册 。
  • Beego仅支持方法和模型匹配,可以在运行时注册 。
  • Revel支持方法、路径和模型匹配,只能通过一个生成器注册(一个用于构建Web应用程序的必要软件) 。
Wiki: https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
缓存(Caching)Web缓存(或HTTP缓存)是一种信息技术,用于临时存储(缓存)Web文档,如HTML页面和图像,以减少服务器延迟 。Web缓存系统记录了网络通信,如果满足某些条件,后续请求的结果可以直接取自Web缓存 。Web缓存系统既可以指设备,也可以指计算机程序 。
Wiki: https://en.wikipedia.org/wiki/Web_cache
文件服务器(File Server)你可以把一个(物理)目录注册到一个路由表,该路由表会自动将目录下的文件服务给客户程序 。
文件服务器: 内置入APP(File Server: Embedded Into App)通常你必须将所有静态文件(如资源文件、css、JAVAScript文件…)和应用程序的可执行文件一起传输 。支持此特性的框架使你有机会将所有这些数据嵌入到应用程序中,表示为 []byte,它们的响应时间也更快,因为服务器可以不用在物理位置上查找文件而直接服务 。
响应可以在发送之前在生命周期内多次修改(Response can be Modified Many times through lifecycle before sent)目前仅Iris可以通过http_context内置的 response writer 支持该功能 。
当框架支持这一功能时,你可以在发送给客户端之前检索,重置或修改的状态代码、正文和头文件(在基于net/http的Web框架中,默认情况下这是不可能的,因为正文和状态代码在写入后无法检索或更改) 。
Gzip你可以在路由的处理器里改变响应writer来使用gzip压缩,框架应该设置返回结果的头(header),并在出现任何错误时重置writer,也应该检查客户端是否支持gzip 。
gzip是一种文件格式(也可以是一个软件应用),用于文件的压缩和解压缩软件 。
Wiki: https://en.wikipedia.org/wiki/Gzip
测试框架(Testing Framework)你可以使用特定的框架测试HTTP,测试框架就是帮助你轻松地编写更好的测试 。
下面是一个例子(目前仅Iris支持)
myirisapp 返回一个你假定的Web应用程序,
针对路径 /admin 它有一个GET处理器并有基本的身份验证保护 。
上面简单的测试检查 /admin 请求是否返回状态码 Status OK 并验证特定的用户名和密码,最后检查正文内容是 “welcome” 。
Typescript TranspilerTypescript的目标是成为一个ES6超集,除了标准定义的所有新东西,它将添加一个静态类型系统(static type system) 。Typescript也有一个转换器(transpiler)将我们的Typescript代码(即6 +类型)转换到ES5或ES3标准上的JavaScript代码,以便在目前的浏览器上运行 。
在线编辑器(Online Editor)有了在线编辑器,你可以快速方便地编译和运行Go代码 。
日志系统(Logging System)自定义日志系统系统可以扩展原始日志包的功能,比如代码配色、格式、日志级别的分隔,不同的登录后台等等 。
维护和自动更新(Maintenance & Auto-Updates)以非侵入性的方式通知用户“即时更新” 。




推荐阅读