MacでGo+Gin+Ginな開発環境を準備する。

go

ちょっと前にPHP+Laravelの環境準備を行いましたが、なんだかんだGo言語を試したくなりました。タイトルにGinが2つついてますがミスではありません。Gin(webフレームワーク)とGin(ホットリロード)です。今時な開発してたらHotReloadは必須みたいになってきましたね。最初無しでテストしてましたが結局準備してしまいました。

Goのインストール

いつも通りターミナルを開いて下さい。

brew install go

を実行します。終わったら、

echo 'export GOPATH="$HOME/go"' >> ~/.bash_profile
echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.bash_profile
source ~/.bash_profile

をそれぞれ1行ずつターミナルで実行します。
そしてターミナルを再起動後、

go version

で環境変数が正しく設定されているか確認します。

ここで一つ注意点なのですが、公式ページからインストーラをダウンロードする方法もあります。が、こちらだとIDE次第では開発時にエラーメッセージが表示されてしまう様になります。せっかくのMac環境なのでbrewしましょう。

とりあえずテストプロジェクト作成

とりあえずテスト実行したいので、goプロジェクト用のフォルダを好きなところに作成します。vsCodeでそのフォルダを開きます。そこで一旦、拡張機能タブにてGoを検索してインストールします。ここで、依存する拡張機能のインストールを求められた場合は実行して下さい。自分はこのタイミングではされませんでした。

フォルダ内にtest.goというファイルを作成し、

package main 
import “fmt” 
func main() { 
    fmt.Printf(“hello, world!”)
}

を記述して保存します。自分はこのタイミングで拡張機能のインストールを迫られました。

また、vsCodeで拡張機能をインストールした場合は再起動して下さい。謎のエラーが発生したりします。

保存・再起動したらターミナルブロックで

go run test.go

を実行します。するとhello, world が表示されるはず。

Gin(フレームワーク)の準備

Ginの説明は省きます。今Go使ってバックエンド作るならこれかなーと感じました。軽いし早いし使いやすいです。

一旦vsCodeは閉じてターミナルにて

go get github.com/gin-gonic/gin

を実行します。

こんな感じで、ホームディレクトリ/go/src/github.com/gin-gonic が存在すればオッケーです。

vsCodeを開き、今度はapp.goという名前でファイルを作成し、

package main
import ( 
    "net/http"
    "github.com/gin-gonic/gin"
)
func main() { 
    r := gin.Default() 
    r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello World!!") })
    r.Run() // gin run app.go
}

をコピペして保存。

go run app.go

を実行して下さい。成功した感じだったら、

localhost:8080 にアクセス。ポート番号は違うものを指定されるかもしれませんがデフォルトだとこれなはずです。いずれにせよコマンドラインに出力されているので確認して下さい。ブラウザで見てみるとHello,Worldが表示されているはず。
確認後は一旦、Ctrl+Cで止めて下さい。

Gin(ホットリロード機能)をインストール

今のままだとコードを変更するたびにrunコマンドを実行する必要があります。しかし、もう1つのGinを入れると保存するたびにいい感じにしてくれるので、ブラウザを更新するだけでよくなるのです。

go get github.com/codegangsta/gin

を実行。今度はgo/bin/ginが存在することを確認して下さい。

これもパスが通っているか確認する必要があるので、

gin help

を実行してヘルプが表示されるか確認して下さい。出てこない場合はパスがうまく通っていない可能性があります。goインストールの部分を参考に、.bash_profileの確認、sourceコマンドの再実行を行って下さい。

実行できた場合はターミナルにて先ほどのapp.goが存在するディレクトリまで移動し、

gin run app.go

を実行します。localhost:3000 にアクセスすると表示されます。vsCodeで変更し保存後、ブラウザをリロードしてみましょう。

自分の環境だと、vsCodeでは何故かginコマンドが通りませんでした。パスの変更がうまく伝わっていないのか分かりませんが、とりあえずターミナルでは問題ありませんでした。

まとめ

いかがだったでしょうか。こうやって情報がまとまってさえいれば、比較的すんなり進んだかと思います。Goは比較的新しい言語なため、仕様変更も多く古い情報が淘汰されていなかったりします。例えば昔は開発プロジェクトもgo/binフォルダの中でないといけなかったり。今は今回試した様に、どこにあってもフレームワーク導入できますし、サードパーティなツールの使用もできます。

実戦で使っても大丈夫なのか、これから統合的に調べて判断して行きたいなと思います。次はAzureで動かしてみようかな。

レンタルサーバはConohaWINGが最強にオススメ!

muchilogでは今までいろんなレンタルサーバやSaaSを使ってきましたが、今では全てをConohaWINGにて運営しています。

■今まで使ってきたサービス一覧
・さくらレンタルサーバ(ベーシックプラン)
・カゴヤ
・Azure
・AWS

今ではこのブログは勿論、webサービスのバックエンドやアプリのサーバ機能もConohaWINGで動かしています。
そんなConohaWINGのメリットをいくつか紹介します!

【国内最速No.1】高性能レンタルサーバーConoHa WING

無料で最大2個の独自ドメインが使える!

サイト運営に必要な独自ドメインをなんと無料で取得することが可能です!これだけでも月100円以上は運営費が節約できます。

優れた速度と安定感

私がAzureやさくらを解約した大きな理由はこれ。Conohaは非常に安定して稼働しており、ダウンタイムがほぼ発生しません。発生した場合は潔くお知らせしてくれます。
また、このブログは勿論、バックエンドとして動いてるプログラムも処理速度が大幅に向上しました(体感で倍速以上)。 Azure等のSaaSからレンタルサーバに移行するって普通考えられませんよね?しかし実際に大きなメリットを感じているのです。

頻繁に開催されるキャンペーン

ConohaWINGは半額に迫るようなキャンペーンを頻繁に開催しています。このキャンペーンによって、性能的には業界トップクラスであるにも関わらず、 月額料金換算で最安値クラスで使えるのです。
基本的に長期一括契約の方がお得になるため、muchilogでは最長で契約することをオススメします。価格と性能のバランスを考えれば他に乗り換えることも考えれられませんし。

レンタルサーバは必須です!

web系のプログラミング学習を進める際には、レンタルサーバの契約は必須と思ってください。ローカルの環境と本番環境で動作が違うことは良くありますし、ポートフォリオを公開するのも大切です。

学習や制作に集中するためにも、満足度、速度、安定度全てのレベルが高いConohaWINGを最強にオススメします!

web系サービス開発会社に転職したい!

muchilogではIT系へ転職したいという方には「自社サービスを運営しているweb系企業」への転職をおすすめしています。

web系は「自由な社風」「成長できる環境」「ホワイトな労働条件」であることが多いからです。

そんなweb系企業への転職を確実にするためのプログラミングスクールが登場しました。


RUNTEQ

RUNTEQはただのスクールじゃない!

RUNTEQはweb系の開発会社。開発会社が運営するスクールなので必要とされる技術力は勿論習得可能。しかしそれだけではないのです。

特にweb系で転職・就職活動を行う際にはポートフォリオを求められることがあります。ポートフォリオとは自分自身の作品のことで、技術力や企画力を示すものです。

RUNTEQではポートフォリオの作成を企画段階からサポートしてくれます!

他のプログラミングスクールでは提携企業の派遣やアルバイトとして就職するしかなかったりもしますが、RUNTEQはあなたの市場価値を高める方法まで教えてくれるということですね。

また、RUNTEQが扱う教材はどれも第一線で当たり前に使われている技術。特に未経験者の独学ではどうしてもスキルセットに穴が出来てしまいます。その点RUNTEQは確実に現場力を養えます。

そして2020年2月〜2021年12月までの内定者の98%がweb系企業に内定しています。これはRUNTEQの指導力とサポートが優れていることの証拠でしょう。

まずは無料説明会に申し込んではいかがでしょうか?

RUNTEQ


go
muchiをフォローする
MUCHILOG
タイトルとURLをコピーしました