Goで簡単なメモアプリを一瞬で作ってみる

Posted on 2018年8月7日 Under Go 0 Comments
Pocket
LINEで送る

こんにちは!すっかり暑くなりましたね。有安です。

僕寝る時にエアコンつける習慣がないんですが、近頃暑くて4時くらいに目が覚めます。どうすればいいんだ。エアコンつけよう!

さて今回は前回の日頃Railsばっかり触ってるエンジニアがGo触って見たに引き続き、Goを触ってみようと思います!

タイトルにある通り、アプリを作ってみたのでその感想を書こうと思います。続編ありの予定!

今回はrevelの力を借りて、超簡単にメモアプリを作ってみます。

最速フルスタックWebフレームワーク「revel」の紹介

Go言語製のWeb Application Framework – Revel – を触る

以下に概要と一言を羅列していきますね。コードの詳細に関してはさすがに書ききれないので、超簡単な雰囲気だけ掴んでいただければと思います!

まずは【環境構築】です。

go, gorm, revelをインストールしましょう。

GOPATHはとりあえず適当で。

僕の場合は

export GOPATH=$HOME/go

とやっています。

revelに関しても、$GOPATH/binにパスを通す必要があったりします。

準備ができたら早速【プロジェクト作成】をしましょう。

revelの力を借りて、

revel new <アプリ名>

でたくさんのファイルを作りましょう。アプリ名はmemo_appにしましょうか。

この時点で

revel run memo_app

で動いてくれます。らくちん!

続いて【データベース設定】です。

データベースはあらかじめ作っておきます。今回はMysqlを使用します。

conf/app.confを編集して、アプリケーションとデータベースとの紐つけを行います。

とりあえず開発環境の設定だけしたいので、【dev】と書かれているdevセクションに一行だけ追記します。

db.info = root:root@/memo_app?charset=utf8&parseTime=True

みたいな感じ。アプリ名やmysqluser nameやパスワードなどによって変わります。

次に app/controllers/gorm.go を作成して、データベースの初期化を行うコードを追記します。後ほどPostモデルを作るので、Postモデルからpostsテーブルを自動生成するための記述をしておきます。

最後に gorm.go で定義した関数を呼び出す記述を、app/init.go に追記します。ついでにcontrollersパッケージも追加しておきます。

次の工程は【モデル、テーブル作成】です。

gorm(GoORM)ではGo言語で構造体として記述したモデル情報を使ってデータベースを操作することができます。今回はPostモデルを作成し、そこからpostsテーブルを自動生成してみます。

app/models/post.go を作成し、構造体Postを定義します。データベース設定の際の記述により、サーバーを再起動するだけで勝手にpostsテーブルを作ってくれます!

テーブルができたら、【ルーティング設定】をしましょう。

とりあえずはメモ一覧表示、追加、削除の機能を実装することにします。

conf/routes HTTPメソッドとパスとコントローラとメソッドを指定しましょう。

そろそろゴールが見えてきました、次は【コントローラ設定】です。

app/controllers/post.go を作成編集します。

Index, Create, Delete 3メソッドを定義しましょう。

ここまできたら最後は当然View設定】ですね。

app/views/Post/index.html を作成し、同じ画面で一覧表示と作成&削除ができるようにしたいと思います。

{{}}の間でアクションを記述しましょう。

ここまででとりあえず動くアプリの出来上がりです!!なんて簡単!!初めてrevelを触る僕でもしっかり理解しながら、1時間かからずにアプリを作ることができました。

今回はフレームワークの力を借りてぱぱっと作るやり方を紹介しました。

次はフレームワークを使わずに、しかもgoらしく並列処理を利用したアプリを作ってみたいと思います!1回のブログにまとめられるかどうか。。。お楽しみに!

Pocket
LINEで送る