Submit Search
【Ltech#0】 RubyKaigi2018報告会
Download as PPTX, PDF
0 likes
154 views
LIFULL Co., Ltd.
2018/06/05(火)開催 Ltech#0 RubyKaigi2018報告会講演スライド 登壇者:吉田 希 Ruby2.6に関する情報と参加した講演で気になったところについて
Technology
Read more
1 of 24
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
More Related Content
PDF
Inside PyCon JP 2016
koedoyoshida
PDF
Ruby StyleStatsの紹介
Toshihiro Gotou
PDF
Rubykaigi2013ミニ報告 - hmrb#30 LT
Shigeru UCHIYAMA
PDF
ようこそ東海道らぐへ (2016年版)
shimadah
PDF
東海道らぐへのお誘い 2015年版
shimadah
PDF
Rubykaigi2018共有会
ogawatti
PDF
RubyKaigi2014レポート
gree_tech
PPTX
【Ltech#0】RubyKaigi2018報告会
LIFULL Co., Ltd.
Inside PyCon JP 2016
koedoyoshida
Ruby StyleStatsの紹介
Toshihiro Gotou
Rubykaigi2013ミニ報告 - hmrb#30 LT
Shigeru UCHIYAMA
ようこそ東海道らぐへ (2016年版)
shimadah
東海道らぐへのお誘い 2015年版
shimadah
Rubykaigi2018共有会
ogawatti
RubyKaigi2014レポート
gree_tech
【Ltech#0】RubyKaigi2018報告会
LIFULL Co., Ltd.
Similar to 【Ltech#0】 RubyKaigi2018報告会
(20)
PDF
地域Ruby会議に参加してきた話とか
Ken Muryoi
PPTX
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
PDF
nomlab_okayamaruby_slide
nomlab
PDF
マニアックなRuby 2.7新機能紹介
mametter
PDF
Ruby Sapporo Night Vol4
Koji SHIMADA
PDF
2015 07-04-ruby rails
Hiroshi Oyamada
ODP
とっとるびー(2回目)発表資料
ionis111
PDF
Ruby 2.5
Masahiro Tomita
PDF
Agile Software Development with Edge Ruby
Koichi ITO
PDF
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Tomoya Kawanishi
PDF
Ruby で高速なプログラムを書く
mametter
PPT
JRuby on Rails
Yoichiro Tanaka
PDF
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
PDF
RubyのGC改善による私のエコライフ
Narihiro Nakamura
PDF
わたしのRubyの楽しみかた
Yuusaku Iwamoto
PDF
Rubyな日々
Kazuhiro Nishiyama
PDF
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
耕平 谷口
PPT
何でRuby
Ngoc Dao
PDF
Rubyとプログラミング言語の潮流
Kazuhiko Kato
PDF
Refrection of kawasaki.rb
Aki Ariga
地域Ruby会議に参加してきた話とか
Ken Muryoi
Ruby on Rails を用いたWEBアプリケーションの開発
Koichi Shimozono
nomlab_okayamaruby_slide
nomlab
マニアックなRuby 2.7新機能紹介
mametter
Ruby Sapporo Night Vol4
Koji SHIMADA
2015 07-04-ruby rails
Hiroshi Oyamada
とっとるびー(2回目)発表資料
ionis111
Ruby 2.5
Masahiro Tomita
Agile Software Development with Edge Ruby
Koichi ITO
Ruby ビジネス創出展 Ruby初心者向けプログラミングセミナー
Tomoya Kawanishi
Ruby で高速なプログラムを書く
mametter
JRuby on Rails
Yoichiro Tanaka
Rubyの仕事で食べていくために僕らは!
Ouka Yuka
RubyのGC改善による私のエコライフ
Narihiro Nakamura
わたしのRubyの楽しみかた
Yuusaku Iwamoto
Rubyな日々
Kazuhiro Nishiyama
C,Javaと比較しながらRubyに入門する話 - e-ZUKA Rails拡大号vol1
耕平 谷口
何でRuby
Ngoc Dao
Rubyとプログラミング言語の潮流
Kazuhiko Kato
Refrection of kawasaki.rb
Aki Ariga
Ad
More from LIFULL Co., Ltd.
(20)
PDF
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
LIFULL Co., Ltd.
PDF
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
LIFULL Co., Ltd.
PDF
Kubernetesセキュリティの歩き方
LIFULL Co., Ltd.
PDF
LIFULLの全社アプリケーション実行基盤 KEEL について
LIFULL Co., Ltd.
PDF
Kubernetesクラスタバージョンアップを支える技術
LIFULL Co., Ltd.
PPTX
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL Co., Ltd.
PPTX
LIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっている
LIFULL Co., Ltd.
PPTX
SaPID を導入するまでとそれから
LIFULL Co., Ltd.
PPTX
3D間取りを支える技術
LIFULL Co., Ltd.
PPTX
LIFULL HOME'Sのおとり広告予測モデルの開発
LIFULL Co., Ltd.
PPTX
大企業でアジャイル開発を推進できる条件とその心構え
LIFULL Co., Ltd.
PPTX
スクラムを利用したアジャイルオフショア開発のとりくみ
LIFULL Co., Ltd.
PDF
実践 マーケティングテクノロジーエンジニア
LIFULL Co., Ltd.
PPTX
エンジニア × マーケティングテクノロジー が必要な理由
LIFULL Co., Ltd.
PPTX
「空飛ぶホームズくん」を実現するVR技術
LIFULL Co., Ltd.
PPTX
ニオイセンサで思索する街の新たな指標
LIFULL Co., Ltd.
PPTX
Well-beingを測る「LIFE WILL」開発の舞台裏
LIFULL Co., Ltd.
PDF
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
LIFULL Co., Ltd.
PPTX
ウェブアクセシビリティ推進活動はじめました
LIFULL Co., Ltd.
PPTX
大きめレガシープロジェクトのフロント行く末
LIFULL Co., Ltd.
20220319_新卒から活躍し続けるエンジニアが大切にしている5つのこと
LIFULL Co., Ltd.
趣味と仕事の違い、現場で求められるアプリケーションの可観測性
LIFULL Co., Ltd.
Kubernetesセキュリティの歩き方
LIFULL Co., Ltd.
LIFULLの全社アプリケーション実行基盤 KEEL について
LIFULL Co., Ltd.
Kubernetesクラスタバージョンアップを支える技術
LIFULL Co., Ltd.
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL Co., Ltd.
LIFULLでは新卒エンジニアに 丸一日のテスト研修を行なっている
LIFULL Co., Ltd.
SaPID を導入するまでとそれから
LIFULL Co., Ltd.
3D間取りを支える技術
LIFULL Co., Ltd.
LIFULL HOME'Sのおとり広告予測モデルの開発
LIFULL Co., Ltd.
大企業でアジャイル開発を推進できる条件とその心構え
LIFULL Co., Ltd.
スクラムを利用したアジャイルオフショア開発のとりくみ
LIFULL Co., Ltd.
実践 マーケティングテクノロジーエンジニア
LIFULL Co., Ltd.
エンジニア × マーケティングテクノロジー が必要な理由
LIFULL Co., Ltd.
「空飛ぶホームズくん」を実現するVR技術
LIFULL Co., Ltd.
ニオイセンサで思索する街の新たな指標
LIFULL Co., Ltd.
Well-beingを測る「LIFE WILL」開発の舞台裏
LIFULL Co., Ltd.
㊗ LINE新着物件通知 リリース!! PJ進行に沿って話す、 PjM/PdMとして やったこと
LIFULL Co., Ltd.
ウェブアクセシビリティ推進活動はじめました
LIFULL Co., Ltd.
大きめレガシープロジェクトのフロント行く末
LIFULL Co., Ltd.
Ad
【Ltech#0】 RubyKaigi2018報告会
1.
Ruby2.6に関する情報 と 参加した講演で気になったところについて 株式会社LIFULL LIFULL HOME’S事業本部流通事業部UXU 吉田 希
2.
アジェンダ • 自己紹介 • RubyKaigi2018概要 •
Ruby2.6にまつわる内容 • 聴講した講演からいくつか • RubyGems • Rubocop • Guild • TypeDB, TypeProfiler • 総括と所感
3.
自己紹介 • zom@Qiita • LIFULL入社10年目 •
好きな言語:Ruby • 書ける言語 • Ruby • PHP • js • 趣味:自炊 • anovaで低温調理
4.
RubyKaigi2018概要 • 5/31(木) -
6/2(土) • 国際センター@仙台 • 参加者1017名 • この規模は過去最大 • 外国の方も多く体感値3割くらい • スポンサー71社 • LIFULLもプラチナスポンサーとして参加 • Ruby2.6の最新情報が目玉(?)
5.
Ruby2.6にまつわる内容 • Ruby2.6.0-preview2がRubyKaigiの初日である5/31に公開 • JITコンパイラ •
Endless range • Proc#callの高速化 • block.callの高速化 • yield_selfの別名thenの追加 • RubyGems3の導入 • preview3は9月を予定 • 多段backtrace機能を追加予定 • Ruby2.6.0は12月25日にリリース予定
6.
Ruby2.6にまつわる内容 • JITコンパイラ • Cのコードとしてファイルに書き出しCコンパイラでネイティブコード に変換 •
CとGCCコンパイラ環境が必要(VisualC++, IntelC++Compilerでは動かない) • OSもFreeBSDでは動かないなどいくつかの制約がある • 現段階ではプロダクションで使うと確実に動かない • OptCarrorではRuby2.0に比べると2倍速くなった • Railsでは遅くなった • 一定の条件下でオーバーヘッドが発生する(修正予定) • Ruby→C→(ここ)→Rubyが遅いらしい https://speakerd.s3.amazonaws.com /presentations/fc4bc2035f8a497a8fd3dc801aa7a168/rubykaigi2018_k0kubun.pdf
7.
参考:OptCarrotの例
8.
Ruby2.6にまつわる内容 • Endless range
9.
Ruby2.6にまつわる内容 • Proc#callの高速化 • block.callの高速化 •
yield_selfの別名thenの追加 • https://bugs.ruby-lang.org/projects/ruby- trunk/repository/revisions/63525 • Matz自身が5年ぶりにコミットしたことで湧いた
10.
https://twitter.com/hsbt/status/1002476626020483072 https://twitter.com/hsbt/status/1002473972863156224
11.
聴講した講演からいくつか
12.
RubyGems • 今までの話 • 現行の最新は2.7.7 •
もう2.5と2.6はセキュリティメンテナンスしかされない • Ruby1.8対応 • Object#respond_toでメソッドの有無を確認してifで分岐して対応… • これからの話 • Ruby2.6.0-preview2には3.0.0beta1がバンドル • 3.0はRuby2.2以上を対象 • 上記のようなif分岐を削除 • 今後deprecateになるものにwarningを出す
13.
RubyGems • Ruby2.7か3.0までに4.0をリリース予定 • 4.0ではすでにインストールされているgemはインストールしな いようにしてエコにする •
--user-installのデフォルト化 • gem installするとシステム領域にインストールしようとして permission deniedになる • これは初見ユーザ殺しでRubyを嫌いになってしまう一因と考えている ため
14.
Rubocop • 今までの話 • 最初は正規表現で頑張ってた •
次にripperを使うようになった • これでかなり改善された • しかしripperはMRIでしか動かない&ドキュメントがほぼない • クロスプラットフォームで動かしたいので脱ripperしたい • parser(gem)を使うことで実現、ゴリゴリ修正 • ここまでで2012年5月から2013年7月までの流れ • 並列チェックやキャッシュなど様々な機能追加をしてlintツールとして の地位を確立 • 拡張機能も充実(189個) • rubocop-spec, guard-rubocop, rubocop-sequel, rubocop-caskなど
15.
Rubocop • これからの話(Rubocop1.0について) • コア機能からRails用のCopを削除 •
Rubocop拡張をしやすいようにAPIの提供 • mryでスムーズな移行を推奨 • https://github.com/pocke/mry • それでもRubyのサポートするバージョンや設定値の変更などい くつかの機能の変更はある
16.
Guild • Ruby3.0より導入予定のThreadに代わる並列プログラミングモ デル • 複数のThreadによってGuildが構成され、Guild間で並列実行さ れる •
Actorモデルという並行計算モデルを元にしている模様 • 残念ながら知らない領域… • Guild間で共有可能なオブジェクト、そうではないオブジェク トなど実例を交えて提示
17.
Guild • 各種ベンチマークではコア数に応じて高速に処理できるケース とできないケースがある • 40コアでn個のフィボナッチ数を10万回求める •
これはnの数によって異なる • 特定のディレクトリ以下のファイルの単語数を計算して一番単語数の 多いファイルを特定する • Guildを使ったほうが遅い • GCやオブジェクトの割当の際にGVLが発生するため • とはいえ実例を見る限りすごく簡単に並列処理ができそう
18.
TypeDB, TypeProfiler • Rubyに型を入れないことを明言@Matz •
将来的にコンパイラが進化して型を推測するような未来になり、型を 意識せずに済むのでは • その未来では自分たちで型を書いている現在のコードは陳腐化する • Matzが最終的なGoサインを握っているのでコアコミッタは Matzの要求を引き出す作業をしている • 様々な型チェックの仕組み(gem)が作られている
19.
TypeDB, TypeProfiler • Steep •
https://github.com/soutaro/steep • 設定ファイルに書いてチェックさせる方式なので言語仕様に影響しな い • Matz好みの方向性とのこと • Sorbet • 今回のRubyKaigiで発表された? • 結構よくできているらしい • RDL • アカデミック界隈で重宝されている • Sorbetがなければ世界一では by @mametter
20.
TypeDB, TypeProfiler • Steepが方向性としては良いが手動で作るのは大変 •
将来的には自動生成されるとよい • その生成するための型情報を貯めるためのTypeDB • そしてそのDBへ入れる型情報を生成するためのTypeProfiler • RubyCode→TypeProfiler→TypeDB • 機械学習のようなイメージと個人的に解釈
21.
TypeDB, TypeProfiler • RubyCode→TypeProfilerにするための手段 •
静的解析1 • 動的に生成されるメソッドなどは間違った推定をしがち • 静的解析2(TypeDBのプロトタイプを使用) • (まだデータが十分じゃないから?)間違った推定をしがち • 動的解析(メソッドのin/outをTracePointで解析) • 遅い • void型を推定できない • やりたいことに対してTracePointのAPIが足りない • まだ道半ば
22.
総括と所感 • とにかく使いやすいように、楽しく書けるように、という想い や工夫が伝わってきた • Guildで手軽に並列プログラミング •
RubyGemsの--user-intall • TypeDBで自動型推定 • RubocopでLint • Ruby is deadと毎年言われているがこの信念があれば死なない と思う
23.
総括と所感 • 日本人でも英語で発表する • 英語マジで大事 •
普通にC言語やメモリの話がされる • 基礎マジで大事 • アセンブリの話をされたときはさすがにぽかーんとした • エンジニアとして刺激をもらえる
24.
おわり
Download