需要了解 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

如果还有其他的问题或指出的话,请告诉我。

bannerAds