2012年1月7日土曜日

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

####2014/09/09 追記####

最近環境が変わって来たので別に書き直しました。

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


最新の事情はこちらをご参考にしてください

####ここまで####

年明け一発目はZENBOOKを買ったのでそれようの開発環境まとめました。
開発の今後のメイン機となるので今までの開発環境を引継ながらも新たに追加してチャレンジしている部分もあります。
WEB系の開発環境を整える人の参考になればと思います。
(もっと便利なツールあるよ!って方は是非コメントください!!)

まずはハードとかOSとか。
PCは上記で紹介したZENBOOK。
安い、早い、薄いなのでWEBの開発には充分かと。
ついでにMBAに酷似してますがトラックパッドの性能はMBAほどではないので開発にはマウス必須だと思います。
僕はLogicool派なので友人のお勧めってことでこれ(末尾のリンク参照)にしました。
ZENBOOKのdefaultのOSはWindows 7 Home Premium(64bit)です。
Business等が良い人はMSDNなりライセンスを購入するなりしてOSを入れ直す必要があります。
僕の友人の@razonさんはZENBOOKにLinuxを入れて普通に運用出来てるらしいので入れ直し自体は問題ないと思います(ドライバーとかの苦労は別として
ということで前提条件としてノートPCのWindowsOSです。

1 IME
IMEはMS-IMEを使われてる方が多いかと思います。
有償ではATOKも良く出来てるしAndroid版の評判も良いですね。
私もずっとMS-IMEを使っていたのですが業務でMACを触る際に「L+A」と打鍵すると「ら」が入力されて随分苦しみましたw
その際に始めたのがグーグル日本語入力です。
サジェストが強力とか顔文字がいっぱい登録されてるなどのメリットがあります。
他にも細かい所で「Z+H」で←が表示されたり郵便番号を-付きで入力すると対象の住所をサジェストするなどあります。
無料としては非常に優れており、多くの環境で用意されているのでお勧めです。

2 ブラウザ
WEBエンジニアは普段使いとは別に動作検証する必要もあるのでIE・Firefox・GoogleChromeはインストールするかと思います。
ただ最近は駆逐されつつあるIE6ですが、IE6はIE9でのエミュレーションが出来ないので対応しなければいけないときはIETesterが便利です。
他にはOperaが良く名前を聞くブラウザですが基本的に対応しないのでインストールしてません。
ついでに普段使いはFirefox派です。
昔はfirebugが必須と言われていましたが最近はブラウザ自体の開発ツールが充実してきてますのでFirefoxに拘る必要はないとも思います。

3 テキストエディタ
私は開発時のコーディングはIDE派です。
なのでテキストエディタは特にこだわりがないのですが国産で評判のいいSakuraEditorを使っています。
その前は秀丸TeraPadを使っていたのですが秀丸はシェアウェアなので辞めました。
TeraPadは特に不満が無かったのですが折角なら国産のエディタを使おうということで使ってます。
実際にテキストエディタを使う場面がlogを開いたりconfを弄ったりする程度なので活躍の場が少なく、比較としては不十分なのが正直なところです。

4 IDE
僕は長らくEclipse、特にPHPを書くときはPDTを愛用しています。
Eclipseと言えばAll In Oenとよく聞きますがノートPCだと重いので軽量なPDTを使っています。
Desktopなどのでマシンパワーがある場合はAll In Oenはダメな選択肢ではないと思いますので初心者にはオススメです。
しかしながら周囲にNetBeansを強く勧められ、インストールしました。
ちょっと触った感じではEclipseより軽量で使い勝手は同様なイメージです。
プラグインで機能追加も出来るところもEclipseと同様なのですがインストールが必要なため複数の環境を作りたい場合やPCの移行などの際はEclipseに比べてがかかるかもしれません。
ただシンプルにphpやRubyなどでWEBアプリを作る場合はEclipseよりも使い勝手が良さそうなのでphpとRubyに関してはNetBeansをしばらく使ってみようと思います。
ついでにvimやEmacsで開発とか僕には無理なのでご勘弁ください^^;

5 ローカル実行環境
WEBアプリケーションの実行環境はXAMPPを利用しています。
セキュリティの脆弱性は沢山あるのですが開発用として利用する分にはとても使いやすく構築が簡単なためオススメです。
簡単なアプリケーションを実行するには充分なのではないでしょうか。
EclipseのAll In Oenを使ったりすると標準でついてきたりするのでAll In Oenを使ってる人はこちらを使う方が簡単かもしれません。

6 RDB
XAMPPでmysqlはインストールされるのですがpostgreSQL派なのでpostgreSQL9.1もインストールしました。
これは必要がない限りは必要無いのでお好みでどうぞ。
実はOracleも入れようか相当迷ったのですがなんとか踏みとどまりましたw

7 DB管理ツール&SQLエディタ
WEB業界の人はphpmyadminなどを使う人が多いのですが(XAMPPを使うと標準でインストールされるし)私は用途に合わせて幾つかツールを使い分けてます。
まずはDB管理ツール。
これはOracleのSQLDeveloperを使ってます。
標準でOracleとAccessとmysqlに対応してくれます。
GUIで色々操作出来る(tableの追加やカラムの変更など)ことができる上にSQLの実行も出来ます。
トランザクションの管理や作ったtableのDDLの発行、出力情報のexport、DBのdumpなどなど便利なのでDBAの人にはオススメです。
ただmysqlに限ってはJDBCのドライバの追加が必要です。
ダウンロードして自分で配置してもかまいませんし、ツールバー→ヘルプ→更新を行い、 選択してインストールしても構いません。
普通はこれで充分なのでしょうがpostgreSQL使いとしてはpgadminも必須です。
pgadminは常に最新場を使えばいいというわけではなく(基本的には問題ないんだけど)使用しているDBのバージョンに合わせてpgadminを使い分けるのが良いです。
理由はpostgresのバージョンアップの機能追加に合わせてpgadminも機能追加していたり、仕様変更されているため、細かい機能を利用しようとするとハマることがあります。
pgadminに関しては高津さんのこちらのブログがわかりやすいので参考にどうぞ。
と基本的にはこれで充分なのですがSQL好きとしてはSQLのコーディングはひとつのツールでまとめたいものです。
なのでSQLエディタとしてA5:SQL Mk-2を使ってます。
これもOracleとmysqlは直接接続出来るのにpostgresだけはODBCのドライバーが必要ですw
ついでに追加時の文字列情報は

Driver=PostgreSQL Unicode;Server=ホスト名orIPアドレス;Database=DB名;UID=ユーザ名;Port=5432;

となります。
A5はER図を作ったり、そこからDDLを生成したり出来るので便利なので是非。

8 ファイル転送ツール
ちょっとSQLエディタが好きな分野なだけに長くなってしまいましたが次はファイル転送。
Macだと元々SCPをFinderで扱えたりしますがWindowsには付いてません。
またFTPもコマンドで送れますが不便なのです。
メジャーなところではFFFTPかと思いますが本来の開発者が開発を停止しているのでWinSCPを使っています。
FFFTPもSFTPやFTPSに対応していくとのことですが既にWinSCPは対応しており、よりセキュアで汎用的なのでこちらを使っています。
あとはさり気なく便利な機能としては同期機能があり、バックアップやファイルの自動転送などが便利です。

9 バージョン管理ツール
バージョン管理ツールはgitをメインに使っています。
正確にはmsysgitTortoiseGitです。
msygitがgit本体となり、TortoiseGitがGUIの部分を補っています。
TortoiseGitは必須ではないのですが視覚的に操作しやすくなるためオススメです。
とは言っても、私はまだまだGitの勉強不足で運用が追いついていないため、コマンドで充分だったりするのですが…
TortoiseGitで差分を比べたりが容易になるのでGUIが必須な人にはオススメです。
また同様にSVNがバージョン管理の柱ですが次の職場がSVNらしいのでTortoiseSVNもインストールしました。
TortoiseSVNも同様に視覚的に操作しやすく便利です。
SVNの方が仕組みがシンプルなため、開発とは別のバージョン管理ならこれで充分かもしれません。
バージョン管理については本当にまだまだ勉強不足のため、今年は重点的に学んでいきたいと思います。

10 SSHクライアント
SSHクライアントが標準で付いてこないWindowsですがメジャーなところはPuTTYかと思います。
WinSCPで接続中にもPuTTYをキック出来るため、複数のサーバを管理する際は便利です。
またサーバの接続情報の一覧もWinSCPと似ている(WinSCPが合わせているのだと思いますが)のでわかりやすいです。
個人的には日本語化が最初からされているPuTTYごった煮版を使ってます。
ただPuTTYはちょっと気軽に繋げたい時などは手間に自分は感じます。
なのでそんなとき(検証系とかの日常の開発)はTeraTerm proを使ってます。
これはTeraTermの後継ですのでご注意ください。
TeraTerm proは使い方はシンプルで独自マクロを使うとかなり強力なことが出来たりします。
その反面サーバの接続情報の管理が面倒だったりします。
なので本番系で使う際はPuTTYの方が便利ですが、こちらはシンプルなので単独で使う際はとても使いやすいと思います。


と10項目並べてみました。
あと特筆すべき点は特にないと思いますが自分の環境構築のメモのためにもちょっと追加。

◯ VM
必須ではないと思いますがVM環境を作るためにOracle(元Sunですが)のVirtualBoxを使ってます。
無料で気軽に使えるのでローカルでちょっとしたLAPPやLAMPを立てたり、検証する際に重宝してます。
巷の噂ではMacOSやWindows8も動くらしいです。
あと補足ですが個人的に本番系でVMを使うときはKVMを使ってます。

◯ ユーティリティツール
自分は良くマインドマップを書くのでFreeMindを愛用してます。
FreeMindはマインドマップを書いた後にhtml(htmlだとノードの開閉が出来る)にしたりPDFとして出力出来るので共有するときも便利です。
あとはVisioを使ったりすると思いますが有料です。
そこでオススメがWEBアプリになりますがCacooです。
図形画像も抱負だったりWEBなのでインターネット越しにファイルを共有しながら作成できたりと便利です。
また同じようにWEBアプリで便利なのがチャットワークです。 
Skypeにタスク管理やファイル管理機能が付いた感じです。
無料枠でも充分使いやすく、個人的なタスク管理等で使っています。
またWEBアプリのメリットはインストールが必要なく、データ管理がクラウドなため容易に移行したり、別PCでも使えることです。
また周囲の人も導入しやすいので仕事じゃなくてもちょっと気の知れた仲間と何かする時に使うのも面白いです。
後は業務に関係なく便利なのがクラウドストレージ。
私はメインにDropboxを使っています。
アプリをインストールするとOS関係なくフォルダの用に中身を共有でき、WEB経由でもアクセスできます。
GitのリポジトリをDropboxの中に作ったり、html等をDropboxのpublicに置くとブラウザで表示出来たりします。
他にも便利なクラウドと言えばEvernoteですね。
メジャーですし説明は不要かもしれませんがテキスト、音声、動画などのメモを保存出来て便利です。

と言ったところでしょうか。
メジャーな物が大多数なので皆様の中で全部知っている方もいらっしゃると思います。
そんな中でもっと便利なモノ・使い方があるよ!ってツッコミは常時募集しておりますw


 というわけでかなり長文になりましたが自分の備忘録も含めてZENBOOKに作った開発環境なのでした。
次はアプリつくらなきゃ(´・ω・`)