$30 off During Our Annual Pro Sale. View Details »

Talk of RBS

KONDO Uchio
November 18, 2021

Talk of RBS

KONDO Uchio

November 18, 2021
Tweet

More Decks by KONDO Uchio

Other Decks in Technology

Transcript

  1. 1
    RBS(仮)
    近藤宇智朗 / GMO PEPABO inc.
    2021.11.18 K-Ruby#27

    View Slide

  2. 2
    自己紹介
    技術部 データ基盤チーム/技術基盤チーム
    2013年 入社
    近藤宇智朗 Uchio Kondo (@udzura)
    駆け出しデータ基盤エンジニア、シニアシレンジャー。
    ● 徳川幕府を建てた家康の出身地でもある三河生まれ。
    ● 好きなバンド: Pavement
    ● 好きなYouTubeチャンネル: やんちゃクラブ
    ● 好きなdefault gem: fiddle
    ● 福岡三大うどんは資さんうどん過激派です

    View Slide

  3. どうしてもしないといけない宣伝
    3

    View Slide

  4. 実装したもの
    4
    コミュニティに興味のある方、
    デザインで貢献したい方、
    たのまぁ〜
    若干ですが副賞もあります。
    Fukuoka.rb ロゴコンペ応募開始!
    https://github.com/fukuokarb/new-logo-competition/

    View Slide

  5. RBSを使ってみた
    5

    View Slide

  6. きっかけ
    6
    Railsはよくわかないけど、時代が型なのはそうだ!その通りだ!
    Rust大好き!
    触れていなかったRBS、この機会に触れてみます。
    時代は型だ
    時代は型なんで、 @udzura さん、
    ちょいちょいっとRailsでRBSをバーンとする方法
    LTしてくださいよ〜

    View Slide

  7. 実装したもの
    7
    動くところまで作ってもいいけど、時間がないので実質できたと言えるパーサまで。
    プログラミング言語...... のパーサまで。
    トークン 文法

    View Slide

  8. 実装したもの
    8
    ぶっちゃけ文法はLuaのほぼサブセットなので、
    軽量なLua… ケイリョウ...
    Klua です。
    https://github.com/udzura/klua
    言語の名前

    View Slide

  9. 実装したもの
    9
    開発の非常に初期に型を考える、というのが大事。
    After RBS 時代の開発サイクル
    空のクラス・
    メソッドを書

    TypeProfで
    sigの雛形
    rbs/rb の
    型を埋める
    steep check
    でチェック
    チェックが
    通る
    実装を入れる
    ロジックの
    テストも
    書く
    型を編集する

    View Slide

  10. 実装したもの
    10
    パーサまで。一応Visitorも実装して
    ASTをダンプできます。
    動作の様子

    View Slide

  11. 実装したもの
    11
    RBSのシグネチャはこういう見た目。
    実際のコードの感じ

    View Slide

  12. 実装したもの
    12
    RBSのシグネチャはこういう見た目。で実装との対応はこういう感じ
    実際のコードの感じ(2)

    View Slide

  13. 実装したもの
    13
    非常にいい。。。。
    エディタの支援や補完の様子

    View Slide

  14. 実装したもの
    14
    通ったら気持ちいい!
    steep check

    View Slide

  15. RBSを使った感想
    15

    View Slide

  16. 所感など
    16
    結論をまずは:
    1) 型を決めると気持ちいい。
    2) 型とデータ構造ドリブンに設計を考えることが容易になった。
    型は思考の補助道具。
    3) 言語実装もそうだけど、ミドルウェアやシステムプログラミングなど
    複雑な実装をする際に型の助けがあるのは良さそう。
    → Ruby をもっと色々なプログラムに使えるように。
    RBSを一から始めるプロジェクトに導入してみて?

    View Slide

  17. 所感など
    17
    こちらも結論は:
    1) メリット大きいので挑戦するといいと思う。
    2) ただ、依存gemが多かったりすると大変そう。
    untypedをなるべく使いたくないけど、最初は仕方なさそう。。
    3) ツールやエコシステムがまだ未成熟なところが多く、
    初めは静的解析に優しいコードに修正する場面も多いかも。
    でもそれは読みやすい・保守しやすいコードに繋がるかも。
    RBSを既存のプロジェクトに導入する?

    View Slide

  18. 時間があれば demo
    18

    View Slide

  19. これだけは
    覚えて帰って欲しいこと
    19

    View Slide

  20. 20
    型を決めると
    気持ちいい!!1

    View Slide

  21. 最後に
    21
    ブログを書いてます:
    https://udzura.hatenablog.jp/entry/2021/10/31/003342
    実装の様子などは

    View Slide

  22. 22
    Thank You!
    Thank You!
    We're hiring typed Rubyists!

    View Slide