Sendagaya.rb #324 に参加

8月3日、オンラインで開催された Sendagaya.rb に参加した。2回目の参加だった。

参加者の自己紹介で出た RubyRails 関係の話題について話した(といっても自分はまだ聞くだけで精一杯)。

テストについて

RubyMine での RSpec のテスト作成方法の話から、Rails の generate コマンドで生成されるテストファイルや、shoulda-matchers という Gem の話題へ。

リレーションについてテストを書くか?という質問に対しては、書かない人が多いのでは?テストは書きすぎもよくない、という意見が出ていた。shoulda-matchers についても賛否両論あるようだ。

shoulda-matchersが便利すぎる - Qiita

API を利用するときの設計

次は、サービスクラスになんでも入れてしまう問題。というか API を使うときの設計について。

いいサービスクラスは、call メソッド一つしか持たないようなイメージ。API と 1対1 で対応するモデルが必要。これが無いとテストができない。Gem を作るつもりで作ると、独立性を担保し、テストもちゃんと書けるからよさそうというアドバイス。責務を分ける、単一責任、テスタビリティが大事。

プログラマは常にこういうことと戦っている。「できる人は3回クラスを書き直す」という話もある。ときにはクラスを書き直すことも必要。

俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita

ruby-next

ruby-next は、Ruby をトランスパイルできる Gem。これを使うと、Ruby 2.7 以降でしか使えない機能を使ったコードを、Ruby 2.5 のコードに変換するようなことが可能になる。ただ、変換後のコードは読みづらい。

Ruby NextトランスパイラでRubyの新機能を使おう(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社

所感など

初めて聞いて理解できないことも多いが、その場で調べたりしていると、次その言葉を聞いたときにはイメージがわくようになる。なので、わからないことにどんどん触れることも大事だと考えている。

今回も聞いているだけで精一杯ではあったが、面白い話をいろいろ聞くことができた。実際にプログラマとして仕事をしている方々の考え方などを聞くことは、勉強になるだけでなく学習のモチベーションにもなる。

また参加したい。