Windowsで開発のための環境を作る

# はじめに
筆者は断固として、 **Windows派** です。
なので、Windowsで開発をするための環境を作っていきたいと思います。
（これまではWindowsの中で、subsystemとか仮想環境上で開発していたけど、Windows上でもちゃんと開発したいなーという欲求からの備忘録です。）

## 環境
- OS
    - Windows 10 Home 1809
- 作りたい環境
    - Git
    - Node.js
    - MySQL
- インストールするもの
    - git
    - Chocolatey
    - nvm-windows
    - yarn
    - MySQL

# Git
https://git-scm.com/

*Git* は版管理システムの一種です。
[GitHub](https://github.com/)を用いることで、ネット上でソースコードを管理し、複数人でプロジェクトを管理・開発が行うことができます。
Gitのインストールとともに、GitHubへの登録もおススメします。

## インストール
以下のダウンロードリンクからインストーラをダウンロードしてください。
https://git-scm.com/download/win

後は、インストーラに従ってインストールを行ってください。

# Chocolatey
https://chocolatey.org/

*Chocolatey* は **Windowsのためのソフトウェア管理システム** です。
CentOSのyum、Ubuntuのapt、MacOSのHomebrewみたいなものです。
ソフトウェアのインストール・設定・アップデート・アンインストール簡単にするための管理をしてくれます。

インストール方法、使い方は以下の記事をご参考ください。
[【Chocolatey入門】導入から注意点、今後の可能性まで](https://qiita.com/kangetsu121/items/b6352b547cd32e71bc65)

# node
https://nodejs.org/docs/latest-v10.x/api/index.html

## nvm-windows
nodeのバージョン管理システムと言えば、 `nvm` ですね。
しかしこれ、Windowsでは使えないんです。その代替品として有名なのが、 [nvm-windows](https://github.com/coreybutler/nvm-windows) です。
では、早速インストールしましょう。

### 1. インストーラのダウンロード
以下のリンクから、 `nvm-setup.zip` をダウンロードしてください。
https://github.com/coreybutler/nvm-windows/releases/latest
ダウンロードしたzipファイルを解凍し、 `nvm-setup.exe` が存在するフォルダをエクスプローラで開いてください。

### 2. インストール
インストーラに従ってインストールを行ってください。
インストールが完了したら、コマンドプロンプトかパワーシェルで `nvm` と打ち、以下のように表示されるかを確認してください。
![nvm-windowsのインストール確認](https://camo.githubusercontent.com/7a297909471d50f1a8afc353ecb5a07f9eb54e83/687474703a2f2f692e696d6775722e636f6d2f424e6c636269342e706e67)

### 3. nodeのインストール
インストール可能なnodeのバージョンは `nvm list available` で確認することができます。
**LTS** の列の一番上のバージョンをインストールします。以下の例では `10.15.3` になります。
インストールが完了したら、インストールしたバージョンを有効化します。
`nvm list` したときに、先頭に `*` がついているものが有効化されているバージョンです。
![nodeのインストール](https://qiita-image-store.s3.amazonaws.com/0/183540/87d82603-8302-ae6f-0ce0-9a80e7174be2.jpeg)

## npmのアップデート
UNIX環境にてnpmをアップデートするときは、 `npm i -g npm` で行うことが可能です。
しかし、 `nvm-windows` にてインストールされた場合、初期状態ではアップデートすることができません。
以下の手順にてアップデートを行ってください。2回目以降は `npm i -g npm` のみで可能です。

nvmによってインストールされたNode.jsのフォルダが `"C:\Program Files\nodejs"` であるとします。
`gcm node` で `node.exe` が保存されているフォルダが対象のフォルダです。

```
cd "C:\Program Files\nodejs"
rm npm*
rm npx*
move node_modules\npm node_modules\npm2
node node_modules\npm2\bin\npm-cli.js i -g npm@latest
rm -r -fo node_modules\npm2
```

## yarnのインストール
https://yarnpkg.com/ja/

以下のコマンドで **Chocolatey** からインストールすることができます。

```
choco install yarn
yarn -v
```

# MySQL
https://www.mysql.com/

## インストール
まずは最新版のインストーラをダウンロードしてください。

以下のリンクから、「MySQL Installer MSI」へと進んだ上で **Download** をクリックしてください。
https://dev.mysql.com/downloads/mysql/
インストールはインストーラに従って進めてください。

### 注意点
**MySQL8.0** をインストールするにあたり、おそらく必要になるであろう2つのソフトウェアをご紹介します。

1つ目は `Microsoft Visual C++` です。以下がそのダウンロードページになります。
https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads
インストーラのログ中にはバージョンが **2015** と書かれていますが、 **2017** でも対応しているので、なるべく新しいものをインストールした方がいいと思います。

2つ目は `Python 3系` です。以下がそのダウンロードページになります。
https://www.python.org/downloads/

### セットアップ
文字コードを `UTF-8` にしましょう。
デフォルトの状態では、ベースとなる設定ファイルは `C:\ProgramData\MySQL\MySQL Server 8.0\my.ini` であり、作成した設定ファイルは `C:\Program Files\MySQL\MySQL Server 8.0` に置きます。
設定ファイルを編集するときは `C:\Program Files\MySQL\MySQL Server 8.0\my.ini` のみを扱うようにしましょう。
以下が文字コードをUTF-8に書き換える際の設定です。4バイト表現ができるように `utf8mb4` を使用しています。

```my.ini
# CLIENT SECTION
# ----------------------------------------------------------------------
#
[client]
default-character-set = utf8mb4

[mysql]

# SERVER SECTION
# ----------------------------------------------------------------------
#
[mysqld]
character-set-server = utf8mb4
```

## MySQL Workbench
MySQLのGUIソフトとして **MySQL Workbench** をご紹介します。
https://dev.mysql.com/doc/workbench/en/

#### 紹介理由
- 開発元がMySQLと同じ
- MySQL本体のインストーラでインストール可能
- ログイン情報の保存
- GUIから設定情報の変更

MySQLのGUIソフトウェアとして何を入れるべきか迷ったときは、 **MySQL Workbench** を入れると良いと思います。