Kaigi on Rails はリモート開催でしたので、それの見ましたよメモです。
各発表の感想
※資料スライドは見つけたら貼ります。
Viewがレンダリングされるまでの技術とその理解
動画をどうぞ
初日となる本日の動画は、Aaron Patterson(@tenderlove)さんの「Viewがレンダリングされるまでの技術とその理解」です。https://t.co/rjCy6HBCd3
— Kaigi on Rails (@kaigionrails) 2020年10月14日
お楽しみください!#kaigionrails
発表メモ
- Railsがリクエストを受けてから結果を返すまでをパートごとに分けて、わかりやすいコードを添えながら説明してもらった。内容は以下。
- Request
- WebServer
- Rack
- Middleware
- Router
- Controller
- View
- Rackはどんなことをしているか、Routeはどういう動き方をしているか、ControllerはViewのrenderにどうやってつなげているのか
感想
- なんとなく理解しているを改めてリクエストの流れをおうことでキレイな理解ができた。
bin/rails r 'File.binwrite "out.html", {{アプリケーション名}}::Application.routes.router.visualizer'
で画像で見ることができるので、機能があるのは知らなかったのでぜひとも仕事でつかっているアプリでつかってみたい
関連リンク
Railsパフォーマンス・チューニング入門
次のセッションは私です!!! 資料あるのでよければお手元にどうぞ https://t.co/2g0oAimNhA #kaigionrails
— 黒曜@Leaner Technologies (@kokuyouwind) 2020年10月3日
感想
- DBを中心にパフォーマンスでネックになるところを解説した話。
- 「MySQLの気持ちになって考えてみよう」という考え方はシンプルに考えやすくてよかった
- この手の話は大体N+1や発行クエリが増えまくる話が多かったけど、正しいindexを作ろうという(当たり前なんだけど)新しい切り口だった
関連リンク
FactoryBot the right way
#kaigionrails 本日の登壇資料はこちらになります! https://t.co/w6AbwukanI
— toshimaru (@toshimaru_e) 2020年10月3日
感想
- 何も考えずにcreateしてたけど、言われてみればbuildでいいじゃないかということを普通に思わされた話。
build_stubbed
やevaluator
での数の制御 は初見の情報だったので今後有効活用していきたい
関連リンク
Rails 6.1's ActiveModel#errors Changes
Thanks you for listening my talk in #kaigionrails. Here are my:
— lulalala_it (@lulalala_it) 2020年10月3日
Presentation:https://t.co/1h3Zu5w3W9
Blog post:https://t.co/ocIlbkR9u0
My imageboard "Mei" demo ^^:https://t.co/OUxdZSEFSR
感想
- Rails6.1からerrorsの中身が変わるよ!という話でした。
- いままで独自validationの結果をmessagesに直截足したりするバリデータ作ってたりするのでそこらへんが大変になりそうな変更だった。
- 地味につらさがある変化なので来たるべきときに備えて対応できるようにしておきたい
関連リンク
- Rails 6.1’s ActiveModel Errors Revamp | All talk but no code
- rails commit log流し読み(2019/04/25) - なるようになるブログ
Railsワンマン運転の手引き
ざっくり発表内容メモ
- Railsはサービスではない、そのためサービスとして成立させるためにはどういう要素が必要か?というのをRailsにちなんで鉄道にまつわる要素で説明
- サーバを電車、駅はロードバランサー、駅名(駅看板)を(DNSのほうの)ドメインとして例えた
感想
- 初学者向けの内容ではあったが導入やたとえ話の構成がいい感じになっており、とても楽しく聞けた。
- Railsのコードを書く、というような分業スタイルの人は見えないところなのかなと思うので俯瞰的な視点で考える力を持つことは大切だよなとしみじみ
- 車掌さんの帽子をかぶったりとリアル会場でなかったのが惜しまれるネタ仕込みだった
関連リンク
Railsはおまかせ(Rails is omakase翻訳) | blog.tai2.net - Rails周りのたとえ話といえばこちらも
継承とメタプログラミング満載なアプリケーションコードでもアクションとフィルタに悩まないためのGemを作った話
これからお話します資料です!
— makicamel (@makicamel) 2020年10月3日
before_actionなどのフィルタを一覧するGemを作ったので ActiveSupport::Callbacksのコードリーディングとか TracePointの話、 Gem を作りたくなった瞬間の話、作るのは楽しいというお話などをします!https://t.co/SUa9GHUroI
#kaigionrails
感想
- 継承されまくっているControllerのCallback類を把握するためのgemを作った際に得られた知見の話で、午後の昼後だったのもあり一発では理解するのが難しい話だった。が、とてもcallback実装の丁寧な説明だったので、読み直したい話でした。
- 地獄のような状況を打破するために自らでgemをつくるというのはよい話だし、業務だったりしたのかな…とか思った。
関連リンク
Action Mailbox in Action
というわけでありがとうございました。発表資料はこちらです https://t.co/aogORvdGXF #kaigionrails
— sylph01 (@s01) 2020年10月3日
感想
- 注意を払う必要がすごくあるSMTPの話とActionMailboxの話。
- 昨今メールサーバーを建てるようなシーンもないし、SaaSのほうがちゃんとやってくれるのでそこに乗っかるべきだなと切に感じた。
- しかしActionMailbox使うようなシーンって一体…
関連リンク
- Email in Rails (and/or introduction to "Dark Depths of Email") - Speaker Deck
- 【電子版】Dark Depths of SMTP - Cryptic Command - BOOTH
コードレビュー100本ノックで学んだRailsリファクタリング
スライドは見つけたら貼ります
発表メモ
- コードレビューを通して得た知見に関しての話、トピックごとに説明があった
- 命名
- クエリ
- 不安定テスト・スローテスト
- コミットへの意識
感想
- sleep使うな、findつかえ、というのは心に刻みたい
- コミットメッセージには理由を添えるというのは案外やってくれないんですよね…と思うのでこうやって定着化しているところはすごいいいなと思っている
- このあとのkoicさんの話にも繋がりますが、独立した変更単位のコミットを作るというのは大変大事だなと思った
- ただRailsの場合、Model+Controller+Viewでコミットつくるともりもりになるので、そのもりもり具合でやるのがいいのか悪いのかなどの見解を知りたい感じではあった
関連リンク
コードには How
— Takuto Wada (@t_wada) 2017年9月5日
テストコードには What
コミットログには Why
コードコメントには Why not
を書こうという話をした
育てるSinatra
動画は以下
Kaigi on Rails のアーカイブ動画毎日公開8日目です。
— Kaigi on Rails (@kaigionrails) 2020年10月21日
本日の動画は、onk(@onk)さんの「育てる Sinatra」です。https://t.co/NE8PwMY1dh
お楽しみください!#kaigionrails
発表メモ
- SinatraをベースにRailsライクなものを実装することでRailsを理解する
- ModelなどはActiveRecordを使うが、Railsがデフォルトでやってくれている設定なども自前で作る必要がある。
- RailtieというRails本体とも言えるようなものが存在する
感想
- Sinatra自体存在は知っているが、全然触れたことがなかったので、SinatraのシンプルさとRailsが色々やってくれているというのを改めて感じる話。
- スライドが再度見れるようになったら見直したい話。
関連リンク
- Rails の初期化プロセス - Railsガイド
- Railtie を使った Rails3の拡張 (翻訳版) - Engine Yard Blog
- Ruby on Rails Hacking Guide - Speaker Deck
新ミドルウェアActionDispatch::HostAuthorizationと学ぶDNSのしくみ
きょうは貴重な機会をありがとうございました!発表で使った資料はこちらです💁♀️
— ゆかお🦩🦩 (@yucao24hours) 2020年10月3日
(エピローグはスライドだけ見ても論旨がわからない感じだったので、アップロード資料では削除しています。個人ブログでポエムしようかな!) #kaigionrails https://t.co/sXa9jGCffd
感想
- ESM第2の刺客、DNSの基礎的な説明からそれを悪用した話、そしてRailsがどうやって防ぐ機構を設けているかという話
- このスライドで大体理解できる + トラブルシュート集もついていて他の人への情報共有力が高い発表でした。
- 内容ももちろんですが、スライドのビジュアルも素敵でした。イラストは手書きなんだろうけど、丸の囲みとかも手書きなんだろうか…
関連リンク
Rubyで書かれたソースコードを読む技術
本日、先ほど発表した資料です。https://t.co/9QkL6g4KCz 後日、本編に含められたなかった内容もブログに書く予定なのでぜひ読んでみてください。 #kaigionrails
— fukajun (@fukajun) 2020年10月3日
感想
- Railsにおいてソースコードを読み解いていくテクニックを語るスライド
- 便利なソース検知
source_location
をはじめ、puts caller
で呼び出し元を探る、 gemに動作確認コードを入れていき、戻すときはbundle pristine
などの豆知識満載だった
関連リンク
ActiveRecordの歩み方
発表資料です https://t.co/Nbtz0ZW5Io#kaigionrails
— Super Engineer Cat (@pink_bangbi) 2020年10月3日
感想
- ActiveRecordもRubyだから読める!という話でActiveRecordの読み方の話。
- かなり読むのに根気がいるのがActionRecordなのでライブリーディングもその辛さが出てました。
- 迷子になるので迷子にならないように目標をもつのが大事そう
関連リンク
- Ruby でデバッグする ruby_jard というツールが凄まじくすごい - Secret Garden(Instrumental)
- rails/active_record_gem.rb at master · rails/rails · GitHub
Ruby 3.0におけるドキュメンテーションと端末制御の未来
スライドなどではなかったので発表メモだけ… 動画は以下
Kaigi on Rails のアーカイブ動画毎日公開12日目です。
— Kaigi on Rails (@kaigionrails) 2020年10月25日
本日の動画は、aycabta(糸柳 茶蔵)(@aycabta)さんの「Ruby 3.0 におけるドキュメンテーションと端末制御の未来」です。https://t.co/fk5twUngX0
お楽しみください!#kaigionrails
発表メモ
- RubyのAPIを調べる方法は用意されているが、Googleで調べる利便性には負けるので、そこに対してirb側にドキュメント閲覧できる機能をirbの実装見直しに合わせて組み込んでいる話
- 上記の話に合わせて豊かな自然の映像とエモい話が要所要所に挟まる。
感想
- 話のネタ映像が凝り過ぎてて内容が素通りする発表でした。
- irbとpry、RDocとYARDの関係性に関して手堅くやるべきものと先進的なものとの切り分けをしているという話はなるほどなという感じだった。
- とにかくビデオプレゼンという形を最大限に利用したプレゼンだった…岸壁登ったり沢下りの映像と技術の話を交えて最後に深い話で閉めるのは印象の強さがすごかった
関連リンク
ひみつきちを作りたい 〜「こどもれっどまいん」テーマ作りでの学び
昨日のスライドになります。
— あきこ@MongoDBUniversity攻略中 (@akiko_pusu) 2020年10月4日
運営の皆様、ご覧くださった皆様、本当にありがとうございました。https://t.co/xKwplQNmmu#kaigionrails
感想
関連リンク
- GitHub - akiko-pusu/redmine_theme_kodomo_midori: Redmine theme for kids and children green version.
- 藤田重信(2016年6月13日放送)| これまでの放送 | NHK プロフェッショナル 仕事の流儀 - フォントワークスのフォントデザイナーの方の話、フォントでこれを思い出す。
快適なリモートワークを実現するために〜RailsでSSOを実現する3パターン
このあと16:10から発表します!快適なリモートワークを実現するためにSAML認証などやったことをご紹介します。資料はこちらです https://t.co/WET2h3klDN #kaigionrails
— Hiroshi Shimoju (@shimoju_) 2020年10月3日
感想
- 社内ツールのセキュリティ封じ込めアイデア「IP制限」がリモート時代で使えなくなってきたのでそこをどうカバーするかという話
- 社内的なツールのアカウント管理って会社組織やサービスの拡大に伴って絶対ぶつかる壁なので、この知見はすごく活きる発表だった
関連リンク
TDD with git. Long live engineering.
Kaigi on Rails での発表スライドです。ご清聴ありがとうございました。 #kaigionrails
— Koichi ITO (@koic) 2020年10月3日
"TDD with git. Long live engineering." https://t.co/qhVRFOU1VG
感想
- TDDの考え方、GitHub登場前後の状況などの歴史を含めてどういう形でGitHubのPRやコミットはあるべきかという話。
- 「誰のためのコード?個人のためのコードではなくチームのためのコードだよね」という旨の話は感銘を受けた
- rebaseとかsquashをちゃんと使いこなせてないので、これを期につかってみたいなと思った。
関連リンク
Sidekiq to Kafka 〜ストリームベースのmicroservices〜
なんかGoogle Slidesから出力したpdfの変換が微妙なんだけど、とりあえず発表資料を上げました。後半駆け足になったので気になる方は御参照ください。https://t.co/PSsriwk7Ma#kaigionrails
— アルフォートおじさん@ワクチン完全体 (@joker1007) 2020年10月3日
感想
- ActiveJobの特性から、非同期処理からKafka基盤の利用につながる話
- Railsでつくったものをいかに置き換えていくかという部分でも知見あるし、ストリームイベントに対しての戦い方みたいな意味でも聴き応えのある話でした。
関連リンク
- Confluent Platform 技術ガイド Kafkaとは?
- Kafka on Rails: Using Kafka with Ruby on Rails - Part 1 - Kafka basics and its advantages - Running with Ruby
Coming Soon... 💎
先週末に行われたKaigi on Rails 2020のクロージングキーノート「Coming Soon…💎」の発表スライドを公開しました!(遅くなってすみません……) #kaigionrailshttps://t.co/J5P0pYyTLV
— Akira Matsuda (@a_matsuda) 2020年10月5日
発表メモ
- OSSをやりたいというが、そのやるに至らないのは技術力不足ではなくきっかけではないかというところからのお話
- 直したいコードがあったときにすぐ動けるようにするのが大事、そのためにgem-srcなどを準備しておく
- gemとRailsPluginの違いに関しても当時の状況を交えて説明
- その後は松田さんが作っているRailsまわりのgemに関してのお話
感想
- 松田さんの作ってきたものの話といままでの歴史を交えたようなお話。
- kaminariが出来上がった話はいろいろなところで聞くことはありますが、作者の想像以上に使われたというお話は初めて聞いた感じでした。
- 「手触り」というのを普通のRubyモジュールを素直に使い、特殊な基底クラスを継承しないなど言語化されていてこの点参考にしようと思った
関連リンク
全体を通しての感想
- Railsの技術的な取り組み寄りの話多い感じでした。
- トップバッターのアーロンさんの話が中盤のRackを踏まえた話の前段として機能したり、ソースコードリーディング系の話から最後のOSS貢献の話へつながったりと、かぶっている部分が多少ありながらも
- 今回リモートということで、Liveでやるひとはもちろん、当日予定があるから録画で対応してくる人、映像交えてやりたいからビデオを出してくる人など色々なものがあってとてもバラエティに富んでいてよかった。
- スポンサー表示の仕組みなどはすごい旨味あるなーと思いながらみてました。
- リアルとは違うトラブルなどもあって大変そうでしたが、リアル現場にいけない生活環境の人たちにはすごい良いカンファレンスでした(懇親会とかもいきたかった…)運営の皆様お疲れさまでした!