Golang 入門 : Webサイト(簡易掲示板 ) を作成 part1-プロジェクト作成

この記事は約5分で読めます。

Golang で初めてWebサイト( 掲示板 )を作成する方向けの記事です!

以前,

[Go WebAPI ] Go言語入門~Webアプリを作ろう~
今回はGo言語でWebアプリを作成していきます!! WebAPI 前回は ゴール...

 

という記事を上げました。

そもそも、webAPIや、webサイトって何?みたいなことを説明していて、あまり深く、作成はしませんでした。

 

今回は、簡易掲示板を作成します!

記事の目的 ( Golang )

  • 簡易掲示板を作成する中で、Webサイトの作成の全体像を把握する
  • Golang でWebサイトの作成方法の基礎を知ること
  • そのための準備をする

含まれないこと

  • ユーザ認証(前提知識が多いため)
  • フルバージョン(記事の更新、詳細など)

利用技術

  • MySQL…DB、データの永続化(保持)に使います。
  • Gin…Go言語のWebフレームワーク
  • Gorm…DBとアプリを簡単に繋げるフレームワーク(ORM)

今回はDBまで触れるので一連の流れがわかるのではないでしょうか。

前提知識

プロジェクト構成

掲示板を作るに当たって、MVCアーキテクチャを採用しました。MVCは一番スタンダードです。

  • M…Modelデータの保持やデータの取り出し
  • V…View見た目を作成する
  • C…Controllerリクエストの処理を記述

処理が複雑になると、Controllerの処理が複雑になり、大きな層になります。この状態をFatと言います。そういう場合は、Controllerの処理をServiceという層を新たに追加し、ビジネスロジックを書いたりします。

余談ですが、

大規模開発になると、システムのメンテナンスコストも重要になってくるため、クリーンアーキテクチャなどが採用されたりします。

go module

パッケージ管理がバージョン1.1からモジュールモードが使えるようになりました。

今回はモジュールモードを使っています。

モジュールモード、詳しくはこちら
go.modは以下です。

web-goという名前のプロジェクトで作成しました

 

module web-go

go 1.12

require (
	github.com/gin-gonic/gin v1.4.0
	github.com/jinzhu/gorm v1.9.10
)

MySQL

MySQLはデータベース管理システムの一つです。シェア率も高く、文献も多いので、今回はこちらを採用しました。

 

MySQLを利用できるようにするには、

$ brew update
$ brew install mysql

でinstallできます。install後は

$ mysql.server start

でMySQLサーバを起動し、MySQLへアクセスできるようになります。

MySQLへの接続はコマンドで接続できるのですが、覚えることが多いのでGUIを使うことをお勧めします。

brewでinstallできるので、

MySQL8.0でSequel Proを使えるようにする - Qiita
# 問題 (がMySQL8.0ではクラッシュして接続できない # 解決策 (

の記事を参考にinstallしてください。

完成品

まず、完成品はこちらです。

web-go

説明

基本的な機能です。記事一覧ページ、記事投稿ページがあり、処理は一覧表示、投稿、削除があります。

ここから、派生さして、データを増やしたり、更新処理を追加したり、カスタマイズを個人ですることができるようにしています。

実践:プロジェクト作成

今回は、こちらです。まず、プロジェクトを作成します。

$mkdir web-go
$cd web-go
$go mod init web-go
//go mod init が大事。web-goにすることで、import時"web-go/xx"で利用できます。

ディレクトリ構成

.
├── controller
│   └── article_handler.go
├── go.mod //go mod initで作成
├── go.sum //自動生成
├── model
│   └── article.go
├── script
│   ├── reset_db.sh
│   └── reset_db.sql
├── util
│   └── db.go
├── view
│   ├── index.tmpl
│   ├── layout.tmpl
│   └── new.tmpl
└── web.go

このディレクトリと同じようにフォルダとファイルを作成しましょう。

解説

  • viewフォルダ…見た目のページをまとめている
  • controllerフォルダ…controller層
  • modelフォルダ…MySQLとのつなぎ目の処理
  • utilフォルダ…MySQLとアプリを繋げる時の定義設定
  • web.go…main,ルーティング設定

プロジェクト作成完成

これで、プロジェクト作成が完了しました。

まとめ

今回は前提知識と、プロジェクト作成を行いました。次回からアプリケーションの制作に入ります。

わからないことがあれば、是非質問してください。

また、作成した後、是非、公開までしてみてほしいです。(勉強になる)

ConoHa :5分でGoのWebアプリをConoHaVPSで公開する方法`

それでは。

タイトルとURLをコピーしました