並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 64件

新着順 人気順

RBSの検索結果1 - 40 件 / 64件

RBSに関するエントリは64件あります。 rubyrailsRuby などが関連タグです。 人気エントリには 『そろそろRailsプロジェクトに型を導入したい人向けの資料』などがあります。
  • そろそろRailsプロジェクトに型を導入したい人向けの資料

    すべての説明はイチRubyユーザーの個人的で期間も限定的な観測範囲に基づきます。 「Rubyには型がない」 ある日、同僚とプログラミング言語に関する雑談をしていたときに言われた一言です。 私はその日までRubyの型機能は使っていませんでした。忙しい毎日を送り、キャッチアップを疎かにしていたのです。後日このことは猛烈に反省することになります。 「Rubyには……型があるッ……!」 火がついた私はパターンマッチの時と同様にRubyの型についてキャッチアップすることにしました。そして最高の体験が待っていました。 導入した後の世界 ぶっちゃけRubyの型を導入するとどうなるのでしょうか? メチャクチャ簡単に説明すると、エディタでバグがひと目で分かるようになります。 vscodeでの画面です。なにやら赤線がついています。 === bar === barの部分にカーソルを合わせてみましょう。 「Pos

      そろそろRailsプロジェクトに型を導入したい人向けの資料
    • 不要な処理が実行速度を速くする謎を追う - Money Forward Developers Blog

      こんにちは。 id:Pocke です。マネーフォワードでは Rails を用いた Web アプリケーションの開発と、RBS という Ruby の静的型システムの開発を行っています。 最近 RBS の開発をする中で、「不要な処理を削除すると実行速度が遅くなる」という不思議な現象に遭遇しました。この記事ではその現象を解説しようと思います。 なおこの記事は Ruby の知識を前提としないように執筆されており、Ruby の知識が必要となるところには注釈を加えて補足しています。 普段 Ruby を書かない方にも読んでいただければ幸いです。 問題を引き起こした変更 今回の問題は、RBS のメモリ使用量の削減を行っている中で遭遇しました。まずはどんな変更を行おうとしていたかを解説します。 変更の動機 最近私は RBS のメモリ使用量の削減に取り組んでいます。1 その取り組みの中で、RBS のパーサーが作

        不要な処理が実行速度を速くする謎を追う - Money Forward Developers Blog
      • Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ

        こんにちは。サーバーサイドエンジニアの三村(@t_mimura)です。 主に保険薬局と患者さまを繋ぐ「かかりつけ薬局」化支援アプリ kakariのサーバーサイド開発(Ruby on Rails)を担当しています。 突然ですが! この度kakariプロジェクトは「型導入」をしました! kakariのRailsリポジトリに型導入PRがマージされた様子 皆さんのプロジェクトは「型導入」していますか? 「型導入」しているRailsプロジェクトはまだ少ないのではないでしょうか なぜ型導入しないのか 型を導入すると何かしらが便利になることは分かっているのに何故やらないのでしょうか(煽り気味) 「型の恩恵」と「型を自分たちで書くコスト」の2点を比較していませんか? RubyKaigi 2023開催前の私がまさしくそう考えていました。 本当にその2点を比較するべきなのかをここで再考してみましょう。 「型導

          Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ
        • "型"のあるRailsアプリケーション開発 / Typed Rails application development

          Rubyセミナー 東京 https://www.ruby.or.jp/ja/news/20240702

            "型"のあるRailsアプリケーション開発 / Typed Rails application development
          • Ruby 3 の静的解析ツール TypeProf の使い方 - クックパッド開発者ブログ

            こんにちは、フルタイムRubyコミッタとして働いてる遠藤(@mametter)です。昨日、Ruby 3.0.0-preview2がリリースされました! このリリースには、遠藤が開発している Ruby の静的型解析ツール TypeProf が初めて同梱されています。これの使い方をかんたんにご紹介したいと思います。 デモ TypeProf は、型注釈のない Ruby コードを無理やり型解析するツールです。とりあえずデモ。 # user.rb class User def initialize(name:, age:) @name = name @age = age end attr_reader :name, :age end User.new(name: "John", age: 20) typeprof コマンドは、Ruby 2.7 で gem install typeprof でインスト

              Ruby 3 の静的解析ツール TypeProf の使い方 - クックパッド開発者ブログ
            • aws-sdk-ruby配下すべてのgemにRBSが含まれた状態でリリースされました - スペクトラム

              みなさまに、RBSに関する重要なニュースを発表できることを嬉しく思います。 私の目標の一つにはRBSを当たり前の世界にするというものがあります。 この目標に対して大きなインパクトを残せたことに大変興奮しています。*1 aws-sdk-ruby配下すべてのgemにRBSが含まれた状態でリリースされました こちらは公式blogからのアナウンスです。 aws.amazon.com aws-sdk-rubyはrubygemsでの累計ダウンロードランキング2位に乗るほどの人気gemです。(aws-sdk-core) aws-sdk-rubyは現状370以上のgemのあつまりです。 このすべてのgemにRBSが含まれた状態でリリースされました。 そうです。すべてです。 rbs v3.4.0以上でご利用いただけます。 steep + vscodeの例。etagがStringであることがわかる え、なにが

                aws-sdk-ruby配下すべてのgemにRBSが含まれた状態でリリースされました - スペクトラム
              • Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ

                こんにちは、フルタイムRubyコミッタとして働いてる遠藤(@mametter)です。 Ruby 3 は「静的型解析」を備えることが目標の 1 つになっています。遠藤が開発してる TypeProf は Ruby 3 の静的型解析エコシステムの中の 1 ツールです。しかし Ruby 3 の静的解析というと、RBS、TypeProf、Steep、Sorbet などいろいろなツール名が出てきてよくわからない、という声を何回か聞いたので、かんたんにまとめておきます。 3 行まとめ RBS:Ruby の型情報を扱う言語。Ruby 3 にバンドルされる。 TypeProf:型注釈のない Ruby コードを型解析するツール。Ruby 3 にバンドルされる。 Steep/Sorbet:Ruby で静的型付けのプログラミングができるツール。 詳しくはそれぞれ以下で解説します。 RBS とは RBS は、Rub

                  Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ
                • RBS基礎文法最速マスター - pockestrap

                  RBSはRuby 3に組み込まれた、Rubyの型情報を記述する言語です。 この記事ではRBSの文法を駆け足で紹介します。 細かい話は飛ばしますが、この記事を読めば大体のケースでRBSを読み書きできるようになると思います。 事前準備 インストール まずは文法の前に、rbs gemをインストールしましょう。 Ruby 3を使っている場合、rbs gemはRuby 3に同梱されているため何もしなくても使えます。 Ruby 3未満を使っている場合でも、gem install rbsすれば使うことができます。 この記事では、rbs gem v1.0.0を対象に構文を紹介します。 $ gem install rbs Successfully installed rbs-1.0.0 1 gem installed $ rbs --version rbs 1.0.0 動作確認 書いたRBSは、rbsコマン

                    RBS基礎文法最速マスター - pockestrap
                  • いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab

                    Rubyをはじめとする「動的型付け」のプログラミング言語は、ソースコード中に型に関する記述が陽に出てこないことが特徴で、プログラムの実行前に(静的に)型検査をすることはありません。しかし、このようなプログラミング言語においても、大規模な開発における品質の向上や開発体験の改善、実行の高速化のために、静的な解析を活用しようという試みは多くなされてきました。この記事では、動的型付けの言語のための型検査の歴史を簡単に振り返って、現在私が開発しているRuby向けの型検査器Steepとその基盤となっている型記述言語RBSについて説明し、今後の展望を議論します。 著者:松本宗太郎さん(@soutaro) Rubyコミッター。大学院でRubyプログラムの型検査の研究に取り組み、修了後はスタートアップでWebアプリケーションの開発に従事。2017年から型検査ツールSteepの開発を始め、2019年からはRu

                      いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab
                    • Ruby の型チェッカーの比較 | Wantedly Engineer Blog

                      はじめにこんにちは、Wantedly の 2021 年サマーインターンに参加した宮下と申します。今回のインターンでは三週間の間 DX (Developer Experience) チームに所属し、Wantedly のコードベースに Ruby の型チェッカーの導入を試みることをテーマにしていました。 インターンの前半では、様々な型チェッカーの性能を調べたり、それぞれの型チェッカーを実際に使ってみることで、開発効率を基準とした比較を行いました。インターンの後半では、現段階では一番実務に適しているだろうと判断した Sorbet に焦点を当て、Wantedly のいくつかのコードベースに実験的に Sorbet を導入した環境を作った型情報をつけていく作業をしていました。 本記事は、主にインターンの前半で調査した、型チェッカーの比較という部分に焦点を当て、文章の形にまとめたものになります。 Ruby

                        Ruby の型チェッカーの比較 | Wantedly Engineer Blog
                      • Ruby 3.0の静的型定義をTypeScriptみたいにライブラリに書いてみた所感 - Narazaka::Blog

                        Ruby 3.0が先日のクリスマス(というか昨日)にリリースされたと言うことで、型をやっていきたいと思います。 当方TypeScript大好きっ子なのでRuby 3.0で取り込まれた最も注目すべき機能は静的型チェック関係なのですが、どうもその辺についていまいちまとまって書いてある物がなかった気がするので調べたことをメモします。 Rubyの静的解析 型宣言 rbsファイルを作る方法 実際に型宣言を書く(基本) 検査時の型アノテーションが貧弱でつらいぞ…… 所感 gemに型を含める Steepの作者さんからフィードバックをいただきました。(※追記) 実際に型宣言を書く(Rails関連) DefinitelyTyped相当?「gem_rbs」と「rbs_rails」 実際に型宣言を書く(頑張っていい感じにする)(※追記) VSCode拡張機能で充実する 所感 untypedでやっていき Defi

                          Ruby 3.0の静的型定義をTypeScriptみたいにライブラリに書いてみた所感 - Narazaka::Blog
                        • RailsアプリをRBS + Steepで型チェックするまでの手順 - アジャイルSEの憂鬱

                          rails new してから steep check が通るまでにやってみた作業をまとめておく。 GitHub コードはGitHubで公開しているので、詳細な手順を知りたい方は参照してください。 github.com 手順 gemを入れる steepとrbs_railsをGemfileに追加する。 # Gemfile group :development do gem 'rbs_rails', require: false gem 'steep', require: false end bundle install を実行する。 $ bundle install rbs_rails のREADMEの手順に従って lib/tasks/rbs.rake を作成する。 # lib/tasks/rbs.rake require 'rbs_rails/rake_task' RbsRails::Rak

                            RailsアプリをRBS + Steepで型チェックするまでの手順 - アジャイルSEの憂鬱
                          • The State of Ruby 3 Typing

                            The State of Ruby 3 TypingIntroducing RBS, Ruby’s new type signature language We're pleased to announce Ruby 3’s new language for type signatures, RBS. One of the long-stated goals for Ruby 3 has been to add type checking tooling. After much discussion with Matz and the Ruby committer team, we decided to take the incremental step of adding a foundational type signature language called “RBS,” which

                              The State of Ruby 3 Typing
                            • テストを実行してRubyの型情報を集めるやつを作った - スペクトラム

                              イントロダクション 「テストを走らせて型情報を収集すればいいんじゃない?」そのアイデア自体は話題に上がることが多かったかと思われますが、観測範囲では前例がないように見えます。そこで、実際に作ってこそ見える世界があると思い動くものを実装してみました。 Orthoses::Trace github.com orthosesはRBSを生成するための機能を作るフレームワークで、この機能の一つとしてOrthoses::Traceというミドルウェアを実装しました。 例 例題として、rack-testというgemのRBSを生成したいとします。 その場合の生成コードをOrthoses::Traceを使って以下のように準備します。 https://github.com/ksss/orthoses/blob/db80d506c5fb02dadaa0ae303e0761ba0a543f6f/examples/r

                                テストを実行してRubyの型情報を集めるやつを作った - スペクトラム
                              • rubygem開発でSteepを使って型を書く時の現状のオススメ設定 (2023年3月版) - joker1007’s diary

                                Rails(というかActiveRecord)に型を付けるのは大変だが、Railsが絡まないrubygemにはそんなに苦労なく型が書けるので、これからgemを書く時には型を書きたいという人向けに今のところオススメの設定を紹介します。 というか自分が忘れるのでまとめておきます。 現状とはsteep-1.3.1, rbs-2.8.4を指します。 rbsは既に3系が出ていますが、一般利用者が型検査に利用する場合はsteepを使うはずで、steepはまだrbsの3系に対応していません。また、rbs-3.0で多少変わっているところもあるので、割と寿命が短い話かもしれません。 設定例 とりあえず結論から。Steepfileとrbs_collection.yamlを修正します。 Steepfile: D = Steep::Diagnostic target :lib do signature "sig"

                                  rubygem開発でSteepを使って型を書く時の現状のオススメ設定 (2023年3月版) - joker1007’s diary
                                • RBS Railsを使ってRailsアプリケーションにSteepを導入する - pockestrap

                                  RBS Railsを使ってRailsアプリケーションにSteepを導入するまでの解説します。 ただしこの「導入できる」というのは、解析が完走するという意味です。 型エラーを全てつぶすことや、Steepを実際の開発フローに乗っけることは私もまだできていないため、この記事ではサポートしません。 登場人物 RailsアプリケーションにSteepを導入するには、複数のプロジェクトが関連してきます。 まずはそれらをざっと紹介します。 steep gem Rubyの静的型検査器です。 rbs_rails gem RailsでRBSを使う上で必要な型定義を提供・生成するgemです。 データベースのスキーマ定義からモデルの型生成、及びroutesの定義からパスヘルパーの型生成をします。 それ以外のコードの型生成は担当範囲外です。 rbs gem ビルトインのライブラリ、及びスタンダードライブラリの型定義を

                                    RBS Railsを使ってRailsアプリケーションにSteepを導入する - pockestrap
                                  • KibelaにRBS / Steepを導入しようと考えています | bitjourney Kibela

                                    KibelaにRBS / Steep、つまり型を導入しようと考えています。ただ、後半に書きますが導入はしばらく後になると思います。2月に入ってからかなあ。 (社内向けドキュメントですが、別に隠すこともないので外部共有しています) 目次 導入する目的 導入する方針 導入する方法 導入すると何が変わるのか、どう対応する必要があるのか 導入のスケジュール 導入する目的 Kibelaの開発体験をより向上させるためです。また、 @masataka-kuwabara がRBS, RBS Rails, Steepなどの都合の良い実験台としてkibelaを使うためでもあります。 導入する方針 RBSはまだ発展途上です。そのため、Kibelaのようなある程度育ったRailsアプリケーションで型エラーをゼロに保って開発するのは、現状ではとても難しいと予想しています。 これは現状のコードベースをすべて型エラーゼ

                                    • Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita

                                      Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜RubyrbsSteepTypeProf はじめに Ruby 3.0ではRubyのコードに型定義情報を提供するRBSという仕組みが導入されます。 この記事では簡単なサンプルプログラムを通して、RBSとその周辺ツールの使い方や役割を説明します。 なお、説明する内容はあくまで初歩的な内容です。予めご了承ください。 動作確認時の実行環境 本記事の執筆時点ではまだRuby 3.0は正式にリリースされていません。 正式リリース時、または今後のバージョンアップによってこの記事の内容と実際の挙動が異なる可能性もあります。 本記事の執筆時に使用した実行環境は以下のとおりです。 Ruby 3.0.0dev (2020-11-13T16:46:08Z master 782621054

                                        Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita
                                      • Rails + RBS & Steepを試してみて困ったところとか感想とか - Qiita

                                        まえがき Railsアプリに型チェックを導入しようとして試しているのですが、なかなか一筋縄ではいかないようで、試行錯誤しています。 おそらく他にも似たようなことでハマったりしている人もいるかと思うので、これまで困ったこと、そして(回避できた場合は)回避策を書いてみます。 なお、RBSやSteepとはなんぞやといった辺りは特に説明せずにいきなり本題に入るため、詳しくない方はmameさんの記事「Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート」などを参考にしてください。 Steep & RBSで困ったところ BigDecimalを導入してもto_dが使えない (追記: ksssさんにrbsのstdlibのテストの書き方を教えてもらったので書けるようになりました! 結果はpull requestしてみたので、最終的に取り込まれれば使えるようにな

                                          Rails + RBS & Steepを試してみて困ったところとか感想とか - Qiita
                                        • RBSをプロダクトに導入するまで - READYFOR Tech Blog

                                          春ですね。先程、子供の保育園での最終登園を終え、万感の思いです。 システム基盤部の栗原(ksss)です。 この度、開発しているプロダクトのコードにRubyの型チェック機能を導入しました。 私が導入までに工夫したことを紹介したいと思います。これを読んでいる皆様のプロダクトにおけるRBS導入の参考になれば幸いです。 プロダクトとエコシステムをWin-Winに 社内の開発者にRubyの型に興味を持ってもらい、使ってもらうことができれば、フィードバックを得ることができます。 このフィードバックから開発体制を改善し、ひいてはツールの不具合修正や機能改善を提案することによって、Rubyエコシステム全体に貢献できます。 そうすれば、さらに開発体制が良くなる好循環が生まれると目論んでいます。 つまり最初の興味が大事なのです。 より興味を持ってもらうことを目的に、社内でRBSハンズオンを開催しました。 RB

                                            RBSをプロダクトに導入するまで - READYFOR Tech Blog
                                          • "RBS generation framework using Rack architecture"の予習記事 - READYFOR Tech Blog

                                            システム基盤部の栗原です。 RubyKaigi2022楽しみですね。READYFORからは、私栗原から発表させていただくことになりました。 https://rubykaigi.org/2022/presentations/_ksss_.html 今回は皆様によりトークを楽しんでいただく為に、予習となる要素を集めました。 何を話すのか orthosesというライブラリーを作ったので使って下さい!というお願いをします。 orthosesは簡単に言うと、RBSの自動生成ツールです。 github.com 抱えている課題感 私は型を使った開発で得られる体験に魅せられています。コードを書いたその瞬間にバグに気づいて修正したり、複雑なロジックでもどの変数でどのオブジェクトが得られるのかエディタで確認しながら開発できるの最高だと思いませんか? Rubyでもそれ、できるんです!!! しかしながら、開発体験

                                              "RBS generation framework using Rack architecture"の予習記事 - READYFOR Tech Blog
                                            • [Steep]Railsの本番環境にruby3.0の型定義を入れていく - Qiita

                                              やったこと 自分の持ち手の中に以下の三拍子が揃ったプロダクトがあったのでruby 3.0まであげて強い気持ちで型を入れていくことにしました。 立ち上げ間もない(利用者も限定的) 各種ライブラリが最新(変な古いバージョンに影響されることが少ない) 今後そこそこの機能拡張が見込まれる うちのチームでは初めてのRuby 3.0&型付だったけどやっていき 結論成果物 tool RBS Steep API周りのモデル層に型定義を導入 circleciによる自動テストの追加 Rubyの型とは Rubyの静的解析はv3.0で導入された新機能になります。 型定義はrubyのコードの外側にRBSファイルとして定義していきます。 2010年代は静的型言語の時代でした。Rubyは抽象解釈を武器に、型宣言なしで静的型チェックする未来を目指します。RBSとTypeProfはその第一歩です。Rubyがもたらす誰も見た

                                                [Steep]Railsの本番環境にruby3.0の型定義を入れていく - Qiita
                                              • Ruby の型システムの現実的な運用を、先入観にとらわれずに考えてみた | Wantedly Engineer Blog

                                                こんにちは、Wantedly の 2023 年サマーインターンに参加した Ran350 です。今回のインターンでは 3 週間 DX (Developer Experience) squadに所属し、「Wantedly における Ruby コードベースへの型システムの導入」をテーマに取り組んでいました。本記事では、その仮説検証の過程や調査記録を紹介します。 目次背景目的まとめ論点型システム導入による恩恵型システム導入による弊害型システム導入による恩恵-弊害を評価するために知りたいこと検討方針案【事前調査】過去の型起因のバグ【選択肢の整理と検証】型検査手法【選択肢の整理と検証】RBS 作成手法RBSの追加順序の検討【見積もり】RBS作成コスト【見積もり】型検査による恩恵型システム導入による恩恵-弊害が最適となる運用方針の提案まとめ感想注意本議論はまだ検討段階です。Rubyの型システム導入という

                                                  Ruby の型システムの現実的な運用を、先入観にとらわれずに考えてみた | Wantedly Engineer Blog
                                                • Ruby 3.0へ向けて、型周りをさわってみた - dely Tech Blog

                                                  はじめに こんにちは! delyサーバーサイドエンジニアの望月 (@0000_pg)です クラシルのアプリを中心にサーバーサイドを担当しています 今年もdelyのアドベントカレンダーが始まりました 🎉 adventar.org adventar.org 今年は開発部の人数も増えてきたので カレンダーを1と2にわけて行うことになりました 去年は2日目だったので 今年はトップバッターをやることにしました💪 本日公開された dely #2 Advent Calendar 2020のほうの記事は デザイナーのsakoさんの ノンデザイナーでも大丈夫!見やすいプレゼン資料をつくる6つの手順 です! note.com これをみれば、誰でもイケてる資料がつくれるようになっています😎✨ とても勉強になりました! さて、dely #1 Advent Calendar 2020 1日目の記事は Ruby

                                                    Ruby 3.0へ向けて、型周りをさわってみた - dely Tech Blog
                                                  • katakata_irb を導入してみた | Webシステム開発/教育ソリューションのタイムインターメディア

                                                    こんにちは、@tk0miya です。RubyKaigi 2023、楽しかったですね。 今回は RubyKaigi 2023 で最も感銘を受けた gem である、katakata_irb を導入してみたので、レポートしてみたいと思います。 katakata_irb とは? これまでも irb には入力補完機能がありましたが、サジェストされるメソッドが不完全であったり、メソッドチェーンの呼び出しで補完が動かないといった問題がありました。 katakata_irb gem は Ruby の型定義情報を使って irb の補完機能を強化するための gem です。 RubyKaigi 2023 の Power up your REPL life with types – RubyKaigi 2023 というセッションで紹介されました。 katakata_irb gem はその名の通り irb を強化す

                                                      katakata_irb を導入してみた | Webシステム開発/教育ソリューションのタイムインターメディア
                                                    • RBS and Rails, Present and Future

                                                      At Ginza Rails #43 https://ginza-rails.connpass.com/event/242685/

                                                        RBS and Rails, Present and Future
                                                      • RubyKaigi 2022 レポート たのしい型情報編 - pixiv inside

                                                        アドプラットフォーム事業部テックリードのsakiです。 先日のRubyKaigi 2022にピクシブのエンジニアは9名が参加し、私も多くのセッションを聞きました。 どれも興味深かったのですが、今回は特に型情報の話に注目しました。業務ではRubyと並んでGoを使うことも多く、Rubyの型情報は今後の技術選択にも強く関わってくるのではと考えています。 型情報に関するセッション 私が見た中で型情報に関わるセッションは下記のものでした。 RBS generation framework using Rack architecture (ksss) Let's collect type info during Ruby running and automatically generate an RBS file! (osyo) Adding Type Signatures into Ruby Doc

                                                          RubyKaigi 2022 レポート たのしい型情報編 - pixiv inside
                                                        • RubyからRBSを生成する各方法の特徴 - pockestrap

                                                          この記事はRuby 3.0 Advent Calendar 18日目の記事です。 qiita.com 昨日の記事は id:Pocke さんで「ruby/rbsに取り込まれた私のパッチ」でした。 pocke.hatenablog.com この記事ではRuby 3で導入される型定義ファイルであるRBSファイルを自動生成する方法について説明します。 既存のRubyコードに対するRBSを1から書いていくのは大変です。 そのためRBSを生成するプログラムがいくつか開発されており、Ruby 3にもTypeProf、rbs prototype rb、rbs prototype runtimeの3つが同梱されます。 ところがこれら3つの特徴を解説した情報は現時点ではあまりありません。私がrbs prototypeを主に開発していることもあり、今回それぞれの特徴を記事にまとめることにしました。 前提 前提知

                                                            RubyからRBSを生成する各方法の特徴 - pockestrap
                                                          • 数クリックでSteepを試せる環境を作った - pockestrap

                                                            こんにちは。pockeです。今回は、GitHub Codespacesを利用して数クリックでSteepを試せる環境を作ったので紹介します。 使い方 pocke/steep-codespacesにアクセスする。 このリポジトリをGitHub Codespacesで開く。 Steepが有効となったVS Codeが起動する。 と言った感じでSteepを試せます。次のようにVS Codeが起動し、型エラーの表示や補完がされます。 型エラーの表示 メソッドの補完 なおGitHub CodeSpacesの無料枠を超える場合、課金が発生するのでご注意ください。 何故作ったか RBSやSteepを手軽に試せる環境を作りたかったためです。 それらを手元の環境にインストールして試すのは、Steepに慣れない人にとっては色々調べることがあり、ハードルが高いです。 またSteepに慣れた人にとっても、環境構築をせ

                                                              数クリックでSteepを試せる環境を作った - pockestrap
                                                            • Parsing RBS

                                                              RubyKaigi 2023

                                                                Parsing RBS
                                                              • 新機能ラッシュ! RBS最新情報をキャッチアップ | gihyo.jp

                                                                RubyではRBSという言語で型を記述できます。Ruby 3.2から3.3では、RBSは2.8から3.4にバージョンアップしました。 RBSではこの1年でさまざまな機能追加やバグ修正が活発に行われ、520個のファイルに変更が加えられ、56,464行の追加と、26,172行の削除が行われました! 私、栗原はその内の95個のファイルに変更を加え、7474行の追加と2341行の削除に関わりました。 この記事では、この一年RBS界隈を追い続けてきた私から、RBSのアップデートを中心にRubyの型の世界の変化をまとめて紹介します。Rubyで仕事をしている方、RBSに興味はあるけど最新情報は追えていなかった方の力になれれば幸いです。 RBSとは Ruby 3.0からRubyに標準添付されている型システムの総称であり、ライブラリ名でもあります。RBSファイルは、Rubyファイルとは別のファイル・別の言語

                                                                  新機能ラッシュ! RBS最新情報をキャッチアップ | gihyo.jp
                                                                • Let’s collect type info during Ruby running and automatically generate an RBS file! (ja) | ドクセル

                                                                  Let’s collect type info during Ruby running and automatically generate an RBS file! (ja) スライド概要 RubyKaigi 2022: https://rubykaigi.org/2022/presentations/pink_bangbi.html#day3 gem: https://github.com/osyo-manga/gem-rbs-dynamic en: https://www.docswell.com/s/pink_bangbi/5DX89K-2022-09-10-102005 現在 Ruby では開発体験を上げるための取り組みとして型情報を定義する RBS の導入や Ruby のコードを静的解析して型情報を取り出す TypeProf の開発が行われています。 そこで、わたしは Type

                                                                    Let’s collect type info during Ruby running and automatically generate an RBS file! (ja) | ドクセル
                                                                  • 【イベントレポート】「Railsアプリと型検査」 - Timee Product Team Blog

                                                                    イベント概要 2023年11月15日に「GENBA #1 〜RubyとRails開発の現場〜」と題してRuby/Railsでの開発に関するトピックでタイミーとエンペイ社合同で勉強会を開催しました。 その中でタイミーバックエンドエンジニアの正徳さん a.k.a 神速さん(@sinsoku_listy)の発表「Railsアプリと型検査」をイベントレポート形式でお届けします。 登壇者情報 Railsアプリと型検査 RBSの基本 RBSとは RBS(Ruby Signature)は、Ruby 3.0から導入された言語機能で、Rubyのコードに型情報を追加し、型検査と入力補完を可能にするための言語です。RBSファイルの拡張子は .rbsで、通常はプロジェクト内の sig/ ディレクトリに配置されます。 RBSのメリット RBSの主なメリットは「型検査」と「入力補完」の2つがあります。 型検査とは 型

                                                                      【イベントレポート】「Railsアプリと型検査」 - Timee Product Team Blog
                                                                    • RBS CollectionをRailsアプリで試してみよう

                                                                      Leaner 開発チームの黒曜(@kokuyouwind)です。 先週行われたRubyKaigi Takeout 2021に参加しました。今回も興味深いセッションが多かったですが、なかでもThe newsletter of RBS updatesでは型システムの進化が感じられて面白い内容でした。 発表内で紹介されていた rbs collection を使って既存 Rails アプリケーションへの型検査導入を試してみたので、本記事で手順などをまとめて紹介します。 なお今回の Rubykaigi には自分の他にころちゃん(@corocn)も参加していました。 ころちゃんは debug.gem の話を記事にまとめているので、そちらもぜひご覧ください。 rbs collection について (この節は The newsletter of RBS updates の発表内容からの抜粋・要約です)

                                                                        RBS CollectionをRailsアプリで試してみよう
                                                                      • 【アウトライン版】サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 - give IT a try

                                                                        お知らせ 毎年恒例の(?)Rubyの新機能解説記事を公開しました。 型チェックについてまとめたPart 1と、それ以外の新機能についてまとめたPart 2があります。 qiita.com zenn.dev お気づきかもしれませんが、Part 2はQiitaではなくZennを使って書きました。 その理由は読者の方が記事に対してお金を振り込めるからです!・・・といっても僕がそのお金を独り占めするわけではありません。 2021年1月31日までに集まったお金はRubyの普及と発展のためにRubyアソシエーションに寄付する予定です。 また、こういった技術記事に対して、どれくらいの人が対価を支払う意思があるのかという、調査・実験の目的も兼ねています。 そんなわけで、上記の記事が良かった、役に立った、と思った人はぜひサポート(対価)の支払いをお願いします🙏 さて、それはそれとして、今回書いた記事はどち

                                                                          【アウトライン版】サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 - give IT a try
                                                                        • [Steep]Railsの本番環境にruby3.0の型定義を入れていく - Qiita

                                                                          やったこと 自分の持ち手の中に以下の三拍子が揃ったプロダクトがあったのでruby 3.0まであげて強い気持ちで型を入れていくことにしました。 立ち上げ間もない(利用者も限定的) 各種ライブラリが最新(変な古いバージョンに影響されることが少ない) 今後そこそこの機能拡張が見込まれる うちのチームでは初めてのRuby 3.0&型付だったけどやっていき 結論成果物 tool RBS Steep API周りのモデル層に型定義を導入 circleciによる自動テストの追加 Rubyの型とは Rubyの静的解析はv3.0で導入された新機能になります。 型定義はrubyのコードの外側にRBSファイルとして定義していきます。 2010年代は静的型言語の時代でした。Rubyは抽象解釈を武器に、型宣言なしで静的型チェックする未来を目指します。RBSとTypeProfはその第一歩です。Rubyがもたらす誰も見た

                                                                            [Steep]Railsの本番環境にruby3.0の型定義を入れていく - Qiita
                                                                          • 作って学ぶRuby3 静的型解析・RBS入門

                                                                            Ruby 3 の静的型解析について 私が業務で Ruby を書いていた時期は数年前で最近の Ruby についてキャットアップが遅れていました。 最近は Go・TypeScript など型を書くことがほとんどなので Ruby 3 系で導入された型解析について気になっていました。 Ruby って型が無いよねと肩身が狭い生活をしているので(型だけに)、Ruby でも出来らあっ!というところを見せたいと考え書いてみることにしました。 作るもの HackerNews API を利用して HackerNews の API Client を作ります。要件は以下です。 gem として実装する これはなんやかんやで私が gem を書いたことがないので勉強の一環です。特に gem で書く必要はありません rake タスクを実行すると Hacker News のトップページに相当する情報(タイトル, point

                                                                              作って学ぶRuby3 静的型解析・RBS入門
                                                                            • Announcing RBS support for AWS SDK for Ruby V3 | Amazon Web Services

                                                                              AWS Developer Tools Blog Announcing RBS support for AWS SDK for Ruby V3 RBS is a language to describe the structure of Ruby programs. We are happy to announce that AWS SDK for Ruby V3 now supports RBS type signatures! RBS support is released in aws-sdk-core version 3.191.0 and in every service gem (such as aws-sdk-s3) that depends on this version of core. RBS signatures are currently code generate

                                                                                Announcing RBS support for AWS SDK for Ruby V3 | Amazon Web Services
                                                                              • GitHub - soutaro/rbs-inline: Inline RBS type declaration

                                                                                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                                  GitHub - soutaro/rbs-inline: Inline RBS type declaration
                                                                                • RBSをテストコードにする - スペクトラム

                                                                                  DALL-Eより: Imagine a scene where the abstract concepts of Ruby programming and property-based testing blend harmoniously. Picture a large, glowing ruby crystal まいどお馴染み、作ってみたシリーズです。 今回は、RaaP(ラープ)というツールを作りました。RBS as a PropertyでRaaPです。 github.com RaaPはテスティングツールの一種で、RBSをそのままテストコードにみたてて実行してくれるツールです。 次のようなRBSがあったとして class Foo end class Bar def initialize: (foo: Foo) -> void def f2s: (Float) -> String end

                                                                                    RBSをテストコードにする - スペクトラム

                                                                                  新着記事