algonote

There's More Than One Way To Do It

Rails Developers Meetup 2017まとめ&感想 #railsdm

Rails Developers Meetup 2017 に参加しました。

レールの伸ばし方

Railsでコードが複雑になってきた際のうまい逃がし方集。

MVCを正しく使うにはFat Controllerを避けモデルによせる。ただしPORO=Plain Old Ruby Objectを上手く使うこと。MVCで上手くできない部分ではViewModel, Form Object, Service Objectを使うときれいに書ける。

実際のあるあるについてよくまとまっており、他とイコールの扱いのはずだがキーノートっぽかった。メドピア開発者ブログにもwillnetさんの記事があがっているので合わせて読みたい。

Professional Rails on ECS

joker1007.hatenablog.com

RailsでECSを使う際の勘所集。

ECSのオススメ構成: stagingとproductionのイメージを同一に。ただし手元開発のDockerfileは分ける。assets:precompileの結果はS3等外部に。yaml_vaultを使うとAWS-KMSで秘匿値の管理ができる。 ecs_deployを使うとデプロイが簡単に。コンテナ化が進むと個人別staging環境をもてる。

自作の便利なgemを紹介されていたのでECSやるなら使ってみたい。ただ言われていたようにEKSやFargateが今後のトレンドな気もする。

GMOペパボの Rails & Vue.js プロダクト開発の現場

社内で新規開発する際のプロジェクトの進め方。

アジャイルサムライにのっているインセプションデッキというフレームワークを使ってプロダクトの方向性を合意した。技術的にはOpen APIを有効活用することで効率的に開発できた。

類似サービスのモデリングを想像するというのは他でも使えそう。スタートアップ・サイエンスだと初期から人数かけるのはNGだが、社内新規事業としては無難?社内新規事業・サイエンスが知りたい。

作らない技術

esa-pages.io

esaやpplogでの開発事例。

エンジニアは何でも作ってしまいがち。メリットデメリットがあるので、シンプルにすることも大事。pplogでは何度も機能をrevertした。他のプロジェクトを手伝ってレポジトリを見せてもらうという技もある。

esaのスタック、HerokuとDigitalOcean両方あるが、どこで使い分けてるんだろう。

Rails❤️SQL

https://qiita.com/jnchito/items/625bef4187e360d7f4bc

RailsでSQLをガリガリ書く例。

ActiveRecordやRansackも便利だが1割程度はSQLを使うとうまくかける。またERBと組み合わせるとDRYに書ける。例ではPostgreSQLベースでWindow関数を使っている。

会場でのアンケートを見る限りSQLの集計苦手という人は多そう。MySQLベースの会社が多いからだろうか。テンプレートエンジンとSQLを組み合わせるという技は他の言語でも使えそう。例がギターだったり発表者のキャラがでていた。うちのピグノーズは押入れから出る気配がない。

Rails❤️React

qiita.com

Railsでのnode環境との付き合い方の一例。

今までERBでやっていたことをJavaScriptでやるのがReact。人間は状態遷移が苦手で、小説で男性を女性に変えてと言われたらつらい。Webpackerが標準となったが、ビルドツールは変化がはやいので環境を混ぜると危険。おすすめはNode環境は別Docker化

controller nameとaction nameをメタタグで渡すのはおもしろい。react-jsonschema-formは便利そう。

マルチテナント・ウェブアプリケーションの実践

マルチテナントでのサービスの作り方。

BtoBのWebサービスはだいたいマルチテナントWebアプリ=MTWA。Gihubは1ユーザー1アカウント、Slackはテナントごとにアカウント作成。Postgresのschemaはマルチテナントにむいている。middlewareによっては名前空間をサポートしていないこともある。

他の日本の情報共有系サービスも同じように作っているんだろうか。BtoBだとセキュリティー面も売りの一つになりそう。

JITコンパイラはいかにRailsを速くするか

RubyのJIT高速化で取り組んでいることの説明。

MJITは依存が少なく、メンテが楽だが、VMの命令を全部おきかえている。YARV-MJITはより保守的。Ruby Grantでbenchmarkを作成中。

Rails分は少なかったが普段意識しないRubyの内部の話が聞けてよかった。TD社、シリコンバレー出資の待遇なのか。いい売り込み方だ。

LT資料

ほとんどの人が時間切れ。みんなかなり早口だった。

所感

個人的にフロントエンドよりの勉強会は休み時間が短い仮説を立てていたのだが、予想に反して今まで出た勉強会の中で一番生き急いでいた。スタートアップづとめの方が多いからだろうか。

他のコミュニティーより自作のライブラリを作ったという発表者が多かった。アウトプットの多さは見習っていきたい。