イベントレポート | Rails Developers Meetup #7

f:id:sktktk1230:20180726121247p:plain

2017年11月16日(木) Rails Developers Meetup #7のイベントレポートです。当日はリモートから参加させて頂きました!

イベント概要

第一線で活躍する開発者・導入企業から、RubyRailsに関する 発想・アプローチ・成功体験・失敗体験を学ぶ、非営利勉強会です。

RailsでECサービスをゼロから作ってみて

  • Time 19:35〜20:05
  • Speaker 株式会社spice life 赤松 祐希 氏
  • Slide

概要

オリジナルTシャツ販売サービス「STEERS」の内部の設計や開発で得た知見・経験について話します。
この発表を通じて普段のRailsの開発のちょっとした指針になるような話をできたらと思っています。
また、プロダクトマネージメントを行いながらの開発だったので、プロダクトマネージメントと開発の関係性などについても言及できたらと思っています。

発表ではチーム開発においてプロダクトマネージャーとエンジニアの意思疎通の大事さとそこをspice lifeさんはどうやって取り組んだのか。 Rails開発において原則を守っていくことの大事さと開発時にどういったことを考え開発していたのかを学ぶことができました

spice lifeさんでは以下のようなチーム構成と特色をもっているようです

チーム構成

  • プロダクトマネージャー兼アプリケーションエンジニア
  • インフラ兼アプリケーションエンジニア
  • デザイナ
チームの特色
  • プロダクトマネージャーと開発者が同一人物

メリットとして、意思疎通のコストがかからない
また負債を積むとしてもどれくらい苦労しそうかビジネス的に今後どうしたいのか自分がわかっているので判断が楽とのことでした

多くのプロジェクトではプロダクトマネージャとエンジニアが別れているケースが多いと思いますが、プロダクトマネージャーと開発者が別の場合は認識違いが発生するというのは非常に共感しました f:id:sktktk1230:20171128143838p:plain

ただ仕様変更も発生するし、すべてがスムーズにいくわけではないとのことです f:id:sktktk1230:20171128144019p:plain

Railsの話では開発時に考えておきたい必要なことを発表されていました - データベース設計をどうするべきか - マイグレーションをどうするべきか - サービスレイヤをどうするべきか - フォームクラスを利用する場合の、バリデーションをどこに書くのかetc

QA

  1. Rails原則はどうやって学びましたか?

スタートアップでのRails開発/運用でやってよかったこと

  • Time 20:05〜20:20
  • Speaker 株式会社トレタ 沢田 洋平 氏
  • Slide

概要

トレタ社では飲食店向けの予約/顧客管理サービスをつくっています。
サービス起ち上げ前から今までの4年を振り返って、スタートアップのエンジニアの視点から、ログや定期処理の扱いなどの開発/運用面でやってよかったことをいくつか紹介したいと思います。

開発に集中していく為にいかに運用を整備して、回していくかというのが勉強になりました。そのためにどういう部分を整備するのが あまり手間をかけずに運用が楽になっていくのかを発表されていました

スタートアップの特徴

プロダクト開発に集中するため、運用がまわらなくなってしまう。そのため、合間に地道に運用面を整備する必要がある

あまり手間をかけずに運用を楽にする方法

  1. リクエストのログが構造化されておらず検索性が低い為、アプリケーション固有のリクエストログの作成
  2. リクエストのログを集めて貯める為に、BigQueryを使用
  3. ジョブキューのログもリクエストログを同じくらい大事なためしっかりと収集
    • リクエストに比べて処理時間がユーザ体験に直結しないので見過ごしがち

グローバルサービスを作る時に考えておくこと

  • Time 20:20〜20:35
  • Speaker 株式会社トレタ 中村 真人 氏
  • Slide

概要

トレタは日本以外でも、シンガポールや台湾など15ヶ国以上の飲食店で使われています。
グローバルで使われるサービスでは時刻や電話番号ような、国による違いを考慮しておかないといけません。Railsでグローバルサービスを作る時に考えておくべきポイントを共有します。

タイムゾーンを考慮したRailsアプリケーション開発と海外対応の事例について発表されておりました。
タイムゾーンを考慮したときのハマりどころなど非常に勉強になりました

DBにタイムゾーン文字列を保存する際の注意点や f:id:sktktk1230:20171128144304p:plain

Railsアプリで日時を扱う場合のおすすめ f:id:sktktk1230:20171128144500p:plain

ケース別使用例 f:id:sktktk1230:20171128144818p:plain

トレタさんでの祝日対応もサービスならではの特徴があり非常に学びがありました f:id:sktktk1230:20171128144947p:plain f:id:sktktk1230:20171128145129p:plain

SMSの利用用途では以下のものがあるため、なるべく国番号(例:+81(日本))を入れるようにしていたのも グローバルサービスならではと感じました f:id:sktktk1230:20171128145449p:plain

クックパッドでの Webアプリケーション開発 2017

概要

クックパッドではこれまで Microservices 化を推し進め、1つの巨大な Rails アプリを大勢で開発するのではなく、いくつもの小さいアプリを小さいチームで開発しようとしてきました。
その結果として2017年現在ではどのような開発が標準となっているのか、そしてそれを支える技術としてどのようなものを開発してきたかについて共有できればと思います。

クックパッドさんでのwebアプリケーション開発における自動化Hakoでの学びです

デプロイフロー

f:id:sktktk1230:20171128145726p:plain

Hakoが作れれた経緯

f:id:sktktk1230:20171128145835p:plain

Hakoが出来たことによって新規webアプリケーションの開発フローが以下のように f:id:sktktk1230:20171128150024p:plain f:id:sktktk1230:20171128150038p:plain

しかし課題感はまだのこっていたため統合コンソールの開発(hako-console)したそうです。 それによって開発フローが変化したとのことでした f:id:sktktk1230:20171128150147p:plain

また今後やっていきたいこととして以下に取り組んでいるそうです

  1. サービスメッシュ
  2. RPC

コンテナは友だち! in Rails Developers Meetup

概要

いわゆるコンテナ仮想化と呼ばれるものは、正体はホストOSからリソース、権限等を隔離・制限したプロセスです。皆さんは隔離されていますか?
今回は、今流行中のDockerを例に、コンテナ仮想化がどのように実現されているかをデモしつつ覗いてみます。
時間があれば、拙作コンテナランタイム「Haconiwa」に同梱されたコンテナ作成専用のRuby(mruby)でコンテナ自作に挑戦してみます。
GMOペパボの新卒研修 コンテナは友だち!のRailsdm版です。

途中で離席してしまったため、メモを残せず。。

まとめ

定期開催は今回が最後とのことで残念ではありますが、また参加させて頂きたいと思います。初のリモートの参加でしたが、不自由なく非常に便利だったため、また開催するときには利用してみたいです

togetter.com