並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 55件

新着順 人気順

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

  • 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
    • SteepのAnnotationに関する備忘録 #asakusa_bashi_rbs - アジャイルSEの憂鬱

      Steepのmanual/annotations.mdを読みながら、実際にコードを書いて覚えたことをブログにまとめる。 変数 変数の型を String? から String にするときに便利そう。 # @type var value: String value = %w[a b c].sample puts('Hi, ' + value) アノテーションがない場合、 sample: () -> String? なので型検査エラーになる。 app/user.rb:2:14: [error] Cannot pass a value of type `(::String | nil)` as an argument of type `::string` │ (::String | nil) <: ::string │ (::String | nil) <: (::String | ::_ToSt

        SteepのAnnotationに関する備忘録 #asakusa_bashi_rbs - アジャイルSEの憂鬱
      • 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をテストコードにする - スペクトラム
        • 【イベントレポート】「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
          • 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が含まれた状態でリリースされました - スペクトラム
            • 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
              • 新機能ラッシュ! 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
                • Ruby の型システムの現実的な運用を、先入観にとらわれずに考えてみた | Wantedly Engineer Blog

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

                    Ruby の型システムの現実的な運用を、先入観にとらわれずに考えてみた | Wantedly Engineer Blog
                  • RBSをCIに導入して型の恩恵を得たい - BOOK☆WALKER inside

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

                      RBSをCIに導入して型の恩恵を得たい - BOOK☆WALKER inside
                    • rbs collectionの基本と構成要素 - Money Forward Developers Blog

                      こんにちは。 id:Pocke です。マネーフォワードでは、クラウド会計Plus の開発と、今回お話する RBS のメンテナンスを行っています。 最近、福井県は若狭にある年縞博物館に行って楽しんできました。1 さてこの記事では rbs collection の基本と構成要素を解説します。 この記事を読むことで rbs collection がどのようなもので何をしているのかが理解できるようになるでしょう。 この記事では記事執筆時点での最新の、rbs v3.2.1 を対象としています。 rbs collection の基本的な使い方 rbs collection の基本的な使い方は簡単です。 設定ファイルの生成 まず、rbs collection initコマンドで設定ファイルを生成します。この生成は rbs collection を使い始める初回にのみ行います。 $ rbs collect

                        rbs collectionの基本と構成要素 - Money Forward Developers Blog
                      • 【Ruby】RubyKaigi2023で興味を持った技術【RBS】 - Qiita

                        はじめに RubyKaigi2023に先日、オンラインで一部参加させて頂きました。 正直言って自分自身の英語力の弱さと相俟って理解出来てない部分も、多数あったかなと思います。 今回はRubyKaigiで紹介されたスライドを紹介しつつ、初めて聞く単語も多かったので気になったもの新しく調べた内容と共にまとめていきます! UTF-8 is comming to mruby/c(DAY1) mruby/cはASCII(バイナリ)のみを使用してきましたが、UTF-8をサポートするようになったとのこと。 mruby/cで利用可能なUTF-8サポートをどのように実装したのかを説明されていました。 そもそもmruby/cって? 以下しまねソフト研究開発センターより引用 mruby/cは、Rubyの特徴を引き継ぎつつ、プログラム実行時に必要なメモリ消費量が従来のmruby(福岡で開発された組込み向けの軽量R

                          【Ruby】RubyKaigi2023で興味を持った技術【RBS】 - Qiita
                        • 数クリックで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
                          • Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ

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

                              Railsプロジェクトへの「頑張らない型導入」のすすめ - メドピア開発者ブログ
                            • rbs subtractを使ってみる - Qiita

                              この記事は何 記事投稿キャンペーン「【RubyKaigi 2023連動イベント】みんなでRubyの知見を共有しよう」の参加記事です。 この記事では、「Let's write RBS!」で取り上げられていたrbs subtractについて紹介します。 スライドは↓です。 rbs subtractについて rbs subtractについては以下の記事に詳しく書かれていますが、二つのrbsファイルのうち、定義が重複しているものを片方から削除することができるようなコマンドです。 以下のような二つのRBSファイルがあったときの例を考えます。

                                rbs subtractを使ってみる - Qiita
                              • RBS meets LLMs - 大規模言語モデルを用いた型推論を試してみた

                                Leaner 開発チームの黒曜(@kokuyouwind)です。 RubyKaigi 2023 で「RBS meets LLMs - Type inference using LLM」と題して LT させていただきました。 そのうち本編のアーカイブ映像が出るはずですが、文字でも読めるよう大まかな内容を記事にまとめておきます。 また時間に収まりきらなかった内容も少し触れておくので、本編見ていただいた方も 本編に盛り込めなかった話 の節を呼んでもらえると嬉しいです。 発表スライド 以下の slides.com のものがマスターです。 フォントが中華フォントに化けてしまっていますが、一応 SpeakerDeck に上げたものも埋め込んでおきます。[1] 発表概要 Ruby の型定義ファイルである RBS を、 ChatGPT で推測できるか試してみました。 特に変数名や関数名の単語の意味を使うこ

                                  RBS meets LLMs - 大規模言語モデルを用いた型推論を試してみた
                                • 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システム開発/教育ソリューションのタイムインターメディア
                                  • Parsing RBS

                                    RubyKaigi 2023

                                      Parsing RBS
                                    • テストを実行して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の型情報を集めるやつを作った - スペクトラム
                                      • 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
                                        • 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
                                          • 作って学ぶ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入門
                                            • Railsチュートリアルのsample_appに型を導入

                                              ふーが といいます。普段は Ruby on Rails を利用したアプリケーション開発をしているプログラマです。 この記事は Rails アプリケーションへの型導入を試してもらうことを目的とした記事です。主に Ruby on Rails チュートリアル (以下「Rails チュートリアル」と呼称)で学ばれた方向けに「静的型とはなにか」「Ruby での型の扱い」「Rails アプリケーションへの型導入方法」を知っていただくきっかけになればうれしく思います。 この記事では実際に手を動かしながら Rails アプリケーションに型を導入する手順を体験できます。題材として Rails チュートリアルの sample_app を使用させていただいています。 前提 型を導入するにあたり前提となる部分を簡単にご紹介します。「型」と聞いてイメージがつく方はこの段落は飛ばしていただいてかまいません。 型とは何

                                                Railsチュートリアルのsample_appに型を導入
                                              • RailsアプリケーションにおけるRBSの運用方法 - Studyplus Engineering Blog

                                                こんにちは。サーバーサイドエンジニアの山田です。 Rubyに型システムが入ってからしらばく経ちましたが、弊社のRailsプロジェクトの一部でもRBSを導入しました。 そのことについて昨年行われたKaigi on Rails 2022にて「RBSとSteepで始める型のあるRails開発とその運用」というタイトルで発表しました。 この記事では発表の内容についてあらためて整理した内容やその後の状況について紹介します。 記事の目的 RBSを導入した背景 対象となるRailsアプリケーション どうやって進めたか RBSの分類 ディレクトリ構成 自作クラス・モジュールなどのRBS GemのRBS(RBS Collectionにあり) GemのRBS(RBS Collectionになし) 当初の運用ルール 変更後の運用ルール RBS Railsから生成されるRBS 標準ライブラリのRBS CIの導入

                                                  RailsアプリケーションにおけるRBSの運用方法 - Studyplus Engineering Blog
                                                • 今日から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
                                                  • 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
                                                    • 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) | ドクセル
                                                      • GitHub - ksss/orthoses

                                                        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 - ksss/orthoses
                                                        • "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 and Rails, Present and Future

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

                                                              RBS and Rails, Present and Future
                                                            • RBSをプロダクトに導入するまで - READYFOR Tech Blog

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

                                                                RBSをプロダクトに導入するまで - READYFOR Tech Blog
                                                              • 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
                                                                • 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の憂鬱
                                                                  • RBSから始める静的型付け生活

                                                                    黒曜 / @kokuyouwind 名古屋在住 Leaner Technologies Inc. 所属 Railsエンジニア Next.js とか AWS 周りも触ってる We're Hiring!!!

                                                                      RBSから始める静的型付け生活
                                                                    • 既存のgemにRBSで型定義を書く - kymmt

                                                                      RBSの練習としてhatenablogというgemの型定義をRBSで書いた。 https://github.com/kymmt90/hatenablog/blob/v0.8.0/sig/hatenablog.rbs まだ該当gemのsigディレクトリに置いているだけだが、やったことを書いておく。 作業の流れ Ruby 3.0をインストールするなどしてrbs、typeprofは使える状態になっているとする。 TypeProfで型定義ファイルの雛形を生成する Steepを設定する rbs collectionでサードパーティgemの型定義を導入する steep checkを実行してエラーを確認する 型定義やコード本体を修正し、エラーを解消する CIでSteepを実行する ディレクトリ構造 次のようなディレクトリ構造とした。 . ├── Steepfile ├── lib │   └── (ge

                                                                        既存のgemにRBSで型定義を書く - kymmt
                                                                      • 型付きRubyでパーサを書く(前編) - ローファイ日記

                                                                        K-Ruby という鹿児島のRubyコミュニティの忘年LT大会でRBSを使ってみた話をします。オンラインですが、九州盛り上げていきましょう! k-ruby.connpass.com それはそれとしてRBSというものに今回ちゃんと触れるので、触れた記録を雑にでも残していこうと思い、ブログを書きます。どれくらい後学のためになるのかならないのかわかりませんが、触ってみたライブな感想をなるべく残しておくのは意味があるでしょう、と。 @yoshikouki さんには「RailsにRBSを入れる方法を教えてください!」って言われてて、俺にRailsの話を聞くのか... って思ったんですけど、 まあその辺の面白そうなトピックは @yoshikouki さんのために取っておこうと思うので、僕はもうちょっと簡単なプログラム、そう、 プログラミング言語のパーサ をRubyで、型付きで書こうと思いました。 最初

                                                                          型付きRubyでパーサを書く(前編) - ローファイ日記
                                                                        • Video Tutorial: Get Started with RBS in RubyMine | The RubyMine Blog

                                                                          Hello everyone, In this tutorial, you will learn how to add RBS to your project and get an overview of the main RBS features that RubyMine offers. For more information about this topic, read the section dedicated to RBS in the RubyMine documentation. Please feel free to share your feedback on our RBS support in the comments below, on our website, or on Twitter. And as always, please report any iss

                                                                            Video Tutorial: Get Started with RBS in RubyMine | The RubyMine 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 の型チェッカーの比較 | Wantedly Engineer Blog

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

                                                                                Ruby の型チェッカーの比較 | Wantedly Engineer Blog
                                                                              • そろそろRailsプロジェクトに型を導入したい人向けの資料

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

                                                                                  そろそろRailsプロジェクトに型を導入したい人向けの資料
                                                                                • [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