Rails Developers Meetup 2019

KEYNOTE

dhh

dhh

jeremy

jeremy

takahashim

takahashim

SPEAKERS

284km

284km

aeroastro

aeroastro

amatsuda

amatsuda

banyan

banyan

emorima

emorima

f440

f440

fujimura

fujimura

gotchane

gotchane

hanachin

hanachin

hokaccha

hokaccha

hsbt

hsbt

idesaku

idesaku

ikedaosushi

ikedaosushi

itkrt2y

itkrt2y

joker1007

joker1007

k0kubun

k0kubun

katorie

katorie

katsumata-ryo

katsumata-ryo

kei-p

kei-p

knu

knu

koic

koic

koichiro

koichiro

kokuyouwind

kokuyouwind

komagata

komagata

kyuden

kyuden

m-nakamura145

m-nakamura145

masa-iwasaki

masa-iwasaki

moro

moro

Morred

Morred

mrkn

mrkn

mtsmfm

mtsmfm

nay

nay

onk

onk

ota42y

ota42y

owlworks

owlworks

pipopotamasu

pipopotamasu

r7kamura

r7kamura

radioboo

radioboo

risacan

risacan

rlho

rlho

rust

rust

siman-man

siman-man

sinamon129

sinamon129

sinsoku

sinsoku

taiki-t

taiki-t

takatoshi-maeda

takatoshi-maeda

takkanm

takkanm

taogawa

taogawa

tawachan

tawachan

ujihisa

ujihisa

unak

unak

upinetree

upinetree

willnet

willnet

y-yagi

y-yagi

yahonda

yahonda

yancya

yancya

yasaichi

yasaichi

yoshiori

yoshiori

yoshuki

yoshuki

youchan

youchan

yui-knk

yui-knk

TIMETABLE - DAY 1

9:30

開場

10:15

開会・協賛紹介・注意事項の案内

10:30

"Ask Me Anything" by DHH

  • David Heinemeier Hansson

参加者の皆さまから事前にご投稿いただいた質問を、Ruby on Rails の作者であるDHHに回答していただきます(通訳: Ruby/Railsコミッター 松田 明)

本セッションは、シカゴからリモート中継(LIVE)での講演となりますので、ご注意ください。

11:05

AWSだけがクラウドじゃない! 〜OracleCloudの紹介〜

  • 日本オラクル株式会社
  • 鈴木 達也

11:10

とある会社の採用目的<リクルーティング>

  • 株式会社Repro
  • 橋立 友宏

11:15

Just For Fun! 野心ある小さなチームを支える STORES.jp

  • STORES.jp
  • 塚原 文奈

11:20

開発は本質的に楽しい

  • 株式会社Speee
  • 大場 光一郎

11:25

休憩 25min

11:50

アプリケーションを作るときに考える25のこと 25 things to think about when developing an application

  • 株式会社はてな
  • 大仲 能史

先日社内ツールを作ったときに社内アドベントカレンダーを書いたので、その内容をギュッとまとめてお伝えします。

どの技術を使うときにどんなことを考えたのか (e.g. markdown の中の CommonMark の位置づけと Ruby からはどう扱うと良いのかとか、ファイルアップロード時に気にしなければいけないこととか) といった内容で、全部聞くと「Rails アプリを一から作るときに判断ができる」状態になります。

I'll compress and talk about what I wrote for an advent calendar when I created an internal tool for our company.

The topics are such as What I thought about when I used certain technology. For example, I'll talk about how I think about CommonMark in terms of markdown and how to deal with it in Ruby, and what to care about when we implement file upload feature. You'll be able to decide everything when creating a Rails app from scratch after joining this talk.

OpalでつくるBrowserアプリケーション Building browser applications with Opal

  • 株式会社レトリバ
  • 大崎 瑶

OpalはRubyからJavaScriptに変換するコンパイラです。OpalをつかうとRubyでBrowserで動くアプリケーションを作ることができます。私はこれまでOpalでリッチなBrowserアプリケーションを書くためのフレームワークを作ってきました。

本トークではこれらのフレームワークを紹介します。

Opal is a compiler which convert from Ruby to JavaScript. With Opal you can build applications run on the browser by Ruby. I had ever been creating frameworks to write rich browser applications in Opal.

This talk introduces that frameworks.

jQuery + Sass な SPA Rails アプリを React + CSS in JS にリプレースした話 Replacing SPA Rails app built with jQuery and Sass with React and CSS in JS

  • 株式会社ソニックガーデン
  • 後藤 雅之, 石澤 佳祐

Railsアプリケーションの開発において、React/Vue.js 等のモダンなフレームワークが台頭し、これまで主流だった jQuery、Sass で運用されているサービスをリプレースする事例が増えてきています。その一方で、リプレースを検討しつつも、開発規模が大きすぎたり、リソースの確保ができなかったりという理由で、リプレースが進まないケースも多く存在するかと思います。

本セッションでは、そんな既存サービスのリプレースを検討しているエンジニアにとって、SonicGarden の価値観の一つである小口化という考え方を元に、限られたリソースの中でも着々とリプレースを進めていった知見についてお話ししたいと思います。

Recently, modern frontend frameworks such as React and Vue are getting more and more popular and Rails apps built with jQuery and Sass are getting replaced by those new frameworks. On the other hand, some replaces cannot be done due to the hugeness of the project or lack of resources.

In this talk, I'd like to talk about the case where we replaced with limited resources based on "making it small", that's one of the core values of SonicGarden.

12:20

休憩 10min

12:30

DevOps, Immutable Infrastructure, microservices そして Chaos Engineering DevOps, Immutable Infrastructure, microservices and Chaos Engineering

  • クックパッド株式会社
  • 庄司 嘉織

※別にタイトルはバズワードだったものを並べたわけではないです。

最近は組織作りとか採用関連の登壇依頼ばかりで技術的な事喋りたいうっぷんが溜っていたところに今回の登壇依頼を頂き何を話そうか考えました。

何を話しても良いと言われたので、 Cookpad で Chaos Engineering 導入を決断するまでに至った歴史と僕の中でどう考えてそうなったかを話そうと思います。

完全に自分の趣向 120% なのでオタクが興味ある事を早口で嬉々として喋ってるような発表になっちゃうと思います:) それでも良ければ是非聞きにきてください!!

Note: The title is not just a combination of buzzwords.

When I was asked for this session, the topics of my presentations then had been limited to organizations and recruiting. I was wondering what to talk about with my pent-up rage for technological topics.

With no strict rules on the topics, I decided myself to talk about the history and underlying thought of Cookpad toward the decision of employing Chaos Engineering.

The session will be composed of 120% of my passion for specific technologies, and it will be provided as a nonstop nerd talk. :) If you feel comfortable, join us!

Active Record Oracle enhanced adapterのこれまでとこれから Past, present and future of Active Record Oracle enhanced adapter

  • freee株式会社
  • 本多 康夫

Active Record Oracle enhanced adapterのメンテナーとして、Rails 3.2から最新の5.2までの開発の歴史を振り返り、Rails 6に向けた展望をお話しします。

As a maintainer of Active Record Oracle enhanced adapter, I'll review the development history from Rails 3.2 to 5.2, and talk about the outlook toward Rails 6.

少人数でサービスをすばやく開発するためのRails活用事例 A case study on developing a web service quickly with less bugs using Ruby on Rails

  • ピクシブ株式会社
  • 大多和 祐介

当セッションでは、弊社サービス「pixiv chatstory」が少人数ですばやく、しかしバグは少なく開発していくために採用していているアーキテクチャについてお話します。Ruby/RailsはAPIサーバーとしてHeroku上で使用しているので、このあたりの話を中心にしたいと思います。

This session mainly discusses the IT architecture that one of pixiv's products, pixiv chatstory adopts to enable us the small team (2-4 engineers) to develop the both web and native apps quickly but with less bugs, using Rails as an API server deployed onto Heroku.

Keywords: Rails, Heroku, Swagger, CloudFront, ImageFlux, Firebase, PWA, Angular, Ionic, ReactNative, Expo.io

13:00

休憩 10min

13:10

Power-Nap

  • Quipper LTD
  • 長永健介

Quipperは、ランチPRセッションの時間を使って皆さんに静かで快適な休憩時間をご提供します。しっかり食べてお休みいただき、午後のセッションに備え英気を養ってください。その前に5分だけ、「神授業」として知られるスタディサプリの動画をご覧ください。

We will offer you comfortable and tranquil break time during the lunch PR session. Please enjoy our lunch and get ready for the sessions in the afternoon. Before lunch, we would like to ask you to watch 5-minute StudySapuri movie of video lecture which is known as "Kami-jugyo".

ランチ内容:老舗日本料理店の和牛すき焼き弁当 or 老舗日本料理店の焼き魚弁当(それぞれにQuipperクッキーと紙パックのお茶も付きます)

本セッションのランチは受付時に渡された整理券との引換となります。数量限定となりますので、あらかじめご了承ください。

現場Railsの執筆現場

  • 株式会社万葉
  • 大場寧子・松本拓也・櫻井達生・小芝美由紀

万葉監修の #現場Rails こと『現場で使えるRuby on Rails速習実践ガイド』の著者陣によるトークセッションを行います。

執筆の裏話や、現場の開発の話、当日会場からの質問にも答えます。ランチを食べながらのんびりご参加下さい。

現在、アンケートからも著者への質問・感想を募集しています。現場Railsで気になることのある方、ぜひこの機会に著者に質問して下さい!

ランチ内容:タコライス丼

本セッションのランチは受付時に渡された整理券との引換となります。数量限定となりますので、あらかじめご了承ください。

Railsアップグレード、UIリニューアルを通じてのレガシーコード改善への道のり A way to improve legacy code through Rails upgrade and UI renewal

  • 株式会社スタディスト
  • 出渕 晋也

'Teachme Biz' 4年ぶり2度目のUIリニューアル。
UIリニューアルでは、フロント部分はvue.jsで全面書き直しSPA化、バックエンドは完全API化しました。

破綻しつつあるmvcアーキテクチャ、煩雑なソースコード、テストがほとんどなかった状態から、どのように変化したかrailsアプリの舞台裏についてお話させていただきます。

The UI of Teachme Biz was revamped once again after four years.
We rewrote the whole frontend in Vue.js and made the backend API-only.

This talk is about how we dealt with our failing MVC architecture and more than a mouthful of spaghetti code.

ランチ内容:ビフテキミックス弁当

本セッションのランチは受付時に渡された整理券との引換となります。数量限定となりますので、あらかじめご了承ください。

13:50

休憩 10min

14:00

What's new in RubyGems 3.0

  • GMOペパボ株式会社
  • 柴田 博志

I released RubyGems 3.0 in last year. RubyGems 3 is bundled with Ruby 2.6 that is the latest stable version of the Ruby language. You can use it easily today.

The new version of RubyGems has many of improvements, bug fixes and some incompatibilities. I put them into the changelog that is https://blog.rubygems.org/2018/12/19/3.0.0-released.html. But its changelog was generated from github pull-request. So it's not human-readable article.

I will describe the details of RubyGems 3.0 changes and the future plan of RubyGems 4.0.

CSSの技術的負債との向き合い方 How to Deal with Technical Debt of CSS

  • 株式会社万葉
  • 松本 拓也

チーム内で Ruby や JavaScript をどのように実装していくかは頻繁に議論があっても、CSSについてはそれほど多くないように思います。チームメンバーそれぞれが手探りで実装したCSSに対して、満足なレビューが行えないといったことも見られます。そのようなチームではCSSの技術的負債をためやすく、気づいたときには開発のボトルネックとなっていたこともありました。

本発表ではこうした問題が起こってしまう理由を掘り下げ、チーム開発における CSS の取り扱い方法について考察します。そして、すでに技術的負債を抱えている CSS への向き合い方を、実際の事例を交えながらお話します。

In many of teams around me, discussing how to writing CSS is less often than Ruby or JavaScript code. In such teams, CSS is written by touch and reviewing it is insufficient, hence building technical debt of CSS is easy and detecting it before bottlenecks become obvious is difficult.

In this talk I consider why the such problems happen and how to make handling policies of CSS in the team. Then I describe how to deal with technical debt of CSS with case studies.

サーバーサイドエンジニアも知っておくべきフロントエンドの今 The latest trend of Frontend which backend engineers should know

  • タケユー・ウェブ株式会社
  • 板倉 達也

「フロントエンドは変化が早くてついていけない」

そんな意見をよく聞きます。

また、これからフロントエンドを勉強するとして、今となってはどこから手をつけていいのかわからないサーバーサイドエンジニアも多いのではないでしょうか?

本セッションでは、フロントエンドがよくわからない人を対象として、フロントエンドのここ数年を振り返りつつ、「今、なぜフロントエンドを学ばなければならないか」「何を理解すれば、これからのフロントエンドを理解できるようになるか」について解説します。

I found many say "frontend development changes so rapidly that I cannot follow".

I also suspect many backend engineers wonder where to start when learning frontend from now.

In this talk, I'll look back these several years of frontend development and talk about why we need to learn frontend development now and what to understand so that we can understand modern frontend development.

14:30

休憩 10min

14:40

Talentio をなんとかしようと頑張ってきた18ヶ月の旅路 A 18-month journey to improve talentio.com

  • 株式会社タレンティオ
  • 小川 伸一郎

talentio.com は 2016年のサービスリリースから3年あまりが経ち、アーキテクチャも古く、メンテナンスされていないコードがあるなど、開発や運用の生産性を低下させかねない状況になっていました。

そんな状況の中で、悪戦苦闘しながら近代化してきた旅路をお話します。

Three years have passed since the release of talentio.com, and there are some problems causing development and operation less productive, such as old architecture and unmaintained code.

I'll talk about our journey to modernize our service with struggles under such circumstances.

SQLQL は GraphQL にとって、何なのか What's SQLQL for GraphQL?

  • 小栁 真太

SQL を拗らせている人にとって、1 リクエストを 1 SQL で処理しきるというのは悲願でもあり、強い業(ごう)でもあります。

SQLQL というのは、API のエンドポイントに直接 SQL を送信すると、リクエスト毎の認可を反映した SQL に変換され、それの実行結果をレスポンスとして受け取るという概念です。欠点としては実行して欲しくない SQL 構文を無効化するサンドボックスを作るのが大変なことと、みんなが「すべてを一発で返せる SQL」を書きたいわけではない(書くのはちょっとだけ大変なので)ということと、多分それ以外にもたくさんあります。

一方、GraphQL は、みんなが書けるような簡単さを持っていて使いやすそうです。サーバーサイド実装での悩みがあるとしても、それは GraphQL という言語そのものの問題ではないでしょう。

では、GraphQL のサーバーサイド実装に SQLQL の考え方を取り入れてみたらどうなるか、という発想になるのは自然ですよね。

本講演では、もしも SQLQL の延長線上に GraphQL がいるのだとしたらこういう設計になる、という考えを実験した結果を発表します。

For those who're attached to SQL, it's a strong wish and a karma to process one request with one SQL query.

SQLQL is a concept that when the client sends SQL directly to the API endpoint, it receives the response of the result of SQL reflecting authorizations for each request. There are some drawbacks, such as it's hard to create a sandbox environment to disable SQL statements which we don't want to execute, not everyone wants to write SQL queries fetching all required data since it's not easy and so on.

On the other hand, GraphQL looks easy. While you might have a problem implementing it on the server side, it's not a problem of GraphQL itself.

So, it's not surprising to think about what it's like to import SQLQL way to GraphQL server side implementation.

In this session, I'd like to talk about the result of the experiment where I think about the design as if GraphQL is an extension of SQLQL.

オンライン予約徹底解説 Thorough explanation about online reservation

  • 株式会社トレタ
  • 中村 真人

皆さんはご飯を食べに行くときにどうやって予約をしていますか? 飲食店のオンライン予約は身近なテーマですが、その複雑さや設計について語られることは少ないです。

本発表では「トレタ」という予約システムの設計と変遷、それを実現するRuby on Railsでの実装について我々が考え抜いてきたことをお話します。

How do you reserve a table at a restaurant? Online restaurant reservations are familiar to us, but we seldom talked about its complexity and its system design.

In this session, I will talk about how we have thought through the system of an online reservation system, "Toreta"; the system design, the transitions, and the implementation with Ruby on Rails.

15:10

休憩 10min

15:20

To make Ruby ready-to-use in the data science field. And the impact that it has on Rails applications.

  • 株式会社Speee
  • 村田 賢太

I will talk about the activity in Japan to make Ruby ready-to-use in the data science field. Moreover, I'd like to introduce the impact that its achievements have on Rails applications.

サービスを成長させる「仮説検証文化」のつくり方 How to create a culture of confirming hypothesises that grows services

  • 株式会社トクバイ
  • 前田 卓俊

Webサービスを開発していく上で、仮説検証の積み重ねは非常に重要な意味合いを持ちます。

しかし良い学びを得ながらサービスを改善していく作業は、明確な答えはなく非常に難しい作業です。

本セッションでは、私がWebサービスの開発者として8年間試行錯誤をしてきた体験から、サービスの成長を加速させるため、より良いサービスを形作るための仮説検証への向き合い方、組織文化の醸成についてお話します。

Hypothesis verification is critical for developing web applications.

However, it's so difficult to improve services by learning well because there's no clear answers.

In this session, I'd like to talk about how to think about hypothesis verification for creating better services and how to make company culture for it in order to make development speed faster from what I've experienced trying many things as a web service developer for over 8 years.

女性エンジニアとして働くということ Working as a female engineer

  • 株式会社ZOZOテクノロジーズ
  • 高木 里穂

女性エンジニアにまつわる話はマイナスな話題が目につきやすく触れにくい話題になっていると感じています。エンジニアとして働いて4年。女性エンジニアコミュニティに携わって女性エンジニアの方に多くお会いしました。

その中で私自身が感じている、なぜ女性エンジニアが少ないのか、何が問題なのかについてお話しします。エモ100%です。

I feel that topics about female engineers are mostly negative, and we're reluctant to talk about it. I've worked as a software engineer over 4 years, and joined female engineers community and met lots of female engineers.

I'll talk about the reason why there are a few female engineers and what's the problem. This talk doesn't contain any technical aspect.

15:50

休憩 10min

16:00

万葉のRails新人研修のコードレビューコメントを分析してみました An Analysis of Code Review Comments in Our Rails Training Program

  • 株式会社万葉
  • 大場 寧子

(株) 万葉ではここ2年以上、新入社員教育用カリキュラム(https://github.com/everyleaf/el-training)を利用して、新入社員にRailsの研修を受けてもらっています。

本トークでは、これまでの実際の研修で出された数々の Pull Request に社員が寄せたたくさんのコメントを、発話の目的やトピックといったいくつかの観点で分類し、傾向を紹介します。そして、初心者がRailsを学ぶ上で重要なポイントや、周囲がサポートするとよい点、レビューのコツなどについて考察します。

We have been carrying out our Rails training program for new employees for over 2 years in Everyleaf Corporation. In those trainings, many pull requests had been reviewed by other employees.

In this talk I'm going to introduce an analysis of code review comments of those pull requests and think about the important points in learning Rails, supporting beginners and code review styles.

Rails な受託の会社でぼくがやっていること What I do in a Rails consulting company

  • 株式会社永和システムマネジメント
  • 三村 益隆

Rails を使った受託会社で、わたしが意識してやっていることを紹介します。

プロジェクトにどのように向かっているか、チームでの開発のとき何を意識しているか、新しくやってきた人に何を伝えているかなどを話します。

Rails な受託会社の一部をお見せできればと思います。

I'll introduce what I do consciously in a Rails consulting company.

I'll talk about how to confront projects, what I think about when developing with a team and what I tell to those who newly joined projects.

I'd like to show you a part of a Rails consulting company.

我々はマイクロサービスとどう向き合うべきか How should we face with microservices

  • 株式会社FiNC Technologies
  • 太田 佳敬

現在、マイクロサービスはそれを取り入れる・取り入れないにかかわらず避けては通れない話題です。

しかし、マイクロサービスという概念が関わる範囲はフロントエンドからバックエンド、インフラや組織構造とかなり広範囲に渡ります。

そのため全体像を理解しづらく、自分たちの問題を解決するのに必要な構成を作るのはとても難易度が高いです。

この発表では過去の経験を元にマイクロサービスに関わる情報を一通り整理し、

自分の組織に取り入れるか・しないかを判断するのに必要な材料や、どのように入れると良いのか、いまより良い状態にはどう持っていくべきかといった情報を提供します。

そのため、マイクロサービスを考えている人、やっている人といったマイクロサービスと向き合う必要がある人達に向けた発表になります。

Nowadays, microservices is the topic you cannot avoid, no matter which you adopt it or not.

However, the concept of microservices involves so many aspects such as frontend, backend, infrastructures and organization, so it's very hard to understand the whole image and create the structure required to solve the problems.

In this talk, I'll organize the information of microservices based on our past experiences and provide the factor to decide you should adopt microservices or not and the information of how to adopt microservices better and improve the environment.

So this talk is for those who consider to adopt microservices or who is already adopting and facing it.

16:30

休憩 10min

16:40

Almost Microservices

  • Quipper LTD
  • ujihisa

ユーザ規模の拡大とともに、既存機能の変更の難易度は高まっていきます。たとえばユーザから見てAとなっているものをBに見せるため、コードxを編集したら、実はユーザから見てCやDも意図せず変更され、壊れてしまう、みたいな感じの事例の発生率が高まります。対処方法として、コードの静的検査であれこれしたり、完璧なintegration testできちんとカバーして変更点を自動検出したり、気合でコード全部読んだり、人力QAをめちゃくちゃ頑張るなどの手があります。

今回発表するのは、人間は怠惰で雑な生き物という前提にたった、もっと雑なやりかたについて、ものすごく生々しい具体的な事例でもってコードを出しまくってデモしまくって解説するみたいな感じです。

キーワード: マイクロサービス, feature toggles, canary release, and circuit breaker

It gets harder to make changes against your service when you have larger scale of users. For example when you modify a part `x` for showing users A which used to be B, it might also impacts C and D unintentionally, and things may get broken. Potential solutions for that kind of problems are static analysis, an ideal well-covered integration test to detect changes automatically, read the entire source code by yourself, or do the best job at human testing. My talk on the other hand focuses on a very rough, thoughtless, and dirty approach, assuming human beings are lazy and not smart enough. I'll demonstrate with empirical concrete examples that had actually happened in my experience.

Keywords: Microservices, feature toggles, canary release, and circuit breaker

AskDoctorsの13年目を支える技術 Technologies supporting AskDoctors for 13 years

  • M3, Inc.
  • 山井 康輔

AskDoctorsはエムスリーが提供する医療系Webサービスの一つです。2005年の提供開始からの13年間で何度か大規模改修を経て、現在はその大部分がRuby on Railsへと置き換えられています。

本セッションではサービスの開発運用で発生した課題や今後の取り組みについてお話します。

AskDoctors is one of medical web services provided by M3. The service has undergone several major renovations in 13 years since its first release in 2005, and most of the system is now replaced with Ruby on Rails.

In this session, I will talk about the challenges we have faced during its development and operation, and then I will talk about our future actions.

ユビレジのチーム開発 Team development at Ubiregi Inc.

  • 株式会社ユビレジ
  • 加藤 理絵

株式会社ユビレジでは主に3つのプロダクトを、すべて自社メンバーによるチームで開発・運用しています。1年半ほど前から取り入れているスクラム開発でどんな日々を過ごしているのかお話したいと思います。

We, at Ubiregi Inc., build and run three software products all by ourselves. I will talk about how our team work together, after introducting Scrum one and a half years ago.

17:10

休憩 10min

17:20

作って学ぶ RDBMS Make and learn RDBMS

  • トレジャーデータ株式会社
  • 金子 雄一郎

最近 PostgreSQL のコードを読みながら小さな DB を少しずつ実装しています。この発表ではステップバイステップで DB を作って行く工程についてお話したいと思います。

Recently, I have been reading the source code of PostgreSQL and implementing a small database. In this session, I will talk about the process of making a database step by step.

Rails meets Protocol Buffers - For Schema First Development

  • 株式会社ディー・エヌ・エー
  • 越智 琢正

フロントエンドとバックエンドのチームが分かれて開発する場合、チーム間のインターフェースであるAPIの情報共有は、正確性や効率性の点で難しい場合があります。そして、一般的なWebアプリケーションの開発だけではなく、ゲームのバックエンドの開発においても同様の課題が存在します。

このセッションでは、このような課題に対してのSchema First Developmentの有用性、および、ゲーム開発への適用の一例として、Rails と Protocol Buffers を組み合わせた開発手法を紹介します。

When separated frontend team and backend team cooperate on the same project, they sometimes have difficulties in correctly and efficiently sharing the API information, the interface between the teams. This is the case not only in web application development but also in game backend development.

In this session, the effectiveness of Schema First Development will be presented. Also, as an example of its application in game development, we will take a look at Rails with Protocol Buffers.

7年目を迎えたRailsアプリケーションの傾向と対策 How to deal with a 7 year old Rails application

  • 株式会社キッチハイク
  • 小川 剛

弊社キッチハイクでは創業当初からRailsを使ってきて、いまや七年目を迎えました。

Railsアプリケーションは一定の規模になってくるとRailsのレールから外れるシーンも増えてきます。その一方でレールから外れた際にどうするか、定番のパターンとされるものはありますが、そのノウハウはまだまだ共有はされていない印象です。

本セッションではキッチハイクがレールから外れた際に試行錯誤してきた設計パターンについて、成功 / 失敗の体験談含めてお話したいと思います。

Our company, Kitchhike, has been using Rails since the beginning of the company 7 years ago.

We tend to be off of rails after we reach certain size of applications. However, I think we don't share know-hows of what to do when we are off of rails, although we have some well-known patterns.

In this session, I'd like to talk about design patterns which we struggled to build when we were off of rails, including our story of successes and failures.

17:50

休憩 10min

18:00

Red-Black Tree for Ruby

  • Wovn Technologies, Inc
  • 久田 真寛

平衡二分探索木の一種であり連想配列の実装としても用いられる赤黒木というツリー構造があります。 例えばJavaではTreeMapという赤黒木をベースとした連想配列が提供されていますが、Rubyではこの種の連想配列は提供されていません。

このセッションではRubyのC拡張として実装した赤黒木の実装を用いて、その性能や有効なユースケースなどについて話します。

A red-black tree is a kind of self-balancing binary search tree, which can be used for an associative array. Java, by default, provides TreeMap, an associative array based on a red-black tree. On the other hand, Ruby does not.

In this session, I will show you a Ruby C extension implementation of a red-black tree, and talk about its performance and effective use cases.

Railsアップグレード百景 Rails Upgrade Best Selection

  • フリーランス
  • 中村 涼

これまで自分が担当してきた幾つかのRailsアプリのアップデートを振り返り、遭遇してきた問題から特に良かったものをピックアップし、コードを交えながら紹介していきます。

Railsのバージョンを上げるということについて、より現実的な話をお伝えできればと思います。主にRails 4、5、6を対象としています。

I'll review the upgrades of the Rails applications I've worked on, pick up the problems which I encountered and are especially good and introduce them with the code.

I'd like to talk about more realistic stories about upgrading Rails versions. Main target versions are Rails 4, 5 and 6.

Thrifty Rails - How to run a production app on a budget

  • TenTen Ltd.
  • Laura Eck

The app you launched last year is becoming more and more popular. The business seems to be going well - but the developers are struggling. Everything used to work fine, but now, with more users and new features, the load on the app is increasing. Suddenly your requests are timing out, you run out of database connections, you keep going over memory, background processing takes forever, your users are complaining and your manager is very unhappy.

To keep your users (and your manager) happy, you need to make sure that your app is fast and reliable even under increased load. But what if your company is small and can't afford to upgrade their servers every two weeks?

In this talk, we will discuss ways to make Rails apps faster, more streamlined and more resource efficient without having to spend a lot of money. I will share real world examples of relevant problems, how to locate them, and how to solve them while reducing the need to constantly scale your infrastructure.

18:30

休憩 10min

18:40

毎日の開発に役立つRailsプラグインづくりの秘訣 Extending Rails for Real World App Development

  • Ruby/Rails コミッター
  • 松田 明

Rails is such a great framework that can build a blog in 15 minutes.

Rails has an amazing community-based ecosystem, and so in some cases we may find good plugins that could help us implementing the features that we need.

But in some other cases that we couldn't find a plugin that cover our real world requirements, the best solution is to develop our own plugins.

In this session, we'll explore tips and practices for designing and crafting Rails plugins through our daily application development.

Rails Girls のこれまでとこれから Rails Girls - the history and future

  • 株式会社ケーシーエスキャロット
  • 江森 真由美

2012年に国内で初めてのRails Girlsが開催され、今年5月に開催が予定されている Nagano 1stで国内開催 50回目を迎えます。

これまでの国内のRails Girlsの取り組みと、これからについてお話します。

The first Rails Girls event in Japan was held in 2012. We will celebrate the 50th events on Nagano 1st in May 2018.

I will talk on the history and future of Rails Girls in Japan.

Ruby のコード解析の「静」と「動」 Dynamic and static aspect of Ruby code analysis

  • 玉寄 修一

Ruby には RubyVM::AbstractSyntaxTree、TracePoint といったコードを解析するための機能が備えられており、また、コードを解析するための gem が多く存在しています。これらのコード解析は大きく分けて「静的」「動的」の 2つに分けられます。

本セッションではこの 2つの解析手法の違いと、それぞれどのような情報が得られ開発に役立てることが出来るのかについて紹介しようと思います。

Ruby provides code analysis features such as RubyVM::AbstractSyntaxTree and TracePoint, and there are also many gems to analyze code. Those code analysis tools are grouped into two: static and dynamic.

In this session, I'll introduce the difference between the two, what kind of information we can get from each and how we can use them for our development.

19:10

休憩 10min

19:20

まだ40代後半のプログラマの話、あるいは50代プログラマについて考える I'm a programmer, still in my late forties; and how to become a 50-aged programmer

  • 一般社団法人日本Rubyの会 代表理事
  • 高橋 征義

「プログラマ35歳定年説」などという言葉もあるように、熟練プログラマのキャリアについては以前から困難が語られていました。

Rails developersである私たちにとっても、それは無縁ではありません。

本セッションでは、Ruby歴約20年のRubyistから見た、中年を過ぎてもプログラマを続けていくことの壁とその乗り越え方、そもそも乗り越えるべきか否か、というか「乗り越える」とは何なのかについて、Railsプログラマの方をターゲットにしてお話しします。

In Japan, there is a famous hypothesis called "programmers' retirement age of 35". The hypothesis is often denied recently, but it's true that senior engineer faces with many difficulties. We Rails developers are not exceptions.

In this session, I, as a developer using Ruby since the 20th century, will talk about what are difficulties to continue to be a programmer, how to continue, whether or not should continue anyway, and what is "continuing to be a programmer" at all.

19:50

閉会

20:00

懇親会

22:30

片付け

23:00

撤収

TIMETABLE - DAY 2

9:30

開場

10:15

開会・協賛紹介・注意事項の案内

10:25

休憩 5min

10:30

全体がいい感じになるために、私たちRailsをホームにするWeb技術者ができること What we, Rails programmers, can do to let our whole system grow.

  • 株式会社エス・エム・エス
  • 諸橋 恭介

このごろのサービスでは、サーバサイドWeb技術だけで完結することは少なくなってきました。

しかし、それはサーバサイドWebが不要になり、Railsのようなフレームワークが使われなくなることを意味しません。

スモールスタートのためのWebアプリとして、スマホアプリやSPAといったクライアント群へのAPIとして、行動を分析し提案するコンテンツを届けるインターフェースとして、運営スタッフが使う業務アプリとして、などなどRailsを始めとしたWebアプリフレームワークの活躍の機会はたくさんあります。

このように、このごろのWebアプリは、いろんな背景や職能を持った人たちの日々の仕事が交わる場となっていると、話者は感じています。

このセッションでは、いちWeb技術者として、多くの人が住まう場に対して提供したい価値について、できていることとできるようになりたいことを話したいと思います。

In web service development nowadays, it's getting less common for us to build services only by server side technologies.

However, it doesn't mean we don't need server side web technologies or we don't use frameworks such as Rails anymore.

We use web frameworks such as Rails in so many cases, such as web apps for small start, API for mobile apps and SPA, interfaces for user analysis and providing suggestions and business apps for staffs.

I feel that web apps nowadays is the place for many people from many backgrounds work together in.

In this talk, I'll talk about what I do and I'd like to do to provide values for the place where many people live as a web engineer.

100回死んだエンジニア An Engineer That Died a 100 Times

  • 株式会社Repro
  • 髙山 泰基

書籍の翻訳、起業と失敗。起業して失敗したエンジニアはどうなるのか。死ぬほど失敗してもなんとかなるという、頑張りたい人の背中を押せる話をしたいです。

A case study of an engineer who have failed many times. Telling that engineers can make own life even they failed after starting a business.

サービス開発初期の「時間を金で買う」技術 How to buy time in the early stage of Rails development

  • 株式会社クリプラ
  • 岩崎 匡寿

ウェブサービスをゼロから開発して徐々に規模を大きくしていく過程では、CI環境の準備などサービス開発を続けていく上で開発チーム自身が準備をしなくてはいけないツール群が多くあります。これらの問題は多くのチームで共通にみられることから、世の中には様々なSaaSツールが用意されています。優れたサービスはそれなりの価格設定がされているものですが、場合によっては有料サービスを利用することにより、チームがサービス開発に集中できる時間を増やすという戦略も取ることができます。この発表では、私自身が仕事やプライベートで使っている開発支援系のツールに関する紹介と導入する場合の考え方や検討事項などについてお話します。

In the early stage of web service development, you need to set up many tools to support yourselves and your services. Because this is a one of common issues among developer teams, there are many SaaS providers for the problem. Although services provided by them usually seems to be expensive, you can buy time for your team and accelerating service development. I will talk about the services I have tried and how to think about pros and cons including various costs to use them.

11:00

休憩 10min

11:10

Clean Test Code, Revised

  • 株式会社ウィルネット
  • 前島 真一

およそ2年前、第1回目のRails Developers Meetupで「Clean Test Code」というタイトルで登壇しました。当時それなりに反響があったと感じていますが、現実世界で厳しいテストコードを見る機会はまだまだ多く、当時話した「きれいなテストコードを書くためのコツ」は十分に普及されているとは言い難い状況です。

前回の登壇から2年たち、その間得たフィードバックから前回の「Clean Test Code」をもう少し前に進めることができそうです。この発表で厳しいテストコードが少しでも減り、RailsエンジニアのQOLが少しでも上がることを願っております。

About 2 years ago, at the very first Rails Developers Meetup, I gave a talk titled "Clean Test Code". I think the response from the audience was good. However, I still see bad test code a lot in a real world, so it's not possible to say that "tips to write clean test code" that I talked about at that time has spread enough.

2 years have passed since then, and I'm able to move "Clean Test Code" forward based on the feedbacks I've got. I hope this talk reduces the number of bad test code and increases QOLs of Rails engineers.

入門 名前 On naming things

  • 株式会社マチマチ
  • 藤村 大介

プログラミングには必須のツールである名前。毎日使っているわりに、実はその仕組みがよくわからないツールです。また、命名の良し悪しは話題になるわりに、その基準として常識に訴える以上の理論だった説明が与えられることは稀です。

現代の哲学をヒントに、改めて名前とその周辺について整理します。

Name is a tool what we are using on daily work as programmer, but it’s mechanism isn’t known so much. Especially on naming things, what we do is just asking for common sense instead of using a theory of good name.

In this talk I’ll try to make a better understanding on name and naming things with contemporary philosophy.

Misocaにおけるビジュアルテストへの取り組み Approach for the visual test on Misoca Inc.

  • 株式会社Misoca
  • 森 俊介

RailsアプリケーションのE2Eテストでは一般的にDOMツリーのみを検証するため、デザインの崩れは検知できません。

こうした「見た目」の変化を検知するためのテストがビジュアルテストです。

本セッションでは、capybara screenshotとreg-suitを利用したビジュアルテストの取り組みをご紹介します。

In E2E tests for Rails applications, we only verify DOM trees so we cannot detect the design collapses.

Visual test is the test to detect those visual changes.

In this talk, I'll introduce how to work on visual test using capybara screenshot and reg-suit.

11:40

休憩 10min

11:50

エンジニアリングマネジメントの孤独と向き合う On the lonely rail of Engineering Management

  • 株式会社Speee
  • 大場 光一郎

近年、エンジニアリングマネージャーという役割について議論が活発になっており、複数の書籍で取り上げられたり役割の重要性についての認知が進んでいます。もともと上手くいっている開発プロジェクトではエンジニアリングマネージャー的な役割を誰かが担っていて、必要とされていたところに適切な名前が付けられ認知が進んだのは大きな前進でした。

一方で、そのような知見を得た上で、自分たちの組織で実践していくなかでの課題感は、その性質上、個別具体の事象になりやすく、共有しにくいのが現状です。エンジニアはキャリアのどの段階でマネジメントを意識しなければならないのかモヤモヤは大きくなるばかりと考えます。

本セッションでは、なにかと孤独になりがちなエンジニアリングマネージャーの悩みについてのモヤモヤ感を生煮えのまま共有することで「人に話す」ことで気持ち楽になる発表者本位のセッションになります。

Roda and Rails

  • Railsコミッター
  • y-yagi

「Roda」というweb frameworkについての紹介をします。普段Railsをお使いの皆様への使いどころについてお話出来ればと思います。

I will show a web framework, "Roda". I will talk about its effective use cases for Rails developers.

みんながやりたがらない仕事をやって食っていく Living by doing the work nobody wants to do

  • フリーランス
  • 後藤 大輔

私はフリーランスとして多数のプロジェクトに関わってきました。優秀なエンジニア達の手により、どこも多大な成果を上げ続けるのを見てきています。

しかし、そんな優れた人たちであっても膨れあがるコードベース、遅くなる自動テスト、複雑化するデプロイに押しつぶされていき、集まれば愚痴をこぼすようになる様子もまた幾度も見てきています。問題なのはわかっている。直すこともできるんだ。でも仕方がない、時間が無いから。ビジネスが優先だから。……本当にそれだけ?

凡庸なエンジニアである私がそれでもフリーランスとして安定して仕事を得られる理由の一つは、そんな「みんなが目を背ける仕事」に喜んで手を出す変わり者である点にあると思えます。

今回は、そんな変わり者がソフトウェア開発で果たしている役割と、その必要性についてお話します。

I've been involved in many projects as a freelance engineer. I've seen many projects go successful with great engineers.

However, I've also seen that such great engineers start complaining due to codebase getting larger and larger, automated tests getting slower and slower and deployment getting more and more complex. They understand that's a problem. They can fix it. But they don't because there's no time, business goes first... Is this it?

I'm an ordinary engineer, but I still have jobs as a freelance engineer. I think one of the reasons is that I'm a strange person and I'm willing to do the work which "nobody really wants to do".

In this talk, I'll talk about how such a strange person have its role in software development and how important it is.

12:20

休憩 10min

12:30

Ruby コミュニティの歩き方 Somebody to Ruby

  • 株式会社永和システムマネジメント
  • 伊藤 浩一

みんな大好き Ruby のコミュニティと、それに関係する (もしくはあまり関係しない) あれこれについて、ものすごくいい話。

Ruby's regional communities, open source communities, and conferences are connected. I will talk you that our Ruby life will become more fun.
So Ruby makes programmers happy.

Introduction of scalable microservice for video editing/transcoding

  • 株式会社ミクシィ
  • 酒井 篤

家族アルバム「みてね」(https://mitene.us) というサービスの内部には、ユーザーがアップロードした数億件にも及ぶ大量で様々なファイルサイズ・形式の動画ファイルに対して、高速にトランスコード、また、高度な編集を行うことに特化した「Transcoder」と呼ばれるマイクロサービスが存在します。このセッションでは「Transcoder」の設計・実装の内部をできる限り詳細にご紹介します。

■ 予定しているアジェンダ

・なぜマネージドサービスではなくこのようなサービスを自作したのか?

各種クラウドサービスには同様の目的で開発されたマネージドサービスが多数存在しています。しかし、なぜ我々はそういったサービスを利用せず自作する必要があったのかについて説明したいと思います。

・数億件もの大量の動画ファイルをどのように高速に編集・トランスコードしているか?

大量でしかも動画ファイルを対象にした独特の課題や要件がある中で、コンピュートリソースをどのように扱い、スケールさせ、高速な編集・トランスコードを実現しているかをご紹介したいと思います。

キーワード: Ruby on Rails, Sidekiq, AWS, Microservices, ffmpeg, RSpec

Inside the family album service called Mitene (https://mitene.us), we have a microservice called Transcoder. It's specialized to rapidly transcode and add detailed customizations to hundreds of millions of files users upload with varieties of file sizes and formats. In this talk, I'll introduce the internal design and implementation of Transcoder as in detail as possible.

Here's the agenda.

- Why do we create our own service, not adopt other managed services?

There are so many managed services for similar purpose. I'll explain why we needed to create it on our own instead of using such services.

- How does it edit and transcode hundreds of millions of movie files so rapidly?

I'll introduce how to manage computing resources and scale it so that it can edit and transcode files rapidly with unique problems and requirements for dealing with a number of movie files.

Keywords: Ruby on Rails, Sidekiq, AWS, Microservices, ffmpeg, RSpec

SmartHRでの最初の1年 My first year at SmartHR as Software developer

  • 株式会社SmartHR
  • 渡邊 梨沙

2017年の12月にSmartHRに入社してから1年が経ちました。一緒にはたらく開発グループのメンバーは2倍になり、プロダクトも増えました。サービスの成長とともに開発グループがどのように変化していったか、自分自身にどのような変化があったかをお話します。

1 year has passed since I joined SmartHR in December 2017. The number of development team members has doubled, and the number of products has also increased. I will talk about how the team and myself have changed along with the growth of our service.

13:00

休憩 10min

13:10

モチベーションクラウド、マイクロサービス化計画

  • 株式会社リンクアンドモチベーション
  • 江上 真人

モチベーションクラウドは今までモノリシックなrailsで運用されてましたが、ついにマイクロサービス化に向けて動き始めました。

本発表では、過去一度試みて失敗した事例や、手を動かし始めて出てきた悩みを共有したいと思います。

Motivation Cloud has been operated with monolithic rails application until now, but at last it started to move toward micro service.

In this presentation, I would like to share examples that we failed once in the past and the troubles while we work for it.

ランチ内容:カツサンド or サンドイッチ or ミックスフライ弁当 or かつ重 or ポークステーキ弁当 or インドカレー

本セッションのランチは受付時に渡された整理券との引換となります。数量限定となりますので、あらかじめご了承ください。

ランチに学ぶ健康知識〜FiNC管理栄養士が解説します

  • 株式会社FiNC Technologies
  • 近藤 慶水・丹治 朋子

実際に食べるお弁当の栄養について管理栄養士が解説!ヘルスケアサービスの一部を疑似体験していただきます。

FiNCアプリを開発する楽しさの1つは、管理栄養士やトレーナーが持つ経験を間近に聞きながら設計思想に反映する作業です。

そんな場面もゆるふわに紹介していきたいと思います。

※本セッションはお弁当を食べることに気を取られても、セッション内容に聞き戻れます。

ランチ内容:生姜焼弁当(十六穀米)緑茶付

本セッションのランチは受付時に渡された整理券との引換となります。数量限定となりますので、あらかじめご了承ください。

出張版! SmartHR 会社説明会 in RailsDM

  • 株式会社SmartHR
  • ぷりんたい

普段候補者の方向けにお話している SmartHR の会社紹介を、RailsDM 2019 に出張して実施します!

ランチ内容:Qino's(キノーズ) のサンドイッチボックス

本セッションのランチは受付時に渡された整理券との引換となります。数量限定となりますので、あらかじめご了承ください。

13:50

休憩 10min

14:00

Architecture Evolution in Repro

  • 株式会社Repro
  • 橋立 友宏

Reproではそれなりに大きなスケールのデータを日々受け取り、それらを用いてマーケティングを行うための柔軟なユーザーセグメンテーション機能を提供しています。

それらはReproのキーとなる機能であり、提供するのが大変な機能でもあります。

このトークでは、我々がどうやってRailsベースのアプリケーションでそれを実現したのか、そして我々のサービスの裏側にあるアーキテクチャの変遷について紹介します。(例えば、分散データベースやデータフォーマット、ETLやSQLの生成等について)

Repro accepts pretty large scale data, and provides flexible User Segmentation (Audience) to extract marketing targets from enormous users.

That is Repro's key feature and very difficult.

I talk about how we realized these feature by Rails base application and also about how our architecture has evolved (for example distributed database, data format, ETL, Generating SQL).

操作履歴/時点指定アクセスの実現 - BiTemporal Data Model の実践 Implementing command history and temporal access - practices on BiTemporal Data Model

  • 株式会社SmartHR
  • f440

データはWebアプリケーションの中心であり、最も重要なものです。私の勤めるSmartHRでも、人事情報を軸とするWebサービスを展開する事業者として最大限の注意を払って運用を行っています。

データは活動によって刻々と変わっていくものですが、通常のWebアプリケーションでは最新の情報しか表現できていません。そのため、いつ・どのような変更を加えたのかを知りたい、あるいはある時点の情報にアクセスしたいといった要望には応えることができませんでした。SmartHRでは入退社や被扶養者の追加など多様なライフイベントに応じてデータの変更が発生するため、その変遷も表現したいというニーズがかねてよりありました。

この問題を解決するために、私達はBiTemporal Data Modelというデータ構造を導入しています。これにより、時間を指定したアクセスや変更の変遷なども表現できるようになりました。

本セッションではBiTemporal Data Modelとはなにかといった基本的なことから、実戦投入してみて気づいた点、苦労話などを話します。

Data, which lies at the center of web applications, is what matters most. Smart HR, as a company offering various services on human resources, conducts operations on the data with great care.

Although data changes from time to time by user and operator activities, ordinary web applications holds only the latest state. This makes it difficult to know when and why a specific change occurred and to access a snapshot at a specific time in the past. There have been needs in SmartHR to track this data change history, since life events such as job changes and dependent additions require data changes in the application.

In order to solve this issue, we have employed BiTemporal Data Model. This model represents historical changes of data and provides access to the specific past data.

In this session, I will talk on the basics of BiTemporal Data Model, and share our findings and stories through its employment in production.

問わず語りの個人事業主 How I've been working as a self-employed

  • フリーランス
  • MIKAMI Yoshiyuki

自分が個人事業主として働いてきた10年を、なぜ始まり、なにを考え、どう過ごしてきたか、それぞれのタイミングで悩んだこと、出した結論、その理由などを交え、お話しします。

すでに周辺の状況が変わっており古くなっているものもありますが、まずは聞き物として、そして一部でも同じような立場の方の参考になれば幸いです。

I'll talk about the 10 years I've been working as a freelance with why I started, what I've been thinking about, how I've spent my time, troubles I've faced, conclusions I've made and the reasons of those.

Some stories are outdated since the environment has changed. I hope this story is good as a tale and useful for those who are in similar situations.

14:30

休憩 10min

14:40

Webアプリケーションの開発運用で当たり前に必要とされる画像変換の中身 Internal of the image processing required on the developing of web applications

  • ピクシブ株式会社
  • 中村 宇作

Webアプリケーションの開発にあたっては、現代においては大量の画像を扱わないといけないことは明らかである。その際には、サイズ変換・フォーマット変換・転送量削減といったあたりは当然に必要となる。単純に見えて実は落とし穴がいっぱいなこうした画像変換の中身について、技術的側面から説明する(※デザインの話はしません)

To develop web applications, we obviously must handle many images. In this case, we are requested some processings such as scaling, format conversion, data size reduction and so on. They seem simple at first glance, but there are many pit falls. This talk will explain the internal of such image processing from technical aspect (does not treat designs).

ログを解析し続けてわかった、会社で眠っているアクセスログを活用する5つのプラクティス 5 practices to utilize your company’s “sleeping” access logs from experience of continuous analytics

  • 株式会社 Kaizen Platform
  • 池田 雄太郎

突然ですが、あなたの会社のアクセスログは「眠って」いませんか?「会社のデータ解析力を強めたい」という志を持って、ログ収集基盤を構築したものの、いざアクセスログが溜まったときに「さて、これをどう活用すればいいのだろう?」という壁にぶつかったり、とりあえずダッシュボードを作ってみたものの誰にも使われない…。こんな経験がある方は少なくないのでは無いでしょうか?

Kaizen Platformでは顧客サイトに埋め込まれたタグから取得したアクセスログからデータ解析を行い、数多くのサイトのUI/UXの改善を行ってきました。なぜアクセスログが活用できないのか?組織間のコミュニケーションはどう取ればいいのか?

この発表では様々なデータ解析経験から得ることができた、実際の現場のためのプラクティスやテクニックを紹介したいと思います。

Suddenly, are your company’s access logs “sleeping”, aren’t they?

I guess many of you may have some experiences that you built log collection infrastructures based on willing like “We want to empower ability about Data Analytics”. However once access log had been collected enough, you faced the wall like “How could these access logs be utilized?” or you anyway created the dashboard, but that had been never used.

Kaizen Platform is the company that collects access logs from our tags embedded in web sites of client, analyse these logs, and improve UI/UX of many web sites. Why you couldn’t utilize access logs? How could you communicate with other departments?

In this session, I’m going to talk about practice and techniques to get good insight from access logs based on our experience.

プログラミングスクールを作ってみた On building a programming school

  • 合同会社フィヨルド
  • 駒形 真幸

フィヨルドブートキャンプというプログラミングスクールをはじめて1年経っての難しさや今後の取り組みについてお話します。

I'll talk about the difficulties I've experienced during building a programming school called Fjord Bootcamp and the future plan.

15:10

休憩 10min

15:20

How framework and buildtool handle webpack?

  • Quipper LTD
  • Kohei Hasegawa

Rails has webpacker to use webpack easily.

Let's see how framework and buildtool handle webpack.

ガチスタートアップ1人目のバックエンドエンジニアのリアルな戦略と奮闘 A real strategy and struggle of the first backend engineer in a small startup

  • RiLi Inc.
  • 片山 潮美

2018年7月に1人目のバックエンドエンジニアとして入社し、WordPressで動いていた既存システムをRuby・Ruby on Rails・GCP(GKE)でフルリニューアルしました。その際の技術選択の戦略・システム構成と、リニューアル後のメリットデメリット・同僚がjoinして改善された部分をメインに、その後の職域を超えてのスタートアップでのリアルな奮闘もお話できればと思います。

I joined as a first backend engineer and replaced the system build with WordPress with Ruby on Rails and GCP(GKE). I'd like to mainly talk about the strategy of technology selection, our system structure, pros/cons after the replacement and the improvements done after the new team member joined, and also about the struggle in a startup crossing job fields.

Ruby on Railsの正体と向き合い方 What is Ruby on Rails and how to deal with it?

  • ピクスタ株式会社
  • 後藤 優一

過去のRails Developers Meetupでは、”Rails Way”の内側あるいは外側でどのようにコードを整理するかについての話がいくつかありましたが、そもそもなぜこのような工夫が必要になるのかについて述べたものはありませんでした。

本発表は、DHH氏の過去のインタビューや著作での発言を取り上げながら、この問に対して答えようとするものです。まず最初に、彼が解決したかった問題と、そのために取ったアプローチを明らかにします。次に、このアプローチが機能しなくなるような状況を示します。最後に、その対処方法について私の考えを話します。

In the past Rails Developers Meetup, there were some talks on how to organize your code inside or outside “The Rails Way”, but none on why on earth we have to do so.

In this talk, I’ll try to answer this question picking up what DHH™ said in his past interviews and publications. First, I’ll reveal the problem he wanted to solve and the approach he took for the framework. Then, I’ll show you a situation the approach doesn't work well. Finally, I’ll tell you my thoughts on how to deal with it.

15:50

休憩 10min

16:00

Evolution of Enumerator

  • 株式会社マチマチ
  • 武者 晶紀

Ruby でもっとも愛されている機能の一つに、Enumerable モジュールが挙げられると思います。私は Enumerable の便利さを広げるべく、"Enumerator" の導入や拡張に取り組んできました。

このセッションでは "Enumerator" 導入の経緯とこれまで、そしてこれから追加したいと考えている機能を紹介します。

The Enumerable module has been one of the most beloved features in Ruby. I have been working on making it even more useful by introducing the Enumerator class and extending it as a framework.

In this session I will talk about how Enumerator was discussed and created, how it has evolved as a framework, and how exactly we can make it even better going forward.

Analyze Rails CI

  • Quipper LTD
  • 松島 史秋

大きなプロジェクトには不安定なテストがつきものです。Rails にもいくつか不安定なテストがあります。

この発表では、テスト結果の分析と不安定なテストの見つけ方について発表します。

Big project has unstable tests. Rails also has some unstable tests.

In this talk, I'd like to share the result of analyzing the build results and how to find unstable tests.

Railsフロントエンドボイラープレート「medpacker」の紹介 Introduction of RoR frontend boilerplate "medpacker"

  • メドピア株式会社
  • 村上 大和

メドピア社内で使っているRails用フロントエンドボイラープレート「medpacker」を紹介します。medpackerはasset pipelineやwebpackerに依存しないRailsのフロントエンドを提供します。

本セッションでは、medpackerの機能、導入方法から作成に至った背景までをお伝えしたいと思います。

I introduce “medpacker” which is the frontend boilerplate for RoR. It provides RoR frontend environment without asset pipeline and webpacker. In this session, I tell you that function, how to apply your app and the motivation for development.

16:30

休憩 10min

16:40

巨大なモノリシック Rails アプリケーションのマイクロサービス化戦略 How to microservicify huge monolithic Rails application

  • クックパッド株式会社
  • 外村 和仁

クックパッドの Rails アプリケーションは世界でも有数な巨大モノリシックアプリケーションです。その巨大さゆえに、機能の追加やメンテナンスがまともにできる状態ではありませんでした。その問題を解決するためにコード削減やシステム分割などの様々な施策を積み重ね、ようやく成果が出てきました。そのような施策で得られた知見や今後の展望について紹介します。

The Rails application of Cookpad is one of the hugest monolithic application in the world. Due to the hugeness, we had difficulties implementing new features and maintaining existent ones. Various kinds of measures have been carried out to solve this issue such as reducing the lines of code and breaking the system down to smaller ones. These are now bearing fruit. I will share the findings and the future plan of this transformation to microservices.

コードレビューしない No Code Reviews

  • YassLab 株式会社
  • 宮城 正栄

コードレビューしてますか?

このセッションでは「コードレビューしない」を目的に次のようなことを話したいと思います。

* 今コードレビューで何をしているのか
* どうしてそのコードレビューをしているのか
* どうやればコードレビューでそれをしなくてよくなるか
* コードレビューしないをする決意

Do you conduct code reviews?

In this session, in order to achieve "no code reviews", I will talk on the following topics.

* The things you do in the code reviews.
* Why you do the things in the code reviews.
* How to avoid the things in the code reviews.
* The decision to conduct "no code reviews".

自分たちを信じられるチームが作りたくて私はこうした My practice to build a team that can trust each other

  • STORES.jp, Inc
  • 勝亦 亮

29歳で職業プログラマにジョブチェンジし2年が経過した頃、開発チーム拡大に伴ってチームが増え、そのなかの1チームのリーダー職に就くことになりました。

本セッションでは、「チーム」「課題 → 取り組み → 結果」にフォーカスして、リーダー職未経験という立場で連続する課題に立ち向かった半年間(現在進行系)の話をします。

特にスクラム開発というフレームワークにヒントを得てチームの健全性を高めていった部分や、エンジニアリングをしながらリーダー職をしていく葛藤などについてお伝えできたらと思います。

今リーダーとして戦っている人、またはこれからリーダー職に就くかもしれない人のなにかヒントになることを願って話します。

17:10

休憩 10min

17:20

JIT on Rails

  • トレジャーデータ株式会社
  • 国分 崇志

Ruby 2.6ではJITでRailsを速くすることができなかったため、Ruby 2.7のJITではRailsのようなユースケースを高速化することをゴールに置いています。本発表では、それが現時点でどれくらい上手くいきそうか、といった話をしようと思います。

As Ruby 2.6.'s JIT didn't optimize Rails applications so much, we're focusing on optimizing Rails application performance in Ruby 2.7 development. In this talk, you'll know how fast Rails could be on Ruby 2.7.

Charty on Rails

  • 株式会社Speee
  • 秒速

I'd like to introduce a simple way to visualize on Rails with Charty.

I'm developing a visualization library named Charty.
And I'm also working on using Charty in combination with Rails.

I will introduce about the following topics:

- Basic knowledge on data visualization
- Results of development at the present time
- What I thought through development and what I learned
- Future Plans

About Charty:
Charty is an open-source Ruby library for visualizing your data in a simple way.
In Charty, you need to write very few lines of code for representing what you want to do.
It lets you focus on your analysis of data, instead of plotting.

自己修復的なインフラ Self-Healing Infrastructure

  • 神速

RailsエンジニアだとAWSを触る機会はあっても、詳しくない方が多いかと思います。

特にAWSコンソールで作業してきた方は、インフラのコード化を行うときに苦労します。

このトークではAWSのインフラをTerraformで管理し、CIで自動更新するために私が行ってきた事を話します。

* AWS IAMの基礎知識
* インフラの自動更新の設定方法
* AWS ロールの設計
* Railsアプリケーションのデプロイ

Railsアプリに関する話はありませんが、その外側の世界を話したいと思います。

I assume most of Rails developers have chances to use AWS, whereas few of them have deep understanding of AWS.

Especially, engineers who mainly use AWS Management Console tend to have difficulty building infrastructure as code.

In this session, I will talk about what I have done in order to let Terraform manage our infrastructure on AWS and to keep the infrastructure automatically updated as CI:

* Basic Knowledge on AWS IAM
* Settings for Automatic Update of Infrastructure
* Design of AWS IAM roles
* Deployment of Rails Application

The talk will be focused not on Rails applications but on their surrounding world.

17:50

休憩 10min

18:00

MedPeerの取り組みの「失敗」の話をしよう

  • メドピア株式会社
  • 保立 馨

18:05

アート×テクノロジーでオンリーワンの企業になりたい

  • 株式会社ラブグラフ
  • 駒下 純兵

18:15

休憩 5min

18:20

Rails 6, Progress and Maturity

  • Basecamp
  • Jeremy Daer

Let's preview what's new in the Rails 6 beta! We'll examine how Rails 6 makes its biggest steps forward by extracting strong patterns from mature apps and breathing new life into them: Action Text and Action Mailbox frameworks, multi-database support, parallel testing, and more.

18:50

閉会

19:00

懇親会

21:30

片付け

22:00

撤収

SPONSORS

STAFF

yhirano55

yhirano55

okuramasafumi

okuramasafumi

katsuhisa91

katsuhisa91

yuemori

yuemori

shoy75

shoy75

Shigeyuki-fukuda

Shigeyuki-fukuda

shioimm

shioimm

lime1024

lime1024

mexelout

mexelout

tsubasa0105

tsubasa0105

hoshinotsuyoshi

hoshinotsuyoshi

smasato

smasato

kaekasui

kaekasui

nappan23

nappan23

unasuke

unasuke