Meguro.rbでRailsのサービスクラスについてLTしてきました
初めていったMeguro.rbでLTしてきました。本当はすぐブログ書きたかったんだけど、当日は睡眠不足でめちゃくちゃ眠く、翌日は飲み会で、土日は子供を寝かしつけると同時に寝落ちしてしまったのでこんなに遅くなってしまった。
SpringでDDD的構成をやって、なんとなくRailsのサービスクラスってこういう感じにするべきじゃね?というのを掴んだつもりだったんだけど、いざ資料にまとめてみると全然まとまらず、何が言いたいのかよくわからなくなり、なんか冗長な感じになってしまった気がする。そして資料を詰め込めすぎて、後半早口になってしまった。
LT後も反応が薄かったので、やべーこと言ってしまったかなと思ったんだけど、インターネッツにあげた資料自体への反応は悪くなくてよかった。
言いたかったこと
Twitterの反応であーそうですこれです結局言いたかったのは…となったのはこういうことでした。
結局のところ、サービスクラスという手段に飛びつくのではなく、ちゃんと考えてモデリングしようよってことなんだよね。 https://t.co/3LUJWtpjzP
— Hideki Igarashi (@ganta0087) 2018年5月25日
要は使い方だよね。他のクラスとの責務分割がハッキリしていれば問題ない。なんとなーくロジック寄せたりしてるからよく分からんコードになる。責務分割の方針によってはサービスクラスが不要になることだってある。
— pospome (@pospome) 2018年5月25日
Railsのサービスクラス周りの記事、とにかく手段について着目している記事が多くて、そういうものへのアンチテーゼみたいなのも裏テーマとしてありました。
サービスクラスに限らない話ですが、責務とかモデリングをよく考えた上で導入していかないと、結局コードが散らばって辛いだけになるということです。 trailblazer
みたいなGemもありますが、ツールありきで考えてしまうと、結局のところあまり良い結果にはならないんじゃないかなと。
trailblacer github.com
Meguro.rbについて
Twitterでしか知らなかった人と何人か顔を合わせてお話することができてよかったです。 一番の進捗はこれで、割と真面目にちょっとやばい人だと思ってたら、本当にいい人でした。人柄という意味でもエンジニアという意味でも。
なんでそんな自虐的なHNなんだろう、きっとやばい人だと思ってた方が、すごくまともな人で、そのHNもちゃんとヤバくない意味があって安心した
— すーさん二号 (@suusan2go) 2018年5月24日
目黒は帰り道なので、またネタがあれば参加したいです。よろしくおねがいします。