そーだいなるらくがき帳

そーだいが自由気侭に更新します。

2017年版 WEB系の開発をするために必要な10の開発環境 ~Windows~

項目が古いというか現状にマッチしてないのも多いけど3年前に習ってやっていきます。

soudai1025.blogspot.jp

IME

Google日本語入力を未だ使っていますがATOKも検討してます。 Google日本語入力は良くも悪くも流行りの言葉のカバーが強いですね。 当時と変わった事といえばかな英数 の切替を以下の通りキーボードに仕込んでます。

  • 無変換 → IME-オフ
  • ひらがな → IME-オン

これは元々MBPにWindows入れて使っていると半角ボタンが無いことから切替が不便なのでMacOSに合わせてキーバインドを指定しました。 基本デフォルト厨の僕ですがこれはめちゃめちゃ便利です。 まず今の状態を気にする必要がない。 code書く前に無変換を押せばいいし、ブログを書きたい時はひらがなを叩いてから書き始めれば良いわけです。 状態を常に上書き出来るのでめちゃめちゃ便利です。 両方親指で押せる位置なのでとても助かってます。 皆さんもぜひ試してみてください。

ブラウザ

Chrome使ってます。 Firefoxも最近はめちゃめちゃ早くなったみたいなので戻ろうかなって思った時期もあるのですがまだChromeに統一してます。 むしろAndroidChromeとブックマークも共有出来るのでめっちゃ便利なってきた(勿論Firefoxでも出来るのだけど) どっちかというとChromeを使わない理由がないからChromeのままって感じですね。

テキストエディタ

ちょっとしたメモの書くときなどは未だにSakuraEditorを使ってます。 grepが付いてきたり、軽量だったりとテキストエディタとしての便利さと軽快さがマッチしてるんですよね。 Sublime Text 3はあれから少し使ったのですが辞めてしまいました。 軽快に動くので特に嫌なところがあったわけではないのですが強いて言えば検索候補出てる時にTABを押すと検索候補に行かずに固定長が入力されるところですかね。 むしろ固定長が入るのが一般的な挙動のようでMacOSWindowsで共通で使えるいい感じのエディタを探してAtomも試したけど同じ理由でしっくり来なかったです。 ちなみにMacOSは現状はテキストエディタとしても後述のVSCodeを使っています。

IDE

3年前から大きく変わったのはIDEですね。 当時はNetBeans使いでしたが書く言語の変化や環境の変化で多くの言語で書く場合はJetBrainsのIDEを使うようになりました。 現状は以下の通り。

  • Python → PyCharm
  • PHP → PHPStorm
  • C → CLion(読むときだけ)
  • SQL → DataGrip

最初はIntelliJ IDEAを使ってたのだけど、環境ごとにIDEを変えた方が運用も楽になるので All Products Pack を買っています。 JetBrainsのライセンスを購入するならサムライズムさんで!

samuraism.com

それに追加で最近はGoも少し始めたのでGoLandも少し使ってました。 しかし周囲の強い推薦により ~人柱として~ Visual Studio Code を使い始めました。 僕はMS MVPだしまぁ使ってみるかと始めた所、所感としてはとてもいいです。 前述の通り、MacOSではテキストエディタとして使うくらい軽快に起動します。 また日本語UIだしEclipseキーバインド(これは僕に課せられた呪いだけど)もあるので安心して使えます。 無料なのでちょっと気軽に使って見る分には充分すぎる程よく、多くの言語をサポートしているので是非試してもらいたいですね。 ただしSublime Textに近くて最初にある程度自分好みにパッケージを追加する必要があります。 みんなで同じ環境で情報共有を出来る面や最初からオールインワンで準備されてる点などはJetBrainsの製品の方がいいなと思います。 自分でカスタマイズしたい人にはVisual Studio Codeはオススメです。 最近はGoとPHPでは後述のWSLとの相性の良さもあってVisual Studio Codeを使っています。

ローカル実行環境

Vagrant+VirtualBoxを長年愛用してました。 そして時代はコンテナ時代になったものの、Windowsの対応がいまいちでMacOSまたはLinuxの環境上でしかDockerは動かしてませんでした。 そんな僕のWindowsに革命として来たのが Windows Subsystem for Linux(以下 WSL)です。

www.buildinsider.net

ローカル上でUbuntuが動くのでミドルウェアも開発環境もそのままLinuxの資産を運用できます。 現状は以下のOSが選べます。

bashが使えるのが兎に角便利で ll って打てるんですよ!! 課題としてはOSは切り替えれるものの、複数の環境を依存させるのは難しい(例えばミドルウェアのバージョンとか)のでそこはコンテナにしました。 コンテナはWindows for Docker + Kitematic(GUIツール)を使っています。 そんなわけでしばらくはWSL+コンテナに移行して今後は開発をする予定です。 WSLはWindows上のログの加工などでも効果を発揮すると思いますし今後色んな可能性がありますね。

RDB

前述の通り、Dockerに移行してます。 Vagrantがめちゃめちゃ不満ってわけではなかったのですし、人に教えて共有しやすいシンプルさはVagrant+VirtualBoxかなって思ったりはしてます。 この辺はチームのレベルによるでしょうね。 今の会社はまぁ他人の心配しなくてもみんなめちゃめちゃレベル高いので好き勝手した結果が今の環境ですw

DB管理ツール&SQLエディタ

SQLエディタは自分の中ではやっぱA5:SQL Mk-2が一強です。 シンプルで使いやすいですよね。 とは言え、DDL的なことをGUIでやりたいときもあるので開発はJetBrainsのDataGripを使ってます。 最近はMySQL触ってないのでMySQL Workbenchを久しく使っていません。 またpgadmin4が出たし日本語化も来ました。 pgadmin4 v2は評判が良いので試してみたいのですがなかなか運用でPostgreSQLを触る機会がなく… バックアップ取れたりPostgreSQL特化の機能は魅力的なんですけどね。

kkida-galaxy.blogspot.jp

ファイル転送ツール

SCPで繋ぐことも全く無くなってしまいましたね。 デプロイも便利になったし、Ansibleとかgithubって便利なやつもあるし、Composerみたいなライブラリ管理もあるし、SCPで繋がなくてもほとんどSSHのターミナルの作業で事が足りてしまいます。 バックアップもログの置き場もS3があるし便利な世の中じゃ… ただ使うとしてもWinSCPですね。 とはいえ、今のPCにWinSCP入れてないので1年はSCPしてないですねw

バージョン管理ツール

時代はGit。 もう共通のスキルとして随分浸透してきたのではないでしょうか。 SourceTreeやIDEからも普通に使える時代ですし。 と言いながらも最近はcode書いて無くて原稿書く時くらいしかGitつかってないけど使う時は普段はbashからコマンド叩いています。

SSHクライアント

TeraTerm pro + Tera Term Menuを相変わらず使ってます。 bash来たからssh_configの運用も可能なのだけどTeraTerm proは便利なんですよ。 こうやったことの履歴をログに吐くとかマクロとかも使えるし。

その他

開発周りで変わったのは特に無いのだけど事務系だとタスクボードとしてTrello使っています。 あとはGithubに課金してるのでプライベートなタスクでも結構リポジトリ切ってissue切ったりプロジェクトのカンバン使ったりしてます。




所感

3年前はクラウドVMのお陰で環境捨てることが当たり前になったので随分楽になりました。 それがコンテナとWSLでより加速した感じですね。 振り返ってみるとXAMPとか使ってた頃みたいな開発環境と本番環境の違いによるバグみたいなのはホント減ったなと思います。 あとは複数環境を運用することも楽になったので受託開発の人とかはかなり楽になったのではないでしょうか。 そのほかにもシェルスクリプトからAnsibleに変わってサーバ構築が楽になったりとインフラ周りではcodeで管理出来る部分が増えた=人の手でやる作業が減ったと思います。 その半面、設計と環境作り、そしてトラブルシューティングに求められるレベルが上ってきてるなと感じてます。 そういうスキルが求められていると思うのでそちらもしっかり磨いていきたいですね。