Railsで開発するときの環境

この記事は Classi Advent Calendar 2017 - Qiita 14日目の記事です。

今回は私がRuby on Railsで開発するときの環境を晒します。

Mac OSでの環境



- vim

ご存知CLIで動作する(GUIもある)テキストエディタ。NeoBundle等のプラグイン管理ツール特に導入しないでちまちまがんばっている。

カラースキームは [dracula](https://github.com/dracula/vim)を使っている。
vimrcはgithubにdotfilesリポジトリ作ってcloneしてくるだけでvimの設定が完了できるようにしてある。
インデントの数が言語によって違うのはftpluginで定義。

filetype plugin indent on

augroup filetypedetect
  au BufRead,BufNewFile *.c setfiletype c
  au BufRead,BufNewFile *.cpp setfiletype cc
  au BufRead,BufNewFile *.cc setfiletype cc
  au BufRead,BufNewFile *.java setfiletype java
  au BufRead,BufNewFile *.rb setfiletype ruby
  au BufRead,BufNewFile *.py setfiletype python
  au BufRead,BufNewFile *.php setfiletype php
  au BufRead,BufNewFile *.js setfiletype javascript
  au BufRead,BufNewFile *.yml setfiletype yaml
  au BufRead,BufNewFile *.slim setfiletype slim
  au BufRead,BufNewFile *.html setfiletype html
augroup END

RubyMineとかもちょっと触ってみたいなとは思っているが腰が重くてなかなか使いにいけていない。


iTerm

Macデフォルトのターミナルよりもちょっと高機能なターミナル

デュアルディスプレイにしてターミナルを29個並べるのが基本的なスタイルになっている。ターミナル少ないと作業が捗らない。


fish

fish shell

割と新しめな(たぶん)ナウいシェル。これもvimと同じくコンフィグファイルをgitにあげてるのでcloneするだけで設定完了できるようにしている。
rbenvとか勝手に設定してくれるようなのもあって重宝。ssh_agentはなんかうまく動いてくれないので別途設定ファイルを書く必要あり。


fixtures

主にテストデータの作成に用いる

今まではseedを使っていたがリレーションの管理が面倒なのでfixtureのyml管理に移行した。
テーブルが多く存在するDBだと大きな効果を発揮する。


こっからgem

better_errors

デバッグに便利なgem


rubocop・guard・foreman

コーディング規約を守らないと怒ってくれる便利なlint

開発環境ではrubocopをguardでリアルタイムで見張るようにしている。foremanをいれて一気にスタートできて便利。 コーディング規約をymlで管理できるのがとても嬉しい。

Procfileはこんな感じ

redis: bundle exec redis-server /usr/local/etc/redis.conf
web: bundle exec rails s -p 3000
guard: bundle exec guard -i

これをつくって,foreman startすれば立ち上がってくれるのでコマンドがシンプルになって良い。



思っていたよりもRailsのための環境はそこまでなかった・・・