見出し画像

銀座Railsでテストとfat modelについて学ぶ【Day 5/30 2nd】

こんにちは、たわらです。

本記事は、銀座railsのイベントに参加した感想を整理したものです。途中から参加しました。

スクールとは別で、はじめてこういう勉強会に参加しました。知識不足なので、解像度は低いですが、とりあえず所感をまとめておきます。大人になったときに見返せればよいな、と思います。

思い出しながら書くので、細部が間違っているかもですが、、、

「テストがないRailsプロジェクトにテストを足す話」

フリーランスエンジニアの@ginkouno さんのお話。タイトルの通り、テストのないプロジェクトにRspecを足す話。

フリーランスとして仕事するので、時間や金額の交渉はしっかりとやる。

これくらいの人数でこれくらいのお金と時間がかかりますよね、、、だからこれこれの時間とお金で、、、みたいな交渉をする、らしい。たぶん。

(そういうふうに交渉するんだ、と現場を何もしらないので素直に思う。)

自動テスト、進捗の見える化(simple_covなるもの)、不要なコードの削除(okuribito railsとは?)をまず、準備として行う。

で、テストのないプロジェクトはモデルのテストが大変らしいので、現状のままRspecを書く。

factory bot を作るのが大変で時間がかかる。でもこの過程で、モデルの関連などが見えてくる。ペアプロをすると円滑に進む。

作業が進むと、テストのサンプルができるので、慣れてない人もテストに参加してもらうことでスピードアップ。

テストがあるプロジェクトは、railsのバージョンアップに対応しやすく、リファクタリングしやすく、リリースの頻度が高くなる。

感想としては、factory bot、ペアプロなどの知った知識が、どのように現場で活用されているかがわかった。知識が身近になった。

テストがあることでリリースの頻度があがる、というのは深く感心した。エンジニアだけではなく、ユーザーの利便性を考えるなら、テストは必須になる。単にテストを書く、よりは、「リリースの頻度を加速させるために」テストを書く、と思ったほうが仕事に前向きになれるはず。仕事したことないけれど。

「Fat Model の倒し方」

@toshimaru_e のfatモデルの回避の仕方。

知らない知識がてんこ盛りだった。学習不足、実地経験不足なので、当たり前ですが。

ざっくりまとめると、、、fat modelを回避するためには、3つの方針がある。

Railsの規約に沿った開発方法、Railsの規約をgemで補強・拡張する方法、Railsの規約から外れる独自の実装方法。

gemを用いた開発方法では、draperが登場した。これは学習したのでわかった。viewで使用したいメソッドなどを記述する場所のこと。「modelにおけるview関連ロジックをview modelとして切り出す」こと。かっこいい。

一番に身に染みたのは、

「Rails習熟度が高くなるにつれて、Fat View、Fat Controller、Fat Modelの問題に直面する」

と聞いたとき。

Fat Viewで悩むレベルにも達してないじゃん、、、ということですね。

今日も、<%= render @hoges %>を通すために何時間も試行錯誤したばっかりだったし、、、

ただ、スクールのカリキュラムの進んだ方は、Service Classの話をしてたので、学習を進めれば、このスライドたちも理解できるようになるはず、、、

参加してよかった

いつもテキストベースで付き合っている知識がしゃべり言葉のコミュニケーションで扱われると、その知識のイメージがガラッと変わるので、こういう勉強会には参加したほうがよいですね。

至近距離でひとつの知識と向き合っている感じなので、現役エンジニアの方が説明すると、この知識とあの知識はこんな感じの距離感で、この知識はあんな知識とつながってるんだ、みたいな感じが得られてよいです。

知らない知識ばかりですが、なかには触れたことのある知識も少しはあるので、全然まだまだだな、とネガティブになりつつも、ちょっとずつ話が理解できるようになってる、とポジティブにもなれます。

学習が進んでる感が得られるのが、学習を続けるエネルギーを引き出してくれます。

今後もいろんな勉強会に参加したいです。

読んでくださった方、ありがとうございます。

たわら

この記事が気に入ったらサポートをしてみませんか?