2018-12-11に更新

Windowsで快適なWebシステム開発を行えるか検証中

僕はここ数年Linux MintというUbuntuベースのOSでWebシステム開発と日常の趣味活動の全てをまかなっていました。

PCの劣化に伴い新しいPCを購入したのですが、せっかくなのでWindows10 Proそのままでどこまで不便なくやっていけるか試してみました。

特に気になっていたところ

  • 快適なシェル生活が可能か
  • Dockerは問題なく使えるか
  • ファイルの改行コードや属性など

シェル

Linuxの場合シェルはデフォルトでBashのため、あらゆることを何も深く考えずにスムーズに使うことができました。Windowsでもなるべく快適に使っていきたいところです。

シェルを使い分ける

Windows10の場合は下記のシェルが利用できます。

  • デフォルトのPowerShell
  • Git Bash(Gitインストール時にインストールされる)
  • Windows Subsystem for LinuxのBash

PowerShell

PowerShellは現在はWindowsのデフォルトのシェルになっています。使い方を見てみると、何やらよく分からない長い名前のコマンドがたくさん用意されているようです。例えばフォルダの移動はSet-Locationなど。

ただ、様々なコマンドにエイリアスが用意されていて、Linuxと同じコマンドも結構あります。例えばls, cd, cat等は普通に使えます。

他にもTabキーでパスを保管できたり、Ctrl+rでBashのようにコマンド履歴から検索したりすることができ、わりと使い勝手は悪くないです。あとは下記のURLにもあるように、設定を行えばGitの補完などもできるようになったりするようです。

Git - PowershellでGitを使う

僕も入れてみましたが、多分公式のGitHubの説明どおりに入れた方が良いと思います。色々変なやり方をするとエラーが出まくります。

dahlbyk/posh-git: A PowerShell environment for Git

インストールしてうまく動かなかったらPSModulePathという環境変数に、インストールされた自分のドキュメントフォルダ以下のWindowsPowerShell\Modulesのパスを入れておきましょう。

Windows Subsystem for Linux

通称WSLです。WindowsでUbuntu等のLinux環境を動作させることができます。Ubuntuを入れればUbuntuと全く同じコマンドを使うことができます。apt等も使用できます。

PowerShell上でwslと実行すれば開くことができますし、レジストリの設定をすればエクスプローラでォルダを右クリックして実行することなどもできます。WindowsにあるソフトウェアよりLinuxのソフトウェアを直で使った方が使い勝手が良い、という場合にかなり便利です。

Git Bash

Git BashはWindowsでGitをインストールすると同時にインストールされているものです。Windows上で気軽にBashを使うことができ非常に便利です。

Bashなら前述したWSLのBashを使えばいいのでは? と思うかもしれませんが、WSLの方は完全に環境が独立してしまっているため、使いづらいところがあったりします。Git BashはWindowsの環境を共有していますので、Windowsのプログラムも実行できますし、パスや設定等もWindowsのものを共有していますし、何気に結構便利です。

このようにPowerShell, WSL, Git Bashを適切に使い分けていくとなかなか快適なシェル生活を過ごすことができます。

ソフトウェアなど

Windowsで使えるソフトウェア

Windowsだとやはりソフトウェアが充実しているので、何も考えずに色々使えるので安心です。Linux Mintの時はGitを操作する時はGitとTigとVisual Studio CodeのGit操作をそれぞれ使い分けていましたが、Windowsだと普通にSourceTreeが使えるので安心です。(ただ、何気にLinux MIntの時もその組み合わせだとむちゃくちゃ快適ではあったため特にSourceTreeを使う必要性は感じませんでした)

あとはWeb開発に関係ないですがちょっとしたゲームやソフトウェアをあまり深く考えずインストールできるというのはやはり安心できるところです。

Docker

Windows10もPro版であればDockerが使えます。時々うまく動かなくなったり回線が繋がらなくなったりする時があるのでLinuxの時ほど安定しているとは言い難いですが、特に不便はなく使えています。

以前Nortonを数年分買っていてまだ使えたためとりあえず入れていますが、DockerへのSamba接続を許可しないとvolumeが共有できなかったり、というところはあるのでちょっと気をつける必要があります。

Pro版でない人も、最近だとWSLの方でDockerが使える、といった情報があるようです。

言語env系

rbenvとかpyenvとかはWSLに入れました。Windowsだと対応していなかったりするため、直でUbuntu側に入れて使った方が良さそうでした。

あとはnvmなども入れています。一度Windowsに入れていたのですが、インストールするパッケージによってはビルド時にVisual Studioをインストールしていないとビルドできないものなどがあり、そんな重いものはインストールしたくなかったのでWSL側に入れました。

ただ、WSLに入れてしまうとエディタ連携などができないため、サーバーサイド系の言語はとりあえずWindows側にも最新のバージョンのものを入れておく、等が必要だったりします。そのため容量には少し気をつけなければなりません。Dockerだけでなんとかするよ、という人は何もインストールしなくて良いのかもしれませんが、ちょっとあれこれ全部満たすには面倒そうな気がしました。

Visual Studio Code

VSCodeはOS関係なく使えるので別に何も問題はないのですが、Windowsだとデフォルトの改行コードの設定がCRLFになっています。LFに設定を変えておきましょう。

Git

Gitも属性周りがちょっと怖いので、下記などを設定しておきましょう。

git config core.filemode false

Windowsメニューのランチャー

Windowsキーを押すとWindowsメニューが出てきますが、そこでそのまま文字入力をはじめると、実行したいアプリケーション等を適当に検索してそのまま実行すること等ができます。デフォルトでここまでできるとはあまりにも快適でびっくりしました。これはかなりプラス評価でした。

まとめ

色々書きましたが、とにかくシェルをいかに使っていくかがWindowsでの快適なWeb開発生活をおくれるかどうかの鍵になってくると思います。PowerShellだけだったら多分Windowsを使うという選択肢はなかったと思います。今のところLinuxの時とさほど変わらない快適度は保っていると思います(まだ新しいPCの方が高速なのでそれだけでも非常に快適)。

とはいえこれからもまた色々問題は出てくるかもしれません。実際に使い始めて数日はnpmでビルド失敗エラーが出たりDockerのvolumeが連携されなかったりで挫けそうになっていました。また色々と試していきます。

ツイッターでシェア
みんなに共有、忘れないようにメモ
デル株式会社

だら@Crieit開発者

Crieitの開発者です。 Webエンジニアです(在宅)。大体10年ちょい。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel, React, Flutter, Vue.js, Node, RoR 趣味:Elixir, Phoenix, Nuxt, Express, GCP, AWS等色々 PHPフレームワークちいたんの作者

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント