昨夜医療サービスのメドピアさん主催のRails 5.1勉強会に参加してきた。タイトルから見ると大した勉強になる期待はしなかったが、予想外に有意義だった。一番面白かったのは最初と最後。

最初と言うのは、挨拶の次に自社紹介してくれたメドピアの話。ハッカスロン合宿やったり、社内のレビューや輪読会の話は本当に参考になった。うちではそこまでできるかは置いといて、希望的目標にはいいと思った。

Rails5.1時代のアプリケーション開発

あまり印象がよくなかった。10年前の、初期のRailsの比較が多くて、さらに視点がRailsを知りすぎた達者のだったので、関心持てなかった。

初心者がRails使いにくくなってると言うのに非常に違和感感じて、別に使えるツールが増えたって、今でも同じ15分ブログが成り立っていると思う。逆にAPIのみとか、JSと深い絡みを持ったものでも、以前地獄見てた流れが改善してきてると思うが。

コミュニティも活発でSOとかで質問したらルビーなら絶対だれか答えてくれる。と言うより、すでに同じ質問誰かしてるはずなので見るだけですむ。

発表全体でそうねと思えたのは、Railsはいかに大きなプロジェクトに不向きだってところ。まさしく同感。あと、Fearless RefactoringExceptional Rubyの紹介は非常にありがたかった。

Why? Rails 5.1

5.1のフォームの新しい(?)ところに集中してあまりにも細かすぎて興味持てなかった。開発者の前で話す以上、コードで細かく分析するよりは実用的に重要な変更点に集中した方がよかったかな。

暗号化して秘密情報を保存するところは確かに面白かったが、実用的な面から見ると5.1の変更点の中では全体テストの方が大きかったような気がする。フォームよりラウト系の変更の話してもらえたらずっと面白かったと。

ギット上のやりとりとか読んでモチベーション保てるなんて個人的にすごいと思う。そこまで興味持てないし、逆に変更ログをみた方がいろんな意味で勉強になる。

MedPeerのRails 5.1アップグレード

話として特に面白いと思えなかった。アップグレードするだけなら、すごく当たり前なこと、作業自体を聞いて、その点で悩む人いるかなと。

一方、その当たり前を改めて意識したと言う点では意味があった。paramsがハッシュじゃなくなったことに気づかないほどスムーズだったのでそこの指摘もありがたかった。調べたら結構色々仕様が変わったので細かく見ないと。strong_paramsがやっぱり大きいね。

モデル設計を適当にやるとどうなるか!?

すごく面白かった。データ構造の設計からやっぱりやるべきと思った(やってない)。確かに今の作業の中でも、自分の中だけでもデータモデルの理想形を想像しながら進めているが、それをどこかに書いておくまでは技能が足りてない。単純に書き方から勉強しないといけないから時間が問題。

どうしても動いているサービスに対して無茶はできないし、データの損失が許されないので、そこは保守的に進みながらコードは容赦無く改善していきたい。

一気にやれない、規模が大きすぎるに対しては、それでもやるべきと俺は思う。もちろん妥協点、後回しになるところはちょこちょこでるとは思うが、そこは理想と現実の差で、技術的負債(の片付け損ね)と考えたら後でもいいから対処するの忘れない。

一時実行スクリプト用のフォルダーを作って、別に整理するという発想が参考になった。そしてサーバー負担の大きいデータ以降や処理をfind_each(にsleep挟んだり)して中断、続行できると言う仕組みは使わせてもらう。

ワークアラウンドは決して悪くないと言うに対して、コード美を求める俺は認められない。必要悪の方が妥当。

交流

この前行った「ふつうのRails」勉強会の方々もいました。意外とルビーイベントに参加する人限られるねと思った。

関数型言語の実用性や、会社としてそれを使うリスク、開発としてのメリットの話もできたし、最近マイブームそこなので嬉しかった。

また、新しい技術に対する躊躇は日本のスタートアップとシリコンバレーの開発団の大きな違いねと思った。スタートアップしても技術で遊び続ける西洋のその姿勢を見習って欲しい。

そしてピザ食い過ぎたので改めて飲食生活意識しないといけないなと思った。