Windowsユーザの私が最近使っている各種ツール（開発・資料作成・その他）

書いておけば履歴が残って便利なのでは？てことで書きました。
時代とともに追加・変更していこうと思います。

# 開発

## IDE

### PhpStorm

PHP 及び Node.js での開発に使用。
クライアントワークで最も多く使用する。
PHP に限らず Web 開発ならこれ一本でだいたいいける。

理論上可能ならだいたい静的解析してくれるため、言語仕様でやや難のある PHP でも一定の型安全性が確保できる。コード補完もこれ以上ないほど強力で軽快。

npm パッケージ管理ツールもついてて Node.js での開発に便利。

[PHP IDE :: JetBrains](http://www.jetbrains.com/phpstorm/)
[サムライズムで購入した](http://samuraism.com/products/jetbrains/phpstorm)

### VisualStudio 2015

C#.NET WPF, Xamarin での開発に使用。
[Visual Studio](https://www.visualstudio.com/)

## フレームワーク

### Phalcon PHP Framework

その名の通り、PHP WAF。
PHP extension として提供されており、オーバーヘッドが小さくて PHP WAF 最速。
DI が扱いやすく、個人的に最もさくさく開発できるWAF。

実際に使ってみるとわかるけど、WAF 最速といかいうレベルじゃない。
主要な機能が include なしで使えるわけだから、オーバーヘッドほぼ 0 の素の PHP と同等の速度でルーティングなど高機能な MVC 機能が使えると考えるとメリットがわかってもらえると思う。できるところは Redis を使ったりしてさらに高速化して使っている。

[Phalcon公式サイト](http://phalconphp.com/)
[日本語ドキュメント(公式)](http://phalcon-docs-ja.readthedocs.org/ja/latest/)

### Express.js

Node.js の WAF。現状で最もポピュラーという理由で使用。

[ExpressJS公式サイト](http://expressjs.com/)

### Knockout.js

RIA/SPA ライブラリ。MVVM での UI 開発を支えるシンプルなライブラリとなっており、ルーティングが必要であれば Sammy.js を組み合わせる、という使い方が多い。

PHP, Node.js いずれの開発においても使わないことはない、というくらい多用している。
データバインディングのない世界での UI 開発は、もはや現実的じゃないのでは、という状態。

[KnockoutJS公式サイト](http://knockoutjs.com/)
[非公式翻訳ドキュメント](http://kojs.sukobuto.com/)

### Aurelia

フルスタック SPA フレームワーク。

Durandal.js という Knockout.js ベースの SPA フレームワークを作っていた Durandal Inc という会社が次の主力フレームワークとして開発している。解決領域は AngularJS と同等であるが、AngularJS が閉じた All In One フレームワークであるのに対し、Aurelia はすべての機能がプラグインとして実装されており置き換え可能となっている。

[WrapBootstrap](https://wrapbootstrap.com/) によくあるアプリケーションテンプレートとの相性が非常によく、管理画面を作るときによく利用している。

AngularJS, Backbone.js, Knockout.js を比較する記事がよくあるが、AngularJS と比較できるのは Knockout.js ではなく Durandal.js  や Aurelia だといえる。

[Aurelia公式サイト](http://aurelia.io/)
[Durandal.js公式サイト](http://durandaljs.com/) 

### Livet

WPF の足りない部分、ややこしい部分を補ってくれる強力な MVVM インフラ。
WPF で開発する場合は必ず使用する。例外は無い。

[VSギャラリー:Livet - WPF4/4.5 MVVM インフラストラクチャ](http://visualstudiogallery.msdn.microsoft.com/ee198b62-fa45-496c-9c1c-e8f63b43f677)
[Github](https://github.com/ugaya40/Livet)

# 資料作成

## プレゼンテーション

### Microsoft PowerPoint 2013

やっぱりパワポがいちばん作業効率よい。

### Reveal.js

HTML + CSS3 + JS でスライドがつくれるライブラリ。
Markdown を使うこともできる。

[RevealJS公式サイト](http://lab.hakim.se/reveal-js/#/)

## 文書作成

### Brackets

Markdown の文書作成に使用。
Sublime Text のように様々なプラグインを簡単に追加できる。
HTML + CSS + JS で作られており、比較的簡単に拡張できる。

[Brackets公式サイト](http://brackets.io/)

### CuteMarkEd

Markdown の文書作成、および HTML/PDF/紙媒体 出力に使用。
シンタックスハイライトに対応しており、あらかじめ用意された 7 種類のスタイルで出力できる。

PowerPoint の作図力とのコンビネーションで、設計書,教育用資料や報告書等は十分作成できる。

[CuteMarkEd公式サイト](http://cloose.github.io/CuteMarkEd/)

# コラボレーション

## コミュニケーション・タスク管理

### Slack

[Slack](https://slack.com/)

2月より [ミラボ](http://mi-labo.co.jp/) という会社に就職し、エンジニアリングを一手に任されることになりました。
今後のエンジニアの拡充や教育も見据えて、今から社内のコミュニケーションツールをちゃんと選んでおこう、ということで Slack を試しています。

一言で言うと Twitter のチーム版です。
シンプルさと他のサービスとの連携や拡張のしやすさを兼ね備えており、社内コラボレーションのベースとして使えそうです。

### Trello

[Trello](https://trello.com/)

Trello はカンバン型タスク管理ツールです。
上記の Slack もだいぶ浸透したので、そろそろ Slack 連携できるタスク管理ツールも導入しようということでなにかよいツールはないかと探していたところ Twitter で教えていただきました。

**ボード（ホワイトボード的な）: リスト : カード**
という階層になっているので、それぞれ
**プロジェクト : 分類 : タスク/検討事項/課題**
のような割り当てで使ってます。

タスクだけでなく、会社の本棚もこれで管理してます。

## 端末間連携

### Pushbullet

[Pushbullet](https://www.pushbullet.com/)

Pushbullet は Web サービスであり Chrome 拡張であり、iPhone/Android アプリです。
端末間でコピペや通知の同期ができます。

私は SurfacePro3 と Xperia を使っていて、既にいろんなツールがあるし端末間の情報連携はそんなに困っていなかったのですが、この Pushbullet を使い始めて更に楽になりました。

エンジニアの天敵はコンテキストスイッチです。
今見ている画面から目を離して、別のことをするというのはなるべく避けたいですよね。
Pushbullet を Xperia で使っていると、スマホの通知が Surface のほうにも即時出てきて、
Android の通知画面でできることが全てできます。

![スクリーンショット 2015-02-07 13.57.30.png](https://qiita-image-store.s3.amazonaws.com/0/25145/096909f2-5d6e-cac0-ce09-7e47c7578c86.png)

不要な通知ならミュートできますし、消去で通知を消せば Xperia のほうからも通知が消えている、ということでいちいち Xperia のロックを解除して操作する必要がなくなります。

# その他

## サーバ接続端末

### RLogin

高機能 SSH クライアント。
今まで PuTTY, TeraTerm, Poderosa といろいろ試してきたが、Windows の SSH クライアントの中で最も扱いやすく痒いところに手が届くのが RLogin という感想。
画面分割, 簡易 SFTP, 柔軟な設定 等が使いやすくまとまっている。
「Nekoを飼う」という謎の癒やし?機能もある。

[RLogin公式サイト](http://nanno.dip.jp/softlib/man/rlogin/)

### WinSCP

Windows SCP クライアントの定番。
フォルダ監視もできるので一時期は常時起動での開発が多かったが、最近は PhpStorm が全部やってくれるので出番は少なくなった。それでも使うシーンは多い。

[WinSCP公式サイト](http://winscp.net/eng/docs/lang:jp)

## ストレージ管理ツール

### MySQL Workbench

phpMyAdmin のように Web サーバに直接インストールするのはあまり使いたくないので、
SSH tunnel 経由で接続してこれを使っている。

[MySQL Workbench](https://dev.mysql.com/downloads/workbench/)

### Redis Desktop Manager

その名のとおり、[Redis](http://redis.io/) に接続して管理するツール。

これも SSH tunnel 経由で接続する機能を持っている。
HASH, SET 型の内容も分かりやすく表示してくれるし、編集もできる。
PHP の serialize 関数を使って文字列化された内容も JSON のように表示してくれる。

[Redis Desktop Manager](http://redisdesktop.com/)