WEB・アプリ開発

第20回ベイサイドRuby on Rails勉強会@マスマスに参加しました

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独特のものがあると感じます。