読者です 読者をやめる 読者になる 読者になる

node.js+TypeScript で頑張るくらいならGoでいいじゃん

ずいぶんご無沙汰になってしまいました。

仕事でJavaScriptに触れておりますが、もともとはC/C++で育ってきた身ゆえ、型にうるさい言語が好きです。 なのでTypeScriptで組むことが多いです。

最近になってサーバーサイドを組む相談が増えてきたこともあり、node.jsを試しておりましたが、素のJavaScriptは型処理や引数の曖昧さに嫌気がさし、サーバーサイドでTypeScriptを使う方法を模索。

しかし、なかなか面倒くさい。 Gulpをサーバーサイドで使うのにも、ためらいがあります。

結局コンパイルしてるのだから、いっそコンパイル言語つかってよくない?ということでGoをつかってみたところ、node.jsばりに簡単にHTTPサーバが立てられることに感動し、Revelを使えばスクリプト言語と変わらないレベルで即結果がみれるところで一気に恋に落ちた次第です。

そんなわけで、Mac環境でGolang + Revel + MariaDB(MySQL)環境を構築してみました。

homebrewでGolang セットアップ

$ brew install go --cross-compile-all

--cross-compile-allコマンドをつけることで、後々デプロイする場面でクロスコンパイルが手間なく行えます。

homebrew 設定時に/usr/local/bin/にパスを通していれば、すでにgoコマンドの呼び出しができる状態です。 そのほかにGo Toolsは任意の場所にライブラリなどダウンロードしてくれるエコシステムがあります。(node.jsのnpmと同じですね)
ビルド先も含まれるので一緒にPathを通します。

export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH

MariaDBのセットアップ

$ brew install mariadb

(省略)
To have launchd start mariadb at login:
  ln -sfv /usr/local/opt/mariadb/*.plist ~/Library/LaunchAgents
Then to load mariadb now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist
Or, if you don't want/need launchctl, you can just run:
  mysql.server start
==> Summary
(省略)

Mac起動時にDBも起動するよう、launchctlに登録します。 インストール時のメッセージとして出てきたとおりに、以下を実行します

$ ln -sfv /usr/local/opt/mariadb/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist

ためしにコマンドを叩いてみます

$ mysql

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.0.21-MariaDB Homebrew

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

コマンド受付状態になればOKですので、exitコマンドで抜けます。

Maria DB初期設定

基本的なセキュリティ設定を行うため以下のコマンドを実行

$ mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 

現在のrootパスワードを聞かれますが、未設定なので、そのままEnter。

Set root password? [Y/n]
New password: 
Re-enter new password: 

rootパスワードの設定を行うか聞かれるので、そのままEnter (Yes実行) Yesの場合、新しいパスワードを2度入力する。

Remove anonymous users? [Y/n] 

Anonymousログインをできなくする場合はそのままEnter (Yes実行)

Disallow root login remotely? [Y/n] 

リモート環境でrootログインできなくする場合はそのままEnter (Yes実行) 今回はローカル環境の構築なのでYesを選択。

Remove test database and access to it? [Y/n] 

初期設定で入ってるtestデータベースを削除する場合はそのままEnter (Yes実行)

Reload privilege tables now? [Y/n] 

これまでの設定を反映させる場合はそのままEnter (Yes実行)

Thanks for using MariaDB!

ここまでメッセージが到達すれば設定完了。

とりあえず、今日はここまで。。