読者です 読者をやめる 読者になる 読者になる

スパイスな人生

素敵な人生をおくるためのスパイスを届けていきたい、そんな想いで仕事をするspice lifeメンバーブログ

spicelifeのエンジニアは、どんな開発環境で仕事をしているの?

f:id:yu_suke1994:20160616144237j:plain

お久しぶりです。TMIXが主な活動拠点のうなすけです。

エンジニアの皆さんは、先輩の作業を見ていて「えっ、何だ今のコマンド?!」となった経験はありますか?また、ペアプログラミングなどをしていて、ちょっと相手のPCを借りて操作するときに「自分の環境と違いすぎて操作ができない……」となった経験はありませんか?僕はあります。

そんな千差万別と言える開発環境ですが、自分に対して最適化していくものとはいえ、他人の環境も気になってしまうものです。そこで、弊社開発部の開発環境を調査してみました。

五十嵐

  • 担当 CTO
  • 使用PC Macbook Pro 15inch JIS配列
  • ターミナル iTerm2とzsh
  • エディタ Emacs
  • よく使うalias
    • pbc
      • pbcopy
    • reload
      • source ~/.zshrc
    • ghb
      • hub brouse
    • ec
      • emacsclient -n
    • pwdc
      • pwd | pbcopy

f:id:yu_suke1994:20160616135758j:plain

雑談

五十嵐 : railsの各種コマンド、bin/railsやbin/rspecなどへのaliasは、railsのバージョンが変わるごとに変化していったのを覚えています。

うなすけ : 僕はrailsの3からしか知らないので、そこまで大きく変わったと感じることはないのですが、確かにrails 5に代わるとrakeコマンドがなくなるのでみんなaliasの更新をすることになりそうですね。五十嵐さんはコマンドのaliasよりキーバインドの設定のほうをよく使われますよね?

五十嵐 : そうですね、そちらの使用頻度が多いかもしれないです。僕はalfredのworkflows内に、hotkeyでchromeemacsをOptionキーとの組み合わせて起動できるように設定しています。Optionキーとの組み合わせなのは、windowsにこのキーがなく、windowsを使っている時に押してしまうことがないからです。

うなすけ : alfredは便利そうですね。僕はspotlightでアプリ名を入力して起動しています……

ゆーけー

  • 担当 開発部副部長、STEERS
  • 使用PC Macbook Pro 15inch US配列
  • 外部キーボード Kinesis Advantage
  • ターミナル iTerm2でfishとtmux
  • エディタ vim
  • よく使うalias
    • gclean
      • git fetch; and git branch --merged origin/master | grep -v "^\s*master" | grep -v "^*" | xargs git branch -D'
  • dotfile ukstudio/dotfiles

f:id:yu_suke1994:20160616140200j:plain

雑談

ゆーけー : おすすめの設定と言われても、変わったことをしないので特に紹介できるものが…… やりたいことがあったら、Rubyでscriptをパパッと書いて、pathの通っているところに置いておく、という事が多いです。最近書いたのは、gitのmasterとdeploy branchとの差分からマージされてるpull requestを取得する、といったものです。
他には、tile window managerとしてianyh/Amethystを使っていますね。

うなすけ : kinesisを使っておられますが、Ergoboxに移行する予定とかはないんですか?

ゆーけー : Ergoboxねぇ……気になってはいるんだけど……

ゆーけー : なんでalias使わなくなったんだろう……年をとったのかな……

あそなす

  • 担当 TMIXリードエンジニア
  • 使用PC iMac 5K & Macbook Pro 15inch US配列
  • 外部キーボード HHKB Type-S
  • ターミナル iTerm2 zsh tmux
  • エディタ atom(vim-mode) macvim
  • よく使うalias
    • s
      • ~/.ssh/configのHostNameを grepしてそれをpecoに渡しsshするコマンド
    • o
    • t
      • ghiを使ってGitHubのIssuesの一覧をpecoに渡して開けるコマンド
    • be
      • bundle exec
    • a
      • git add
  • dotfile asonas/dotfiles

f:id:yu_suke1994:20160616140257j:plain

雑談

うなすけ : あそなすさんのMacbookはよく光ってますよね

あそなす : あれはLightningKeyboardですね。かっこいいんですが、カンファレンスなど暗い場所で使うと非常に迷惑ですね。

うなすけ : terminalでよく使うコマンドってなんですか?

あそなす : rupa/zというコマンドがあり、よく行くディレクトリの中から引数で検索してcdしてくれるのでよく使います。
他だと、vimではspaceの2連打を:wにしていたり、space+qspace+Qをそれぞれ:q:q!に割り当てたりしています。

うなすけ : 僕のdotfileもあそなすさんの設定を拝借したものがいくつかありますが、spaceから始まる設定が多いですよね?

あそなす : あれは、なるべくホームポジションから手を話したくないからですね。

雲藤 : それだと、commandキーは使わないんですか?

あそなす : commandキーを使わないのは、macじゃない環境、例えばserver上で作業するときはcommandキーが使えないからですね。

うなすけ : 他によく使う設定があればお願いします。

あそなす : chrome extensionだとWhatFontや、r7kamura/github-streamをよく使います。それ以外だと、alfredの設定でCtrl+gESCにしたり、Ctrl+tでfinderが、Ctrl+-atomが起動するようにしたりしていますし、iTerm2のHotkeyをCtrl+=に割り当てています。

うなすけ : そういえばasonas/rails5baseは便利だと思うので説明お願いできますか?

あそなす : asonas/rails5baseというのは、自分がrailsでアプリを作るときに雛形として使えるようになっているものです。どのようなアプリを作ることになっても必ず使うgemが入っていますし、deppbotで常に最新のgemを使うようにしています。

下山

  • 担当 TMIXの画像周りの処理、工場発注画面開発
  • 使用PC Macbook Pro 15inch JIS配列
  • ターミナル iTerm2 zsh
  • エディタ Emacs
  • よく使うalias
    • bi
      • bundle install
    • bu
      • bundle update
    • be
      • bundle exec
    • gitmergedd
      • gitでmerge済みのbranchを選択して削除

雑談

うなすけ : 下山さんはメインブラウザがfirefoxだったり、エディタがemacsだったりと社内では少数派に属していますね。

下山 : firefoxはタブを縦に並べることができるので使っています。emacsも特に設定をいじったりはしていなくて、emacs-jp/init-loaderを導入しているくらいです。あとはtmuxを覚えたいなーと思いつつも手を出せていない感じですかね。

うなすけ : あとは……下山さんは机がただの荷物置き場みたいになってますよね?

下山 : 僕は椅子に座るよりも床に座って作業したいタイプなので、もっぱら土足禁止エリアで作業しています。

栗原

  • 担当 主にTMIXの画像周りの処理
  • 使用PC Macbook Pro 15inch US配列
  • ターミナル iTerm2 zsh
  • エディタ atom vim
  • よく使うalias
    • dc
      • cd
    • l
      • ls
    • aliasはあまりつかわない 検索の方をよく使うとのこと
  • dotfile ksss/dotfiles

雑談

うなすけ : 栗原さんはとにかく自作ツールが多い印象があるのですが、それらを紹介していただけますか?

栗原 : ksss/l2dというのがあり、これは、「batchを回していて、進捗があるのを確認したいけど出力は別にいらないな……」という時に使います。1行の出力が1ドットになります。あと、keynoteを作るときによく使うのがksss/faで、これはfontawesomeの文字コードをコピーできます。
最近作ったのだと、ksss/esa-cliですね。これはesacliから見られるようにするツールなのですが、imgcatに依存しているのでiTerm2 version3以降でしか使えないです。

栗原 : あとは、膝の上にMacbookを乗せて作業するのが僕のスタイルですね。外部キーボードも使いませんし、モニタも頭の処理が追いつかなくなるので使いません。

うなすけ : でもこれからの季節、膝に乗せて作業するとMacbookが熱くなってきて嫌じゃないですか?そういう時に僕はキーボードだけ膝の上に、Macbookは机の上に置いて作業するのですが。

栗原 : その場合、トラックパッドはどうするんですか?

うなすけ : 気合でトラックパッドまで手を伸ばします。

南谷

  • 担当 TMIXの工場発注画面開発
  • 使用PC Macbook Pro 15inch JIS配列
  • 外部キーボード 東プレREALFORCE 91UBK-S
  • ターミナル iTermでzsh(oh-my-zsh)
  • エディタ atom
  • よく使うalias
    • gl
      • git pull
    • gco
      • git checkout

f:id:yu_suke1994:20160616140500j:plain

雑談

うなすけ : これは人によって評価が別れるところだと思うのですが、oh-my-zshは使いやすいですか?

南谷 : 使いやすいですよ?aliasが豊富にありますし。よく使うaliasもoh-my-zshが設定してくれているものですね。むしろ僕は、oh-my-zshのaliasから学ぶことも多くて助かります。gitでmerge済のbranchをすべて消すaliasとかですね。

うなすけ : 今覗いてみましたけど、確かにかゆいところに手が届く系のaliasが多いですね…… oh-my-zsh plugins/git/git.plugin.zsh atomのThemeは、これはなんですか?

南谷 : atomのThemeはjesseweed/seti-uiを使っています。atomといえば、僕は工場さんとのやり取りが多く、その時にCSVを編集することが少なくないです。その場合にabe33/atom-tablrがとても便利です。

うなすけ : あっ、これを使うとatom上でCSVExcelみたいに表示できてとても見やすいですね!?

じぐそう

f:id:yu_suke1994:20160616140545j:plain

雑談

うなすけ : なんかオススメの設定とか……

じぐそう : terminal上ではCtrl+o+fでカレントディレクトリをfinderで開くようにしています。Ctrl+o+aだとatomになりますね。 自分でつくったchrome extensionでよく使うのがe-jigsaw/universal-tab-switcherで、これはchromeで開いているタブをキー入力で絞込み、移動することのできるextensionです。他にもe-jigsaw/universal-url-modifieramazontwitterの画像のURLを短縮したりオリジナルの画像を表示してくれたりして便利です。

じぐそう : GitHubを見るときには、検索の補完をしてくれるGitHub Awesome Autocompleteと、表示領域の横方向の拡大をしてくれるgithub.expandinizrが便利ですね。

じぐそう : 開発の上でよく使用するのは、React Developer ToolsJSON Formatterです。 それと、自分はcolor schemeを全環境でMonokaiに統一しているのですが、chromeのdeveloper toolのcolor schemeを変更するためにDevTools Authorを入れています。 あとは……タブを開きすぎた時などにOneTabはよく使いますね。

うなすけ : めちゃめちゃ出てきましたね

やまま

  • 担当 STEERSのアプリケーション開発と、社内全体のインフラ管理
  • 使用PC Macbook Pro 15inch US配列
  • 外部キーボード HHKB Professional2 無刻印 墨(2年目)
  • ターミナル iTerm2でbashでtmux
  • エディタ vim
  • よく使うalias
    • g
      • git
  • dotfiles kirikiriyamama/dotfiles

f:id:yu_suke1994:20160616140625j:plain

雑談

うなすけ : Shellはbashなんですが?zshを使っていると思っていたのですが。

やまま : Shellは、少し前まではzshを使っていました。でもconfigがものすごく大きくなっていって、管理の面でも大変になってきました。なので一度全部消して、チーム内で話題になったfish shellを使い始めてみたんです。ただ、自分の場合はサーバー上での作業も多く、結果的によく使うshellは素のbashになっていると思います。

うなすけ : おすすめの設定とか、これがないとつらいという設定はありますか?僕が覚えているのでは、ターミナルで空enterを打ち込むとlsとgit statusを表示するというのが印象的ですが。

やまま : あれはzshの頃の設定なので今は使っていないです。やはりよく使うのは mirakui/ec2sshpeco/pecoを組み合わせて、ssh先のsc2インスタンスを絞り込むものですね。shell関係だとpecoはよく使います。vimだと、tpope/vim-surroundはないと生きていけないです。

雲藤

  • 担当 TMIXのアプリケーション開発(新卒!!)
  • 使用PC Macbook Pro 13inch JIS配列
  • 外部キーボード 特に無し
  • ターミナル iTerm2でbash
  • エディタ atom
  • よく使うalias
    • g
      • git
    • be
      • bundle exec

f:id:yu_suke1994:20160616140713j:plain

雑談

うなすけ : 雲藤さんの作業環境を見ていて思うのは、ターミナルやエディタのウィンドウを最大化せずに使っていますよね。僕は広くしないとダメなのですが、見づらくはないのですか?

雲藤 : 私が中学生の頃、先生が「ノートに長い文章を書くと、目で追わなければならない」とのことで、ノートを4分割して使うようにと指導されたことがあります。その頃から、「このウィンドウはこのサイズ!」と決めて、広い範囲を使わないようにしています。

うなすけ : そういう話は始めて聞きました。確かにそれはそれで理に適っているのかもしれないですね。あとは、雲藤さんはマウス派ですよね?そのマウスにはこだわりとかはあるのですか?

雲藤 : いえ、特にこだわってはいないのですが、トラックパッドよりはマウスを使いたいですね。家でもペンタブがあるのですが、それとマウスを併用しています。

うなすけ

  • 担当 TMIXのアプリケーション開発
  • 使用PC Macbook Pro 15inch US配列
  • 外部キーボード 使ったり使わなかったり(いろいろ買って試している途中)
  • ターミナル iTerm2でzshでtmux
  • エディタ vim
  • よく使うalias
    • g
      • git
    • be
      • bundle exec
    • la
      • ls -alGh
  • dotfile unasuke/dotfiles

f:id:yu_suke1994:20160616140750j:plain

僕はこれまで聞いて回った先輩方、特にあそなすさんとやままさんのdotfileを参考にした設定が多いです。それ以外だと、esaやidobataを使うときにCopy as Markdownはよく使います。もちろん、この記事を書くときにも使いました。

他には、githubmarkdownを書くときにesareaが便利です。 あとは、macが勝手にsleepにならないようnewmarcel/KeepingYouAwakeを入れています。

まとめ

あらためて開発部のみなさんの開発環境を調査してみると、思いがけない発見があるものです。ukさんのタイルウィンドウマネージャーだったり、じぐそうさんの自作chrome extensionsだったりは、入社して以来初めて知りました。 1年くらいの間をあけて、定期的に開発環境を調査していくと、新しいツールの発掘や、仕事の内容の変化があったりして面白そうですね。

みなさんは、「これインストールしてみよう!」となったり、「いやいや俺のこの設定のほうがもっと便利だ」というような自慢が生まれたりしたでしょうか?

もしもそうであれば、あなたの開発環境エントリーが公開されるのをお待ちしています!

追記

2016-06-16 17時27分 人物名の一部変更、また敬称の削除を行いました。

2016-06-17 9時14分 誤字脱字の修正を行いました。