何でも屋エンジニアのブログ

Rails中級者向け勉強会Step-to-Rails-Expert.rbや出席した勉強会に関するメモが多い

Step-to-Rails-Expert.rb第17回を開催しました

3/19(月)にStep-to-Rails-Expert.rb第17回を株式会社Speeeさんで開催しました。

step-to-rails-expert-rb.connpass.com

流れ

今回はレビュー会でした。

当日の流れは

  • 自己紹介
  • 会の概要説明
  • レビュー会
  • 懇親会

という形で進めました。

会の様子

今回は初めてキャンセル待ちが発生する状況で、当日体調不良やお仕事の関係で来られない方がいたもののそれでも12人の方に参加して頂き大盛況でした(この人数はMastodonをテーマにした会以来ですね) その中で、今回は4人のレビューを行いました。5人のレビュー依頼があったのですが、お一人は時間の関係で出来なかったので、次回以降優先的に行いたいと思います。

PRのURLは以下になります(実施順)。レビューの内容については、以下を見て頂ければと思います。

個人的には、神速さんのbackportを取り入れた実装が参考になりました。特に、Railsのバージョンを確認して、バージョンが上がっていた場合はエラーを吐く実装は必要性を強く実感しました。あと、meganemuraさんがパスワードレスの認証機能の実装を自前でやっていて、まだ完成形ではないですが続きの実装がとても気になりました。Sorceryの方ででマジックログインの実装に関わった経験があるので、どのように実装するのが良いか話せると面白いなぁと考えています。

PRのコメント以外で話したこと{#aaa}

  • diff を見る時のURL
  • system test ではデータベースのお掃除はいい感じでやってくれるので、database rewinderは要らないかも。
  • backportは、railsの新しい機能を予め入れておくこと。
  • メアドチェックの正規表現は1ページくらいあるやつもある。
  • おすすめメールアドレスバリデーション。
    • GitHub - balexand/email_validator: An email validator for Rails 3 and 4.
    • 2つモードがある。ゆるいモードと厳しいモード。
    • ユーザが先頭とか末尾にスペースをつけてしまうときがある。たまにrailsがスペースを消してくれないので、スペースありのメアドで登録されてしまい、ログインできなくなるという問題が発生する。
  • find系のメソッド使うときに例外返すかnilになるのかは要注意。権限がない系は404エラーにしたり、nilにする場合はその後の動作を考慮した上で実装すべき。
  • 認証用のテーブルをあえて別テーブルにした。
    • 認証系とユーザのテーブルを分けたいっている思想に触れたければomniauthを見ると良いかも。
  • RuboCopのdefaultだと中身のないメソッドはセミコロンで1行で書くように言われる。
    • 最初の設定だと辛いのでonkcopが参考になる。
  • ユーザプロフィールを更新するときにcurrent_userにそのままパラメータをセットしてupdateするのは危険。バリデーションエラーになっても共通セッションでそのまま保持し続ける。

次の仕様について

引き続き、現在の提示されている仕様に追いついた人がまだいないので、追加なしです。

学び

普段だいたい一人で行っていて大変だったので、今回は人数が多いこともありタイムキーピングやメモ取りをスタッフの@two_sannにお願いしました。かなり良い感じに進められたのとブログを書くのがすごく楽になるので次回以降もお願いしていこうと思いました。他にも私しか行っていない作業が多いので、流れややり方など徐々に共有していきたいと考えています。

次回について

次回は4/23(月)株式会社Speeeさんにて開催します。もくもく会となりますので、気軽にご参加ください。 アプリは作ったけど出席できなかった方や時間がなくてレビューしてもらえなかったという人は持ってきて頂ければレビューしますので、ぜひ再度ご参加ください!