技術文章を書く練習&上長に書きますといった手前引けなくなったので投稿
主にこのドキュメントをもとに調査
https://github.com/astaxie/build-web-application-with-golang/blob/master/en/preface.md
Goの特徴
- 静的言語
- 並行処理
- 高速なコンパイル
- etc...
このような特徴があるようだ。まずは手を動かすことが大事なので、詳細は次回以降に調べる。
Dockerで手軽にgo環境を用意してみる
Dockerfile
#ベースとなるgoのバージョン指定
FROM golang:1.14.3-alpine
#作業用フォルダの作成
RUN mkdir /go/src/practice
#作業用フォルダの設定
WORKDIR /go/src/practice
#カレントディレクトリの全ファイルをコンテナにコピー
COPY . /go/src/practice
Goで開発するには$GOPATH
を最初に指定しなければならない。$GOPATH
というのは、goの開発のための場所であるworkspaceを指定するパス。dockerのデフォルトでは/
が$GOPATH
のようだ。階層は以下のような構成となっている。
/go
-/src //goのソースコードを置く場所
-/pkg //コンパイルされたファイルが置かれる場所
-/bin //実行ファイルが置かれる場所
goでは$GOPATH
の下ですべてのgoコードが管理するという方法を取っている。
コンテナ中でgoが入っているか確認
/workspaces/practice # go version
go version go1.14.3 linux/amd64
まあ入ってるよね
Hello World!を表示するプログラムを作ってみる。
practice/main.go
//パッケージ名を指定、パッケージ名はディレクトリ名と一致させることが推奨されている
package practice
//fmtパッケージをインポート
import "fmt"
func main() {
//Hello,World!と表示する
fmt.Println("Hello, World!")
}
go fmt main.go
でコードのフォーマットを行う。
例のごとくHelloWorld!を表示してみる。
/workspaces/practice # go run main.go
Hello, World!
ええやん
次はgoでwebアプリケーションでも作ってみようか。