たぶん僕の中で流行りとかある気がするので今のブームを記しておくことにする。
アプリケーションサーバ
なぜか頑なに thin を使っていたけど、今は puma にするようにした。別に深い理由があるわけではなく unicorn or puma の選択でなんとなく puma に変えてみただけです。
しいて言えば設定項目がなんか少なくて良さそうに見える?とかかな。「ぷーま」っていう響きもかわいい。
お別れしたGem
Devise と ○○Admin には永遠の別れを告げました。
最初は便利なんだけど提供されているデフォルトの機能以外のことをしようとすると死ぬほどつらい。ドキュメント見ても全然わからないし結局ずっとコード読むことになって、Webサービス作りたいのかGemいじりたいのかわからなくなる。。。
この辺りは「Twitter Bootstrap を使えば簡単にかっこいいページが作れる!」と見せかけて、Twitter Bootstrap をいじるのが死ぬほどつらいのに似ているのかもしれない…?
あと、論理削除かなぁ。論理削除gemの闇に殺されることもあるし、そもそも冷静に考えれば論理削除なんていう概念が必要ないことのほうが多そう。
出会ったGem
Decorator系のGemはもっと早く取り入れればよかった。 draper を使ってる。Helperにモデルに紐づくメソッド生やしすぎて死にたくなる現象ともお別れできた。
あとは jbuilder がつらかったので active_model_serializers を試している。まだ僕は「うおおおお便利いいいいいいい!!」という域まで達してないけど、jbuilder で頑張り続けるよりは良さそうかなって気がしてる。テストも楽そうだし。
これは個人プロダクトオンリーだけど、開発用gemをインストールするのが面倒すぎるので ikazuchi ちゃんに全てを任せます。僕は2-4で投げたダメ提督ですよ。
JavaScript
Rails で JavaScript を扱うのがつらすぎる
Sprocketsだけで頑張りたかったけど、関連gemのバージョン依存とか解決できなくてつらいし、頑張ったところでそんな便利じゃないのがつらい。なので JavaScript はnodeに任せることにしている。
最近は webpack で1つにまとめて vendor/assets/javascript
とかに吐き出すようにして、それをRails側で読み込ませるのを試し中。この方法なら埋め込みとかハッシュ付けの部分とかは Sprockets / Sprockets-rails の恩恵を受けられて、今までの Rails とそんな変わらずに使える。
何より Babel 使って ES6 な JavaScript で書けるのがうれしい。 Babel 使い始めてからすごくJSが楽しくなった。
今後のアレコレ
- テストをもっとバリバリ
- drone.io とかちょっといじり始めた
- 個人プロダクトだと Jenkins の設定をするのが面倒でCIできてなかったので、CIするクセが付くといいな
- API
- Single Page Application
- Rails っていうかほぼフロントになりそうではあるが
- Rails でやるときはどうやって攻めるか!みたいのを自分の中で決めたい
この辺りを考えながら謎プロダクトを生み出していこうと思うです。おわり。