需要了解 N 个与 Web 应用程序开发相关的 Go 语言方面.
原始材料
为了能够在一种编程语言中真正地开发WebApp,需要具备哪些条件呢?假设我们已经掌握了该语言的规范。我认为,以下的知识至少是必要的。首先,我们先写下关于Go语言的了解。
软件包管理器
使用符合标准的Go工具。需要的库可以从仓库中使用go get命令获取。
go get <リポジトリ>
- http://golang.org/cmd/go/#hdr-Download_and_install_packages_and_dependencies
应用服务器
如果想要运行一个HTTP服务器,可以使用标准包的net/http包。如果希望在apache或nginx中运行,则可以使用标准包的net/http/cgi包或net/http/fcgi包。
-
- http://golang.org/pkg/net/http
-
- http://golang.org/pkg/net/http/cgi/
- http://golang.org/pkg/net/http/fcgi
处理路由和请求参数。
如果只需要使用标准包的话,可以使用net/http.Request或者net/http.ServeMux等。如果需要更多功能,goweb或者gorilla也是很方便的选择。
-
- http://golang.org/pkg/net/http/#Request
-
- http://golang.org/pkg/net/http/#ServeMux
-
- https://github.com/stretchr/goweb
- http://www.gorillatoolkit.org/
数据库
在database/sql包中,使用標準的RDB接口進行定義。實際上,使用各種RDBMS的驅動器。如果使用ORM,推薦選擇gorp。
-
- http://golang.org/pkg/database/sql
-
- https://code.google.com/p/go-wiki/wiki/SQLDrivers
-
- https://github.com/coopernurse/gorp
- http://mattn.kaoriya.net/software/lang/go/20120914222828.htm
呈现视图
如果你使用HTML,你可以使用标准包中的html/template包来使用模板引擎。如果是JSON或XML,你可以使用标准包中的encoding包及其下属的包。如果是第三方制作的,则可以使用MessagePack。
-
- http://golang.org/pkg/encoding/
-
- http://golang.org/pkg/html/template
- https://github.com/ugorji/go/tree/master/codec
HTTP客户端
我认为使用标准包的`net/http.Client`会很好。
- http://golang.org/pkg/net/http/#Client
测试框架
使用Go工具的go test就可以了。要编写测试程序,可以使用标准包testing。如果是Web应用的测试,可能也可以使用标准包net/http/httptest。
-
- http://golang.org/doc/code.html#Testing
-
- http://golang.org/pkg/net/http/httptest
- http://golang.org/pkg/testing
网络应用防火墙
我个人并不是特别感觉到必要性,但我觉得goweb很方便。
- https://github.com/stretchr/goweb
吉祥物
儘管不是標準套件,但Gopher君這個吉祥物非常可愛。
與Web應用程式無關。
- https://github.com/golang-samples/gopher-vector
如果还有其他的问题或指出的话,请告诉我。