@K-Ruby#27 年末LT大会 https://k-ruby.connpass.com/event/229214/
ブログも見てね https://udzura.hatenablog.jp/entry/2021/10/31/003342
1RBS(仮)近藤宇智朗 / GMO PEPABO inc.2021.11.18 K-Ruby#27
View Slide
2自己紹介技術部 データ基盤チーム/技術基盤チーム2013年 入社近藤宇智朗 Uchio Kondo (@udzura)駆け出しデータ基盤エンジニア、シニアシレンジャー。● 徳川幕府を建てた家康の出身地でもある三河生まれ。● 好きなバンド: Pavement● 好きなYouTubeチャンネル: やんちゃクラブ● 好きなdefault gem: fiddle● 福岡三大うどんは資さんうどん過激派です
どうしてもしないといけない宣伝3
実装したもの4コミュニティに興味のある方、デザインで貢献したい方、たのまぁ〜若干ですが副賞もあります。Fukuoka.rb ロゴコンペ応募開始!https://github.com/fukuokarb/new-logo-competition/
RBSを使ってみた5
きっかけ6Railsはよくわかないけど、時代が型なのはそうだ!その通りだ!Rust大好き!触れていなかったRBS、この機会に触れてみます。時代は型だ時代は型なんで、 @udzura さん、ちょいちょいっとRailsでRBSをバーンとする方法LTしてくださいよ〜
実装したもの7動くところまで作ってもいいけど、時間がないので実質できたと言えるパーサまで。プログラミング言語...... のパーサまで。トークン 文法
実装したもの8ぶっちゃけ文法はLuaのほぼサブセットなので、軽量なLua… ケイリョウ...Klua です。https://github.com/udzura/klua言語の名前
実装したもの9開発の非常に初期に型を考える、というのが大事。After RBS 時代の開発サイクル空のクラス・メソッドを書くTypeProfでsigの雛形rbs/rb の型を埋めるsteep checkでチェックチェックが通る実装を入れるロジックのテストも書く型を編集する
実装したもの10パーサまで。一応Visitorも実装してASTをダンプできます。動作の様子
実装したもの11RBSのシグネチャはこういう見た目。実際のコードの感じ
実装したもの12RBSのシグネチャはこういう見た目。で実装との対応はこういう感じ実際のコードの感じ(2)
実装したもの13非常にいい。。。。エディタの支援や補完の様子
実装したもの14通ったら気持ちいい!steep check
RBSを使った感想15
所感など16結論をまずは:1) 型を決めると気持ちいい。2) 型とデータ構造ドリブンに設計を考えることが容易になった。型は思考の補助道具。3) 言語実装もそうだけど、ミドルウェアやシステムプログラミングなど複雑な実装をする際に型の助けがあるのは良さそう。→ Ruby をもっと色々なプログラムに使えるように。RBSを一から始めるプロジェクトに導入してみて?
所感など17こちらも結論は:1) メリット大きいので挑戦するといいと思う。2) ただ、依存gemが多かったりすると大変そう。untypedをなるべく使いたくないけど、最初は仕方なさそう。。3) ツールやエコシステムがまだ未成熟なところが多く、初めは静的解析に優しいコードに修正する場面も多いかも。でもそれは読みやすい・保守しやすいコードに繋がるかも。RBSを既存のプロジェクトに導入する?
時間があれば demo18
これだけは覚えて帰って欲しいこと19
20型を決めると気持ちいい!!1
最後に21ブログを書いてます:https://udzura.hatenablog.jp/entry/2021/10/31/003342実装の様子などは
22Thank You!Thank You!We're hiring typed Rubyists!