コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

『Rails Developers Beer Bash 〜Railsのトレンドとこれから〜』に行ってきたよメモ

Unite2019Tokyoを早めに切り上げて勉強会はしご、本業のほうのRailsの勉強会である、Rails Developers Beer Bash 〜Railsのトレンドとこれから〜 に行ってきたよメモ

各発表の感想


2週間でRails5.1 > Rails6 タイムアタックチャレンジ

感想

  • 今日の発表までのタイムアタック
  • 過去にアップデート経験している方なので、ノウハウが生かされているのと、再現性のあるノウハウということが示される発表だった。
  • 5.1からのアップデートでも5.2を踏むほうがいいんだな…というのが知見として得られた感じ。

関連リンク


Rails6 Multi-DB 実戦投入

感想

  • Multi−DBの実戦投入事例。はやい。
  • 標準のRackMiddlewareだとGETだとRead、それ以外だとWriteというめちゃくちゃにDBと密結合な動きをする。密結合モノリシックの真骨頂という感じ。
  • 「複数のDBが使えるんでしょやったー!」ぐらいの心持ちで使うと痛い目を見そうなので、使うときはしっかりと理解しながら進めていきたい。

関連リンク


Railsパネルディスカッション

話していた内容を箇条書き風でメモ。

パネルディスカッションメモ

話したことをトピック別に

Rails6のアップデートについて、嬉しい機能など

  • アップデートに関してはテストがあったからうまくできた、dependabotをうまく使っていたという話があがった。
  • 『Multi-DB』に関しての言及が多く、switch_pointなどのgemを使っているケースから公式サポートのものに切り替えることができるなどで嬉しいという声がある一方で、シャーディングには対応していないのでそれらが対応してからという声もあった。
  • enumnot_hogehoge という表現ができるようになった 『enumのネガティブスコープ』 に関しては嬉しいという話があった。
  • サービスが長いのでテストが膨大化している部分から並列テストをデフォルトサポートしたことも嬉しいという声もあった。

RailsとMicroServices

各社、各人ごとに状況が違ったのでそれぞれのコメントを状態事例ベースの箇条書きで。

  • 元々まだ手を出していないという事例。それなりの規模になるまでは選択するメリットがないと思っており、できる状態にはしておくことで選択肢として残しておく。コードとしてはContextという単位で管理したり、Railsから外れるところ外さないところをちゃんと考えて動いている。
  • マイクロサービスしてみて、戻した事例。他言語からの乗り換えをしたりしている過程でGO-Langでマイクロサービス化したが、メンバーの技術の守備範囲的にメンテができなくなったこともあり、もとのモノリシックに戻した。
  • 徐々にモノリシックから切り出している事例。コードベースが大きくなってきたことにより新規メンバーが全容を把握するのが難しくなっているので、把握できる規模でサービスを切り出している。

Railsと技術負債

  • エンジニア全員参加でマイナスをゼロにする日などを設けていたり、週に1回PR振り返り会をするなどイベントを各々独自にイベントを設定していた。
  • 返済する、ではなく貯めないというアプローチをとっている。「最新バージョンに追従する」というのはそういう観点でやっている。そのためにはテストをちゃんと書いておいたり、モデルをテストしやすい構造にしている。
  • dependabotや、自前でgemアップデートに関して通知する仕組みなどを用いてgemのアップデートには取り組んでいる
  • JS周りやフロントの負債がたまりがち、フロントエンドエンジニアにレビューしてもらうことで負債を貯めないようにしている

Q&A

Q1. いままでの話の中で「モデルにデータロジックとビジネスロジックを分ける」という旨の話があったがどうやっているのか

A1. ApplicationModel(参考:ApplicationModel のある風景)を実践している。

Q2.dependabot,ちゃんと見てマージしているか

A2.クリティカルかそうでないかはチームの中で共通認識をもったり、ユーザーにインパクトがあるものはしっかり見るなど、各会社によって観点は違うが大事なものは見る、という形の様子。

感想

  • enumのネガティブスコープはさらっと認識はしていたが、結構現場では使い勝手よい機能ではありつつも、プレフィックス気をつけないといけない問題でてくるので意識にいれておかないとまずそうだと思った
  • ApplicationModelの資料はちゃんと読み込んだことがなかったので、FatModelと戦う方法をいつもぼんやり考えている自分としてはちゃんと読みたいと思った。

関連リンク


他LT

LTはダイジェストで。

GitHub Actionsで複数DBテスト

  • Multi-DBの話に見せかけて、MySQLとかOracleとかそういう意味の複数DB検証の知見
  • GitHubActions、まだ前調べてないので見ないとな…

Active Recordの向こう側

消費増税対応

  • ストレートな内容の話。いかに増税対応で改修しているかっているかというLT
  • 名前かぶりでえらい目をみたという話だったので、名前重要だし、冗長性のある名前は大事だなと改めて思う。

いこーよチケットサービスをRails6にアップデートしました。

Rails Developers Beer BashでLT登壇してきました。 - アクトインディ開発者ブログ

  • すごい変遷のある経歴を持つ方の自社プロダクトのRails6アップデートしたLT
  • テストがしっかりし、dependabotなどでgemのアップデートをしてたからできたという話でした。

全体を通しての感想

  • Rails6への上げ方、Multi-DB怖いところなど、次のRailsに向かうために必要な知識を色々仕入れられた。あとみんな意外とgemは随時上げるスタイルなんですね…という気持ちになった。
  • 世の中は大dependabot時代。JSも見てくれたりするのでちゃんと活用するようにしないとダメだな…と思った。
  • この後仕事があったのでサッと帰ってしまったがdependabot運用のキツいところとかを聞きたいなというお気持ちだった。

他の方のブログ