# 【第17週】パRails輪読会 \(2022\-11\-14\~ 2022\-11\-18\) ###### tags: `パRails(2回目)` - [開催概要](https://hackmd.io/rOcLR0riRqmOgEF0_Ssm0A?both) - [パRails輪読会 ノートまとめ](https://hackmd.io/5emISRvRRXapmakSiHnFJg?both) ## パRailsのサンプルコード・正誤表 - [サポートページ:パーフェクトRuby on Rails【増補改訂版】:|技術評論社](https://gihyo.jp/book/2020/978-4-297-11462-6/support) - [パRails 環境構築の手順](https://hackmd.io/y7qb2BRMT2Wd4tAtKYObcQ) ## 目次 [TOC] ------ ## 2022\-11\-14(月) ### 連絡事項や確認・相談 - Saki:用事があるため50分くらいに抜けます🙏 ### タイムキーパー ### ドライバー - fuwa ### 読んだところ - P.418[9-3 静的解析]〜 ### 次回 - P.423 [9-3-1 RuboCop RuboCopの活用方法]〜 ### 自由に使う共有スペース ### 各自の疑問点や気づき、学んだこと - @maimu_x2x - Gitにはコミット前など特定のタイミングでコマンドを実行するフック機能があるということを知らなかった。 - pre-commitフックでコミット前にRuboCopの検査を実行できるのは便利! - よく行末に余計なスペースが入って怒られるため自動修正使ってみようと思った。 - VSCode のデフォルトの機能で検出&削除できますよ。VSCode じゃなくても標準的なエディタにはあるはず。 - hikaru - `rubocop -a`:safeだけ自動修正 - `rubocop -A`:unsafeを含むすべてを自動修正 - https://koic.hatenablog.com/entry/rubocop-safe-option-and-safe-auto-correct-option - gitのフックなど便利機能まだまだありそう、sampleがたくさんある! - @fuwa - RuboCopの個々のルールをcopといい、個別に実行することができる - gitには特定のタイミングでコマンドを実行するフック機能があり、コミット前にrubocopを実行させるなどの使い方がある - `rubocop -a(A)` で自動修正できる。大文字の方は直せるやつ全部直してしまうので注意。最近チーム開発だったので忘れつつあった。。。 - Saki - VScodeにrubocopの拡張機能を入れて、すぐに書き間違いに気付けるようにしておく - 梅本さん - https://marketplace.visualstudio.com/items?itemName=misogi.ruby-rubocop - https://marketplace.visualstudio.com/items?itemName=misogi.ruby-rubocop  > 線が引かれるのは rubocop の exntension の機能で、コードの横にメッセージが出るのは error lens の機能 - Gitコミット前にrubocopが実行される機能がある。自作サービスで`bin/lint`の実行を忘れてpushしてCIが落ちて気づくことが多かったので使いたい! - 自作サービスでもっと効率良く開発できたなと思うTipsがいっぱい知れて勉強になりました! - @garammasala29 - pre-commitフック便利だし、vscodeのrubocopの拡張機能入れてなかったので入れました!これでよく作ってしまっていた`bin/lint`みたいなコミットがなくなりそうで嬉しい - `bin/lint` みたいなコミットは、コミットとしては意味がないのでやめましょう (意味的なまとまりを形成していない) 。 - 🫡 - `# frozen_string_literal: true`はおまじないじゃないよ。 - @tomonari - pre-commitでcommit前に自動でrubocopを走らせられるんですね。ただ、VSCodeの拡張でrubocopを入れておいた方がいいという話が参考になりました。 ### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK) - @fuwa - チーム開発で他のモデルを継承したら処理ができたのですが、駒形さんにそれはダメって言われちゃってどうしたらいいか困っています - なにをやりたいですか? - https://github.com/fjordllc/bootcamp/issues/5609 - ぜんぜんわからないw やりたいときに声かけてください - よく行くバーのよく話していたバーテンダーさんが退職してしまったので飲酒卒業になりそうです - :nakerebatsukuru: - @garammasala29 - 走らされすぎて月曜日なのに週末のような疲労感があります - :tea: :tea: 終末感 - @tomonari - 明日ワクチン4回目を受けてくるので輪読会は欠席します〜。遅い時間しか予約取れなかった:cry: - おお〜お大事になさってください! - hikaru - るんるんで美容院行ったら予約来週でした - @maimux2x - 昨日髪を染め直してきたのですが、お任せでやったらワインレッドみたいな不思議な色の頭になりましたw - :wine: - Saki - 今日は皆さんのトピックが濃いですね...! - 転職活動初めてで職務経歴書書くの初めてなのでなんだか不安です〜 - @cafedomancer - 来週、仮免の試験になりました! がんばります! - :gogo: - 本免は手稲の運転免許試験場じゃないですかね? - 麻生です。最寄りではないです。30分 ------ ## 2022\-11\-15(火) ### 連絡事項や確認・相談 ### タイムキーパー - Saki ### ドライバー - ガラムマサラさん ### 読んだところ - P.423 [9-3-1 RuboCop RuboCopの活用方法]〜 ### 次回 - P.429 [9-4-2 Coveralls] ### 自由に使う共有スペース - 梅本さんやharuguchiさんがいらしたら、現場ではBrakemanやカバレッジ測定のツールをどういう感じで使っているかお聞きしたい。 -  - bundle exec brakeman ``` == Overview == Controllers: 7 Models: 4 Templates: 21 Errors: 0 Security Warnings: 0 == Warning Types == No warnings found ``` ### 各自の疑問点や気づき、学んだこと - @maimu_x2x - BrakemanやSimpleCovはエンジニアよりもQAチームが指標として使ってそう。 - 脆弱性測定は外部のツールで有償対応も可能なはず。 - @garammasala29 - vscodeでhtmlファイルを開くには右下GoLive - rubocopの`--auto-gen-config`オプションを使うと`rubocop_todo.yml`が作成され、警告が出ているコードについての説明書きがみれる。段階的にrubocopを導入していくのに便利 - SimpleCov、すぐに導入しよう - @fuwa - カバレッジとはアプリケーションのコード全体のうち、テストコードにより実行されたコード割合がどの程度なのかを示す指標 - SimpleCovというGemでカバレッジを測定できる。どのくらいの割合だと良いんだろう? - Brakemanというgemを使うと脆弱性のありそうな箇所のレポートを出力してくれる。 - bootcampには導入されてなさそう - LEF - Rubocopにオプションをつけると、段階的にテストができることが分かりました。todo.ymlをrubocop.ymlに移すと抑制されたままになる。 - Brakemanで脆弱性が確認できるらしい! Bootcampのアプリでは使われているのかどうか(どうやって脆弱性を防いでいるのか)が気になりました。 - SimpleCovでテストのカバー率や、どのコードがテストされていないかが確認できる。 - ただしシステムテストは確認できないっぽい - VSCode右下のGo Liveボタンを初めて知りました👀 - 即座にブラウザに反映される - hikaru - `--auto-gen-config`を使うと、.rubocop_todo.ymlが生成されて何を修正すべきかどう修正すべきかがわかって便利 - Brakemanで脆弱性診断ができる - フィヨルドは何かやってるのかな? - SimpleCovを使うとテストのカバレッジやテストが書かれていないコードがわかる - Saki - SimpleCovは、システムテストのカバー率は測定していない(できない?)。モデルやコントローラは、どのコードのテストを、どこに書くか決まっているので測定できるが、システムテストは、決まっていないので測定できないのかなと思った - 面接でカバレッジ率聞かれるの怖すぎる...😱 自分が今どれくらいテストを網羅できてるかこういうツールを使って指標を持てるのはありがたいですね!私もSimpleCov入れます ### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK) - @maimu_x2x - クリスマスに関連するnpmを作りたいと思ったのですが、既出で既に色々ありました・・・ - 2のn乗を当てる数当てゲームを作ろうと思います。 - 2^20までは覚えてます:muscle: - さすが!! - @garammasala29 - 今日もハムスターのように走った! - :tea: - :himawari no tane: - いーなー、ハムスター - :kawaii: - Saki - やっと自作サービスが使ってもらえる状態になったのでスクラムチーム宛にお知らせを出しました。そわそわしてます - 登録しました! - ありがとうございます〜! - :tada: - @fuwa - バイト受かりました〜月末から3月末あたりまでです - ヒトカラ4時間くらいしたせいで喉カッスカスですみません - 普段と声違うな〜風邪かな〜と思っていました - ヒトカラうらやましい! - ヒトカラ良い! - hikaru - ドコモショップに行ってきました!今日は予約間違えませんでした! - @haruguchi - 自分のプロジェクトのテストカバレッジ知らないな - 最近来れてないのは朝起きるのが遅いせい - :punch: - ランニング、、、なんか運動する仕組みを作りたい - 自転車欲しい ------ ## 2022\-11\-16(水) ### 連絡事項や確認・相談 ### タイムキーパー - tomonariさん ### ドライバー - Hikaruさん ### 読んだところ - P.429 [9-4-2 Coveralls]〜 ### 次回 - P.436 [10章 コンテナを利用したRailsアプリケーションの運用]〜 ### 自由に使う共有スペース ### 各自の疑問点や気づき、学んだこと - @maimu_x2x - パフォーマンス測定を助けてくれるサービスは便利だけど、自分自身でパフォーマンスを意識した設計ができるようになりたいと思った。 - 更新処理が重すぎてタイムアウトしちゃう系も統計取れるのかな👀 - @fuwa - パフォーマンスを測定するサービスがたくさんあるんだなぁと勉強になりました - 仕事をしていく上でパフォーマンスも意識しないとですね - @tomonari - rack-mini-profierが自動でパフォーマンスを表示してくれて便利だと思いました。あまりパフォーマンスを意識してきませんでしたが、実務では必要になるということで気にしていかなくてはと思います! - hikaru - Coverallsは画面を見る限りカバレッジの推移とかがモニターできそうでした - rack-mini-profilerは手軽にパフォーマンスを計測できるので便利 - SQL大事 - @garammasala29 - rack-mini-profilerは`rails new`したときから自作アプリに既に入っていたけど、いつのバージョンからデフォルトになったのかな? - 自作サービスにbreakmanいれたらちゃんと警告が出ました - haruguchiさんのSQLのパフォーマンスの話、タメになりました - @haruguchi - Railsの学習はもちろん周辺ツールがたくさんあって最初実務に入った時チンプンカンプンだったことを思い出した。パフォーマンスチューニングできる様になりたい。 - New Relicとかの見方がいまいちわかってないんだよなー - Saki - チーム開発と自作サービスで薄々感じていたけれど、やはりSQLをちゃんと理解していないと、パフォーマンスを意識したコードを書けないのだなとhatuguchiさんのお話を聞いて思った - 自作サービスにn+1が発生していてあえて放置している箇所があるので、パフォーマンスを測定するgemを入れた方がいいかなと思いましたが、`rack-mini-profier`は"開発中に実装の違いによるパフォーマンスの影響を把握する時に役立つ"とあるので、Skylightとか入れた方がいいのかもと思いました。(でも有料...) - haruguchiさん > 書き方は実務で習得。`join`とかなんだっけ〜とかを理解しておくとスムーズ。 - @dawa - 実務ではパフォーマンスの部分を意識しないといけないというお話が勉強になりました。プラクティスを進めることでいっぱいいっぱいですが、時間ができたらやっていく必要もあるなと思いました。 - ぜひぜひ!いつでもお待ちしてます〜 ### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK) - LEF - 久々にスクワットしたら腿(もも)がバキバキに痛いです🦵🦌 - maimuさんが昨日仰っていたクリスマスツリーのnpmを見て癒やされました🎄 - [xmas-tree - npm](https://www.npmjs.com/package/xmas-tree) - 🥰 - @fuwa - 昨日梅本さんにペアプロしていただいたのでチーム開発なんとかなりそうな気がしてきましたが、やっぱりまだちょっと難しい - バイト受かってますが、もっといい感じのバイトが出現してしまってどうしようか迷っています - @maimu_x2x - 渋谷駅で郷ひろみが出ているにしたんクリニックのCMがエンドレスリピートで放送されていて頭から離れなくなりました - @tomonari - 散歩してたらマック(ハンバーガーの)とゴディバがコラボしているというのが目に入って気になりました!今の時期フラッペは食べたくないですが... - Saki - リリースブログの下書きが2万字いったけど、まだまだ書き終わらなそうです😇 - 急に寒くなってきて起きるのが辛いです..常に眠い。 - @haruguchi - 11章が一番勉強したかったところ!楽しみー! :waiwai!: - 今日散歩してたら発狂している高校生がいて宥めてたら休憩時間が終わりました:scream: - hikaru - チーム開発で、本番環境かつメンターさんの環境でしか発生しないバグの担当になって発狂してます - 自分が見れないところで起きてるものの調査は大変ですね... - でも仕事っぽくていいですね - https://github.com/fjordllc/bootcamp/issues/5727 - @garammasala29 - 日中、東郷さんと面談しました。そろそろ就活モードでおっかない。 - おおお...!お互いがんばりましょうね😭 - dawaさん参加してくれて嬉しいです! :washimo: - @dawa - wcコマンドのレビューをいただいたので、がんばって進めていきます。 ------ ## 2022\-11\-17(木) ### 連絡事項や確認・相談 ### タイムキーパー - hikaru ### 読んだところ - P.436 [10章 コンテナを利用したRailsアプリケーションの運用]〜 ### 次回 - P.445 [10-3-2 ミドルウェア等の複数コンテナを組み合わせた開発環境]〜 ### 自由に使う共有スペース ### 各自の疑問点や気づき、学んだこと - @maimu_x2x - 冪等性とは1回行った操作が複数回行っても結果が変わらないこと - マウントとはディレクトリツリーの枝を追加すること - Dockerは存在しない枝を仮想的に存在するように扱えるということ・・・? - @fuwa - Dockerむずかしいけど便利そうなのはわかった。前職でサーバー構築を各々やっていて大変だったのでそういうことが楽になるのかな? - buildkitのマウントキャッシュでビルドをより高速化できる。イメージビルド中に書き込んだファイルをホストマシン上にキャッシュして保存できるかららしい。 - @garammasala29 - Dockerはキャッシュを用いることで高速にビルド・開発でき、buildkitのマウントキャッシュを利用するとより高速化できるらしい - Railsをコンテナ化してみたい、体系的に学んでみたいけど難しいのかな? - やっぱり新しいLinuxの教科書、あとWebを支える技術 - @tomonari - Dockerはそもそも仮想イメージやコンテナといった概念がよくわからないので難しく感じますが、個別のDSLを覚えなくても環境構築とかが違うマシンでもできるのが便利そうだと思いました。 - chefとかitamaeって名前が面白いですね。何か由来があるんでしょうか。 - hikaru - ビルドステップキャッシュ(レイヤーキャッシュ?) を利用するとGemfileに変更がなければキャッシュが使えるようになって高速化できる - .dockerignore - buildkitでマウントキャッシュを使うとbundle installしたあとの状態を保持できて高速化できる - マウントだけ - Saki - dockerがなぜ必要なのかは掴めた。この輪読会で環境をみんなで揃える大変さが分かったのでありがたみが分かる。 - dockerまわりは「Linuxの教科書」で学んだ知識がちょこちょこ活かされる - 冪等性、たしかにWebを支える技術で出てきたの思い出しました! ### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK) - @fuwa - JSON復習しないとな〜って思ってます - 今日はすずめの戸締まりを観てきました。 - @maimu_x2x - 2ヶ月近くやってた手動テストがやっと終わりそうで浮かれています! :tada: - JSわかっていなさが深刻なのでJSPrimerの輪読会やろうか迷い中です・・・ - @garammasala29 - 疲労回復できる食べ物、飲み物、方法、教えてください - 今の季節ならキノコとかサツマイモとか...? - ビタミンC!! - クエン酸がいいらしいです。柑橘類ですかね〜 - 入浴剤とかリラックスできますよ~ - Saki - 明日リリースするぞ..!(まだリリースブログ書き終わってません😇) - 💪 ----- ## 2022\-11\-18(金) ### 連絡事項や確認・相談 ### タイムキーパー tomonariさん ### 読んだところ - P.445 [10-3-2 ミドルウェア等の複数コンテナを組み合わせた開発環境]〜 ### 次回 - P..455 [10-6-2 コンテナ内部のネットワーク設定]〜 ### 自由に使う共有スペース ### 各自の疑問点や気づき、学んだこと - @maimu_x2x - エラートラッキングサービスはDockerを使っていなくても利用したら便利そうだなと思いました。 - stg環境で謎エラーが出たりが結構あるためそういう時の調査に役立ちそう。 - Saki - HTTPサーバーとは - クライアントから受けたHTTPリクエストに応じて、HTML文書などの情報を提供するシステム。 - なんでnginxやherokuが必要なのかさえ疑問に思っていなかったので、使う理由がのっていて気づきになった - I/Oとは:機器やシステムなどに、外部からデータや信号を入力(input)したり、外部に出力(output)したりすること。また、そのための回路や装置、ソフトウェアなどのこと。 - Railsのアプリケーションサーバとしてよく使われてるunicornが、クライアントが高速にアクセスできることを前提に作られてるので、不安定な通信だとプロセスが長時間占有されてしまう。 - なんでunicornを採用してるのか疑問だけど、軽く調べたらunicorn→pumaへの移行記事がいっぱいあったので、 - [nginxとRailsを連携させる \| FBC](https://bootcamp.fjord.jp/practices/49)をやったらもっとイメージできそう! - hikaru - レイヤーが変わると全然聞いたことない単語だらけなんだなあ - 複数コンテナ=docker-compose - 可変な設定値は環境変数で渡す - クラウドサービスを使うとセキュリティの仕組みが色々使える - Dockerの中のRailsアプリケーションのログを標準出力に流すと便利 - エラートラッキングはRollbarみたいな専門のソフトウェアを使うといい - HTTPサーバーをRailsの前段に置くとコネクションを効率的に捌ける - @fuwa - 秘匿情報はコンテナに含めることもクラウドプラットフォームに任せることもできる - どっちがいいんだろう? - AWSなんもわからん - コンテナにログを保存すべきではないため、ログの出力先を設定する必要がある - @tomonari - Dockerは便利ですが、新しくできるデータはコンテナ内ではなく、クラウドサービスなどの他の場所に保存しないといけないのが大変そう。 - ### 本日の振り返り(よかった点・次回に向けての改善点・今の気分などなんでもOK) - @maimu_x2x - 仕事のテストが終わって燃え尽きています。やる気が出ない・・・😇 - OOP版lsコマンドのPRにレビューが30コメントくらいついていて、どこから直すか迷い中です。 - Twitterなくなるのでしょうか?🐣 - @fuwa - バイト決まりました〜 - :tada: - JSONやらjbuilderやらの勉強まだまだ必要そうです。。。 - jbuilderはドキュメント読むのが一番良さそう - [jbuilder/README\.md at main · rails/jbuilder](https://github.com/rails/jbuilder/blob/main/README.md) - Saki - リリースやっとできて肩の荷がおりました...ホッ😮💨就活怖いなぁ - :tada: - :tada: * 100000! - いーなーまたチーム開発したい! :washimo: - hikaru - アルバイトで倉庫内を歩き回ってます...ありんこ... - チーム開発のイシューがwakaranすぎて手をつけたくない! - チームメンバーとペアプロとか面白そう - https://github.com/fjordllc/bootcamp/issues/5727#issue-1435521299 -----
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up