- すべて
- 画像・動画
並べ替え:新着順
本日の発表資料です。来てくださったみなさま、ありがとうございました! Here's the deck from my RubyKaigi talk today. Thank you y'all for coming today! speakerdeck.com/yuryu/ruby-and… #rubykaigic
ドキュメント見た感じ、 gem に ruby lsp addon を仕込めるので、gem をインストールすると自動で LSP も拡張できるのが面白そうだと思った shopify.github.io/ruby-lsp/ADDON… #rubykaigiC #rubykaigi
ツールごとに独自のキャッシュとか持ちたくなるんじゃないかなあみたいなことは思いつつ、RubyLSP Addon 見た感じ結構自由度高く書けそうな印象なので結構ありかも shopify.github.io/ruby-lsp/ADDON… #rubykaigiC
アドオンの例 Ruby LSP Rails: github.com/Shopify/ruby-l… Ruby LSP RSpec: github.com/st0012/ruby-ls… #rubykaigi #rubykaigiC
「Ruby LSP Addon。LSPのコアとなる機能を自分で実装することなく、LintやType Checkなどの機能を追加できる。利用時はLanguage Serverのアドオンとして必要なアドオンを追加できる」 #rubykaigi #rubykaigiC github.com/Shopify/ruby-l…
現状Rubyファイルを編集するのにRuby LSP、Solargraph、Steep、……とそれぞれ起動してるので、(少なくともRuby専用は)1個になったらいち開発者としては楽になりそう #rubykaigiC
「なにが足りない? コーディネート? コラボレーション? 我々が一番開発体験を向上できるのはLSPだと思うが、今はlanguage serverが分散している。複数のLSPで作業が重複してメモリ使用量を増やしてしまっている」 #rubykaigi #rubykaigiC
「Rustから学ぶのを辞めるべきではない。PrismはRDoc, Formatter, Code mods(incl. Type Checer, Linter, LSP)を統合しようとしている。長い道のりになるが成し遂げたい」 #rubykaigi #rubykaigiC
「ほとんどの言語は開発ツールが断片化していて、統合されているのはRustとGoくらい。Rustは2015年、Goは2009年に作られた言語で、色々な学びが活きている」 #rubykaigi #rubykaigiC
「Rustのツール体験はよく出来ている。ツールがグローバルにインストールされて自動アップデートされる。でもRubyが同じようにできるかというと別の話。gemをグローバルでインストールしたり、勝手にアップデートするのは難しい」 #rubykaigi #rubykaigiC
「デフォルトを選ぶことで、選ぶ必要がなくなり良い体験を生む。ツールを使うことは目的ではなく、ツールを飛び石としてなにかを作ることが目的。開発者がそれに集中できるようにすることが大切」 #rubykaigi #rubykaigiC
「多くのツールが良い開発体験を生むわけではない。我々はDXに関する方針を持たないといけない。DXは一つのツールではなく複数のツールがどう統合されるかにある」 #rubykaigi #rubykaigiC
「複数のプロジェクトでそれぞれ使っている開発ツールが違うと、それぞれで学習しないといけない。デフォルトと案内が欠けているのでツールが断片化し、統合が難しく設定が複雑化する」 #rubykaigi #rubykaigiC
そういえば少し前にruby-jp Slackでも「Rubyのバージョンどこに書く?」みたいな話題がありましたね。あれもバージョン管理ツールがいろいろあるという話に関連してる感。 #rubykaigiC
#rubykaigic Rust ならツールの組み合わせは1つに絞られるけど、Ruby では1320通りの組み合わせから選ぶことになってしまう。 このあたりのことをfragmentation と呼んでるのかな?
「これを選ぶにはそれぞれの体験を検討して一つを選ばないといけない。Rustなら1つの組み合わせしかないのに、Rubyだと13,200通りある。開発ツールの統合が大変」 #rubykaigi #rubykaigiC
「型システムはSorbet, Steep, Typeprof, RDL, YARD。Formatting/lintingはRuboCop, Standard, RubyFmt, ...。LangServerはTypeCheck系やSyntaxTree LSP, Standard LSPなど多数。この調子で他のツールも続く」 #rubykaigi #rubykaigiC
「Rubyをインストールするとどんな開発ツールが必要化? まずRubyのインストールでHomebrewなのかrbenvなのかasdfなのかの選択肢が発生する。testもMinitestなのかTest Unitなのか Rspecなのか。RubyのデフォルトはMinitestとTest Unit」 #rubykaigi #rubykaigiC
「Rustには開発ツールチームがある。モダンなデフォルトツールとガイダンスがあることで、簡単に学べたり、最小の設定で使えたりなどの利点がある」 #rubykaigi #rubykaigiC
|> オペレータ、欲しい局面はわかりつつcurry化されてないので欲しいか? と思ってたけどコード例だと右辺をProcにしてitで入れる場所を指定することもできるイメージか。これならきれいに動きそう(実装はつらそう) #rubykaigi #rubykaigiC