エンジニアの生産性を大きく左右する開発環境は人によって好みや相性があると思いますが、一つの例としてぼくが数年来使ってる12画面開発について書いてみます。

実画面3 × 仮想画面4

6〜7年前の大学生時代に初めてMacを手に入れた時、当時あったSpacesという機能に感動しました。アプリの切り替えってCommand+TabやDockから選ぶなどが一般的だと思いますが、どちらも「探す」という手間がかかるんですよね。直前に使ったのが確実ならCommand+Tab一回でいいんですが、数回前だと探しながらTabを連打していく必要があります。

ところがSpacesでどの画面にどのアプリを置くかを決めておけば、探さなくても直感的にその場所に行けばアプリも切り替えられる!しかも縦横2画面ずつの4画面ならどこにいても上下左右一発で好きなところに行ける!というのでぼくの必須機能になりました。

Mac OSX Leopardのとても便利な新機能 - Spaces(スペーシーズ)

ちなみにショートカットは今もずっと下記のように設定しています。

  • Option+S: 上に移動
  • Option+X: 下に移動
  • Option+Z: 左に移動
  • Option+C: 右に移動

左手だけで操作できる上にカーソルキーみたいな位置関係なのでこちらも直感的です。

時は流れ、楽天のとある部署でエンジニアとして働き始めたぼくは、当時のマネージャーの「全員にトリプルディスプレイを与える」という方針で3つの画面を手に入れます。

正直使うアプリが増えて1画面に1アプリでは収まらなくなっていたぼくは、このおかげで一つの仮想画面で3つの実画面それぞれにアプリを置くことができるようになりました。その時はWindowsだったのでVirtuawinというアプリで同様のことをしていました。

VirtuaWin

しかし、家ではずっとMacを使っていたぼくに、ある日衝撃が走ります。なんとOSX LionでSpacesがなくなってしまったのです。Mission Controlと名前を変えたその機能には、最重要項目である上下の配置ができなくなってしまっていました。端から端まで何回も移動ボタンを押すなんて考えられん!という同じことを考えた人はいたらしく、サードパーティで当時のSpacesの機能を再現したTotalSpacesというアプリが出てきて救われました。

TotalSpaces

楽天を辞めた今は業務でもMacを使っているので、これがないと仕事にならないぐらいのアプリになっています。

それぞれの画面の使い分け

足回りのツールの解説をしたところで、実際にどういう使い方をしているかを書いていきます。ちょっとでも参考になれば幸いです。

12画面の使い分け

SPONSERD LINK

左上:情報収集用

左上画面の主役はブラウザです。真ん中の27インチディスプレイにChrome様が陣取っています。左右の画面はわりと流動的です。今は左の画面にTweetDeck、右の画面にカレンダーアプリのSunriseがいることが多いですが、右側はスーパーサブとして必要に応じてChromeをもう1画面もってきたりSafariが来たりFinderが来たり色々です。基本Chromeを使った調べ物やWebサービスの操作のための画面です。

右上:開発用(ネイティブアプリ系)

こちらはメインの開発スペースとして、iPhoneアプリを作る時はXcodeが真ん中に陣取ります。右側の画面はそのサポートとしてXcodeから開いたドキュメントがあったり、参考のための別プロジェクトが開いてあったり、やはりFinderが常駐していたりと色々です。左側はあんまり使ってないですが、右側があぶれた時に一旦左に置いたりします。メモ帳代わりに使ってるAtom Editorも真ん中でXcodeの裏に待機していてたまに使われます。

左下:開発用(VM系)

左下はiPhoneアプリ以外の開発用です。楽天時代の師匠のマネをして始めたVirtualboxを使ってUbuntuのVM上でzshとemacsを使って開発するというスタイルをずっと続けているので、VMも3画面いっぱいに開いています。真ん中にemacs、右側にLXTerminal、左側にローカル確認用のChromeが常駐します。iPhoneアプリ以外は基本ここで開発します。実ディスプレイは真ん中27インチ、左右24インチなので、emacsも縦に2分割、LXTerminalはtmuxを開いて2〜4分割して使ってます。MacネイティブのターミナルもVMの裏に待機していて、iPhoneアプリ開発の時はこちらが主役になります。

右下:Slack用

右下の主役はSlackです。真ん中に大きく陣取っています。右側にはiTunes、左側にはAppStoreが並んでいますが、そんなに活用されてないです。

まとめ

とりあえずでかい画面をいっぱい使うと効率上がるで!っていう話でした。開発に集中してる時はSlackとかTwitterとかFacebookの画面が見えなくて余計な気が散らないのでわりと自分には合ってる気がしてます(通知が来ちゃったら結局気にはなっちゃいますが)。配置は自分でもプロジェクトの内容や気分によってちょいちょい変えたりしているのであくまで一例ですが、なんとなく何が便利かが伝わって同志が増えたら嬉しいです。こんなんもいいで!っていう開発環境自慢もお待ちしております。

ちなみに去年の暮れからずっとスタンディングトリプルディスプレイで仕事してます。肩こりが多少ましになったような気がします。間違いなく座ってる時より姿勢はよくなります。

スタンディングトリプルディスプレイ