[レポート] ワールドパブ形式で語り合う “現場のRails”

2016.07.01

はじめに

『現場のRails』とうお題で弊社と永和システムマネジメント様とワールドパブを開催させて頂きました。 両社からビールとソフトドリンク、寿司とピザが提供されました。ごちそう様です!

IMG_9985

IMG_9986

ワールドカフェとは?

ワールドカフェのアルコールが入った版を ワールドパブ と呼んでいるようですね。テーブルオーナーを固定で今回は参加者は3回テーブルを移動しました。

テーブル毎にお題があり、今回は下記5つのテーマ=テーブルが用意されました。

お題

  • 『Rails アプリのインフラ』
  • 『Rails アプリの開発環境』
  • 『Rails アプリのレイヤー設計』
  • 『Rails アプリと Gem のアップグレード』
  • 『Rails アプリのテスト』

本編

Rilasという同じコンテキストを共有するエンジニアが事なるテーマで話し合う事で綺麗なだけの話しではない 現場の話しで盛り上がっていました。

IMG_9989

IMG_9992

各テーブルのまとめ

『Rails アプリのインフラ』

IMG_9994

  • どうやって本番投入する?
    • Rubyの環境を維持するのは難しい
    • 構成管理辛い
      • 宗教戦争になる
      • ネットワークに接続してる限り冪等性は無いよね
    • ImageMagic,Nokogiri
    • Capistrano結構使うよね
    • PHPと比較してRailsは大げさ
      • native extentionとか
  • Dockerどうでしょう
    • ボクが考える最強のデプロイ環境
    • 必然性は無いけどあればベター
    • Docker for AWS 欲しい
  • RDBMSの選定
    • Postgresいいよね
      • JSONサポート
      • Herokuの対応早い
    • MySQL
      • スケーラビリティ
      • 皆知ってる
      • AWSの対応が早い
  • グラフDBもあるよね
  • Postgres最高!

『Rails アプリの開発環境』

IMG_9999

  • 開発/ステージング/本番環境どうしてる?
    • Docker/AMI(AWS)
    • 本番でもDocker使ってるよ
    • AMIの問題は(構築に)時間がかかること
    • Dockerが嬉しいのはサーバー台数が30台くらい増えてからかも
    • クラウドになってインフラ費用は安いがオンプレより生産性は落ちてないか
    • AWSなら開発環境用アカウント作るとか
  • エディタ
    • 不毛なのでやめましょうw
    • IDEもいいよ
      • Terminalもあるし
      • 新人の教育に良さそう
        • 教育としてRubyの資格いいよね
    • 比較あるといいな
    • Sublimeのデフォルトいいね
    • Dash使ってドキュメント見る
  • CI/テストにガシガシPushして生産性あげよう

『Rails アプリのレイヤー設計』

IMG_9998

  • レイヤー分けるならRailsやめたら?w
  • なるべく使いたくないが‥
    • サービス層で導入してる
  • View周りではレイヤー使ってる
  • trailblazer
    • 使ってどうとか話し聞かない、二の足を践んでる?
  • ドメインの分割
  • コールバック嫌い
    • どうやって採用しないか
    • バリデーションをサービス層に書く
  • 皆さんサービス層好きですねっ
  • レイヤー設計を意識しないでおくとと幸せになれる

『Rails アプリと Gem のアップグレード』

IMG_9997

  • 今日Rails5が発表された
    • もう2人導入した
  • SINBERT
  • railsdiff.org
  • そもそもUpdateするモチベーションて何だっけ?
  • 自前モンキーパッチ当ててると真っ先に落ちるよね
  • 賞味期限設ける?
  • テスト/確認
    • 自動テストは最低限やろう
    • 開発環境で困らなきゃOK
      • 開発者間の認識でOKなら行ける
    • Cookpadのkage
      • リクエストのn%をRails5に送るとか
    • テストを増やす、ドックフーディング
    • 真面目にQA
    • Upgradeの自動化を利用

『Rails アプリのテスト』

IMG_9996

  • テスト書いてない人ー? 1人
  • どこまでテスト書く?
    • 外部サービスのテストどうしようか
    • Gemのテスト書く?
    • 時間実施時間かかる
    • 粒度がチームで揃ってない
    • テストを削るのは難しい
    • CIでコケるがどうしたもんか
  • Docker
    • 環境の違いでコケたりするので、環境そろえたら良いのでは

まとめ

どのテーブルも結論までには至らない印象でしたが、現場で実際はどうなの?という話しでワールドパブ終了後もむしろかなり盛り上がりました。

IMG_0003

結論や答えは自分の中で導くとしても、議論することによって良いヒントを得て現場に持ち帰られた良いイベントだったと思います。