並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 55件

新着順 人気順

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

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

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

      そろそろRailsプロジェクトに型を導入したい人向けの資料
    • Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ

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

        Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ
      • 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 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
                • Ruby の型チェッカーの比較 | Wantedly Engineer Blog

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

                    Ruby の型チェッカーの比較 | Wantedly Engineer 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の型情報を集めるやつを作った - スペクトラム
                        • 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
                          • 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
                            • 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 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
                                    • RBSをプロダクトに導入するまで - READYFOR Tech Blog

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

                                        RBSをプロダクトに導入するまで - 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 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
                                          • Ruby の型システムの現実的な運用を、先入観にとらわれずに考えてみた | Wantedly Engineer Blog

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

                                              Ruby の型システムの現実的な運用を、先入観にとらわれずに考えてみた | Wantedly Engineer 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
                                                          • 【イベントレポート】「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アプリで試してみよう
                                                              • 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) | ドクセル
                                                                • 【アウトライン版】サンプルコードでわかる!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
                                                                    • 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
                                                                      • 作って学ぶ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入門
                                                                        • 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をテストコードにする - スペクトラム
                                                                          • 今日からneovimでRubyの型(RBS)を書き始める方法 + 実際に書いてみた感想 - joker1007’s diary

                                                                            しばらくRubyをあんま触ってない日々が続いてたんですが、オフラインでRubyKaigiに参加したKaigiEffectということでやる気が甦ってきたので、型を真面目に書くための準備を整えようと色々とやってました。 RubyKaigiでモダンなRubyの開発体験のデモをいくつか見たんですが、大体VSCodeだったのが生粋のVimmerである自分としては残念だったので、neovimでも色々やれるぞという環境を整えておきたかったのも一つです。 という訳で色々環境が整ったのでまとめていきます。 ちなみに、今回の題材はrbsとSteepによる型検査です。sorbetとかもありますが、自分としてはrbsの書式の方が圧倒的に好きなのでこちらでやっていきたいと思います。 (sorbetはRubyコードに直接書けるという大きなメリットはあるんだけど……) Steepを動かす まず対象のプロジェクトにSte

                                                                              今日からneovimでRubyの型(RBS)を書き始める方法 + 実際に書いてみた感想 - joker1007’s diary
                                                                            • Adding Type Signatures into Ruby Docs

                                                                              Since Ruby's beginnings, its documentation has been maintained by people who help and support the language. Before the core team releases a new version of Ruby, contributors must update the documentation to reflect the current set of functionality, which presents many challenges to remaining consistent over Ruby's long history. One method may describe a set of arguments and the types one way, but

                                                                                Adding Type Signatures into Ruby Docs
                                                                              • RubyMine 2023.1 の新機能

                                                                                RubyMine 2023.1 の新機能 RubyMine 2023.1 には、Rails 7 と Ruby 3.2 のサポート、新しい UI の更新、コード補完の高速化、メモリ消費量の削減、WSL での gem 同期の改善、RSpec の共有コンテキストとサンプルの移動操作と作業の容易化、および Docker 統合の強化が含まれます。

                                                                                  RubyMine 2023.1 の新機能
                                                                                • RBSをCIに導入して型の恩恵を得たい - BOOK☆WALKER inside

                                                                                  こんにちは,相生ゆら(@Little_Rubyist)です.最近配信でクロノトリガーをやっているんですがあまりにも面白すぎてありとあらゆる知人に「クロノトリガーをやれ」と言っています. さて,入社から半年以上経過しましたがその話はまた別でやるとして,私の所属している部署では勉強習慣というのがあって,自分の興味のあることを業務時間中に勉強してもいい時間が存在します.各々色んなことをやっていますが,私はその時間で少しずつRBSを導入しています.まだあまり触れていないプロジェクトなのでコードリーディングをしながらゆっくり入れていこうと思っています. CI導入まで済んだのでこれを一区切りとし,どういったことをやっていたのかをご紹介します. 型導入の準備 とってもシンプルです.steep, rbs_rails, katakata_irbをGemfileに追加します.ライブラリの型も必要なので,rbs

                                                                                    RBSをCIに導入して型の恩恵を得たい - BOOK☆WALKER inside

                                                                                  新着記事