5/31(火)に横浜のコワーキングスペースマスマスで行われた第20回ベイサイドRuby on Rails勉強会に参加しました。今回は5名の参加でした。ちなみに、第19回は体調が悪くて休みました。
挙がった話題などを覚えてる範囲でまとめておきます。
apiモード
Rails5の新機能、apiモードを使えば、api専用のRailsアプリを作ることができます。基本スマホアプリやフロントエンドのjsフレームワークなどを使っていれば、htmlを返すのではなく、jsonで返すことになります。
なので、Railsで生成されるviewなどは必要ないので生成されません。また、jsonで返すことが決まっているので、controller内でrespond_to
などで形式を指定するような記述がシンプルになります。
ただ、疑問として挙がっていたのが、もしapiモードで使いたいが、管理画面は通常のHTMLの画面が欲しい場合はどうすればいいか、というもの。
apiモードで作られたrailsアプリでscaffoldすると必ずviewなどがないapi用に生成されてしまいます。
通常モードでアプリを生成し、apiモードにしたい部分だけ、scaffold時に指定できればいいのですが、ちょっとその方法は見つかりませんでした。
あと、挙がった対策としては、DBだけ共有して管理画面用のアプリをもう一つ作るというもの。ただ、これだとモデルのコードの共有などができないので辛そうです。
pryの実験
自分はひたすらpryの使い方を実験していました。公式サイトにスクリーキャストがあるので、これを見ながらやっていました。
http://pryrepl.org/screencasts.html
スポンサーリンク
デザインと実装の切り分けについて
最初にデザインせずにいきなりコードを書き始めたら、ちょっと違うなと思って変更した場合に手戻りがあるのでは、と質問したところから、議論が始まり皆さんの考え方が聞けて勉強になりました。次のような意見が出ました。
- 考える作業と実装する作業は分けたほうがい。
- 自分の頭の中に仕様があるので、コードからやってしまった方が効率がいい。
- うちの会社ではエンジニアがある程度画面も作ってしまい、必要な部分だけデザイナーに手を入れてもらっている。
- 動きがあるアプリなので、事前にプロトタイプを作るのが難しい。作ってしまった方が早い。
さいごに
今回も色々な意見が聞けて勉強になりました。
みなさん開発する上で困っているのはデータ構造の設計の仕方のように感じました。どのようにモデルを関連させればいいのか、というような問題です。
確かにこれは慣れが必要かもしれません。(自分もよく悩みます)
通常のリレーショナルDBの設計通りではいかずRails独特な部分もあるためだと思います。アソシエーションやクエリー生成周りの部分はRails独特のものがあると感じます。