並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 31 件 / 31件

新着順 人気順

Steepの検索結果1 - 31 件 / 31件

  • 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の関係についてのノート - クックパッド開発者ブログ
    • いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab

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

        いかにして動的型付けのRubyに静的な型検査を持ち込むか? SteepとRBSが目指すもの - Findy Engineer Lab
      • 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の憂鬱
        • 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アプリケーションで型エラーをゼロに保って開発するのは、現状ではとても難しいと予想しています。 これは現状のコードベースをすべて型エラーゼ

              • Steep エラーリファレンスを作りました(2024/09/30 時点) - Timee Product Team Blog

                タイミーでバックエンドのテックリードをしている新谷(@euglena1215)です。 タイミーでは RBS の活用を推進する取り組みを少しずつ進めています。意図はこちら メンバーと雑談していたときに「steep check でコケたときにその名前で調べても全然ヒットしないので型周りのキャッチアップが難しい」という話を聞きました。 いくつかのエラー名でググってみたところ、 Ruby::ArgumentTypeMismatch や Ruby::NoMethod など有名なエラーはヒットしますがほとんどのエラーはヒットせず、ヒットするのは Steep リポジトリの該当実装のみでした。 これでは確かにキャッチアップは難しいだろうと感じたので、Steep のエラーリファレンスを作ってみました。ググってヒットするのが目的なのでテックブログとして公開してインデックスされることを期待します。 各エラーの説

                  Steep エラーリファレンスを作りました(2024/09/30 時点) - Timee Product Team 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
                  • Steepのメモリ使用量を改善するつもりが、実行速度の改善をしていた - Money Forward Developers Blog

                    こんにちは。id:Pocke です。 私は最近、Steep のメモリ使用量の改善に取り組んでいます。その過程で(意図せず) Steep の実行速度の改善に成功しました。 その中で行った、メモリ使用量の調査や、結果として実行速度が改善されたことは自分にとって中々楽しい体験でした。この記事では実行速度の改善に至るまでの経緯を紹介します。 記事中のソフトウェアは、執筆時点で最新のものを使用しています。具体的なバージョンは以下の通りです。 Ruby: 3.3.4 MemoryProfiler: 1.0.2 Steep: 1.8.0.dev.1 TL;DR メモリ使用量の調査のために、memory_profiler gem を使った それだけだと不十分なので、Ruby にパッチを当てた上で計測をした 結果としてsteep checkの解析対象ファイル数が多い場合に速度が遅くなることが分かり、改善した

                      Steepのメモリ使用量を改善するつもりが、実行速度の改善をしていた - Money Forward Developers 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
                      • dbt Semantic LayerとSteepで実現するデータ民主化 - Gaudiy Tech Blog

                        はじめまして、Gaudiyでアナリティクスエンジニア(副業)をしているkuwakenです。 Gaudiyでは現在、データの民主化を進めていますが、その過程でSQLを書く手間や負担、新しいBizメンバーのオンボーディングなどの面で、課題が生じていました。 今回は、その課題を解決するために導入した、dbt Semantic LayerとSteepという2つのデータ系プロダクトに関するお話をします。 1. dbt Semantic Layerの導入背景 2. Steep導入の決定理由 3. dbt Semantic Layerに関するナレッジ 3-1. ディレクトリ構造 3-2. dbt Cloud CLI 3-3. 時間のdimensionはdatetime型で揃える(BigQueryユーザーのみ) 3-4. entitiesを理解する 4. 今後やりたいこと 5. さいごに 1. dbt S

                          dbt Semantic LayerとSteepで実現するデータ民主化 - Gaudiy Tech Blog
                        • 数クリックで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
                          • RBSとSteepで始める型のあるRails開発とその運用

                            Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure

                              RBSとSteepで始める型のある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
                              • 週刊Railsウォッチ: Rails 7でのimport maps導入、Steepで型を導入、KubernetesでRailsを動かすためのガイドほか(20210830前編)|TechRacho by BPS株式会社

                                こんにちは、hachi8833です。以下をお見逃しの方はTwitterの#ginzarailsタグである程度追いかけられると思います。 RubyKaigi直前予習企画『タイムテーブル徹底解説』を、今年は銀座Railsさんの場を借りてオンラインで催します。 RubyKaigiマニアの方はもちろん、今回は客層が広そうなので少し敷居を下げて、Rubyの開発に興味がある方なら誰でも何かしらお持ち帰りいただける内容になる予定です。ぜひご参加ください! https://t.co/fvPRDUWLgx — Akira Matsuda (@a_matsuda) August 25, 2021 週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたと

                                  週刊Railsウォッチ: Rails 7でのimport maps導入、Steepで型を導入、KubernetesでRailsを動かすためのガイドほか(20210830前編)|TechRacho by BPS株式会社
                                • Ruby typing 2024: RBS, Steep, RBS Collections, subjective feelings — brandur.org

                                  Ruby typing 2024: RBS, Steep, RBS Collections, subjective feelings I was writing a new Ruby gem recently, and being a strong proponent of a type checking step, I wanted to do right by the ecosystem so that anyone using it would get the full benefit of type checking against my gem’s API in their own projects, so I dug into the current state of the art to find out how that’d be done. I used Sorbet f

                                  • Climbing Steep hills, or adopting Ruby 3 types with RBS—Martian Chronicles, Evil Martians’ team blog

                                    With Ruby 3.0 just around the corner, let’s take a look at one of the highlights of the upcoming release: Ruby Type Signatures. Yes, types are coming to our favorite dynamic language! Let’s see how to take advantage of them by adding types to a real-world open source project and looking at the finer points of the process. It is not the first time I cover Ruby types: about a year ago, I had the fir

                                      Climbing Steep hills, or adopting Ruby 3 types with RBS—Martian Chronicles, Evil Martians’ team blog
                                    • 週刊Railsウォッチ: Prismの歴史と現況を振り返る、Steepの"narrowing"実装の内部ドキュメントほか(20240426後編)|TechRacho by BPS株式会社

                                      週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) お知らせ: 来週および再来週の週刊Railsウォッチはお休みをいただき、通常記事を公開します。 🔗Ruby 🔗 Steepの"narrowing"実装の内

                                        週刊Railsウォッチ: Prismの歴史と現況を振り返る、Steepの"narrowing"実装の内部ドキュメントほか(20240426後編)|TechRacho by BPS株式会社
                                      • Steepによる型チェックの実践例

                                        ybiquitous homepage; softwares, blog, slides, and so on.

                                        • MetricsファーストなSemantic Layer時代のBIツール「Steep」を試してみた | DevelopersIO

                                          さがらです。 昨今、事前に各種指標のロジックをMetricsとして定義しておき、その定義したMetricsを外部のBIツールやAPIを用いて参照できる仕組みや機能が出てきています。この仕組みや機能が「Semantic Layer」と呼ばれ、具体的な製品名としては、Looker、dbt Semantic Layer、Cubeが該当します。 そして、このSemantic Layerを活用することに特化したBIツールとして「Steep」という製品があります。 今回このSteepを試してみたので、その内容をまとめてみます。 Steepとは Steepは、2021年にJohan Baltzar氏とNino Höglund氏によってストックホルムで設立された企業です。 そして、2022年10月にpre-seedラウンドでの100万ユーロの調達と共に、企業名と同じプロダクトであるSteepを発表・公開し

                                            MetricsファーストなSemantic Layer時代のBIツール「Steep」を試してみた | DevelopersIO
                                          • Make sense common | Steep

                                            Steep is a modern analytics platform powered by metrics that changes how companies use data together.

                                              Make sense common | Steep
                                            • 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の憂鬱
                                              • Introduction of Steep 1.5

                                                Introduction of Steep-1.5 Takeshi KOMIYA (@tk0miya) at TokyuRubyKaigi #14 (2023/7/29) 1

                                                  Introduction of Steep 1.5
                                                • rbs_rails & steep で型のある Rails 開発を体験しよう - stmn tech blog

                                                  こんにちは。スタメンの河井です。 RubyKaigi Takeout 2020 が楽しみですね。 Ruby 3.0 から型定義 & 型検査ができるようになると言われていますが、今の段階でもそれに関連した gem は公開されています。 今回は型のある Rails 開発を体験してみようということで、RBS・rbs_rails・Steep の3つの gem を紹介しようと思います。 RBS とは RBS とは、 Ruby プログラムの構造を記述するための言語です。 Ruby のソースコード(.rb ファイル)とは別にファイル(.rbs)を用意して型定義を記述していきます。 たとえば # message.rbs class Message def reply: (from: User | Bot, string: String) -> Message end という定義では Message クラス

                                                    rbs_rails & steep で型のある Rails 開発を体験しよう - stmn tech blog
                                                  • climbed slope steep the We | ならべかえ 英語 リスニング

                                                    単語をならべかえて英文を完成させよう(レベル5)「climbed slope steep the We」「私たちは急な坂を登った。」#英語学習 | ならべかえ 英語 リスニング

                                                      climbed slope steep the We | ならべかえ 英語 リスニング
                                                    • Steepを使ってRubyの型検査に入門する - Qiita

                                                      リンクアンドモチベーションでソフトウェアエンジニアをしているkoboriです。 何の記事を書こうか考えた時に、少し前に話題になった、Rubyで型検査ができる話を思い出しました。気になりつつも全然触れていなかったので、この機会に触ってみました。 Steepとは Steepとは、RBSを使ってRubyの型検査をしてくれるライブラリです。 RBSとは何かについても触れておきます。 RBS is a language to describe the structure of Ruby programs. RBSとは、Rubyのプログラムの構造を記述するための言語のようです。 つまりSteepを使った型検査とは、プログラムの構造をRBSで表現し、それをもとにSteepを使って検査していく、と説明できそうです。 なぜ型があると嬉しいのか 一般に言われている静的型付け言語のメリットをざっと挙げてみます。

                                                        Steepを使ってRubyの型検査に入門する - Qiita
                                                      • Steep Problem Matcher - Blog - @ybiquitous

                                                        ybiquitous homepage; softwares, blog, slides, and so on.

                                                        • デザインが美しいモダンなBIツール「Steep」の紹介

                                                          こんにちは。データエンジニアリングの支援を行っているstable株式会社の代表の宮﨑(@ikki_mz)です。この記事では、最近注目され始めている最新のBIツール「Steep」について紹介します。実際...

                                                            デザインが美しいモダンなBIツール「Steep」の紹介 
                                                          • gemをrbs対応してsteepで型チェックできるようにする

                                                            先日 ruby 3.0.0 が公開されました。 いろんな機能が追加されていますが、その中でも静的型解析は個人的にも使ってみたかったので、試してみました。 今回は、 自分が作っている型情報の無いgemのコードにTypeProfで型情報を推論してrbsファイルを作成し、gemに添付する。 そのgemを使う側のコードで添付されているrbsファイルを元にsteepで型チェックしてもらう。 の2つを試してみたいと思います。 用語 結構新しい単語があって混乱しがちです。 下記のサイトがわかりやすかったです。 先程のサイトからの引用ですが、 用語 意味

                                                              gemをrbs対応してsteepで型チェックできるようにする
                                                            • Rubyの静的型付けについて (RBS, TypeProf, Steep, Sorbet) | ShareWis Blog(シェアウィズ ブログ)

                                                              こんにちは。 ShareWisのソフトウェアエンジニアのルーカスです。 今回は私たちのサービスで利用しているRubyについてお話をします。 ここ数年、動的型付けされたプログラミング言語の中で静的型付けを採用する傾向が強まっています。 それは Rubyのエコシステムでも同じです。 この記事では両者を比較したり、静的型付けや動的型付けの利点と欠点を挙げたりはしません。Rubyでの静的型付けをどうやって使うかを紹介したいと思います。 Rubyの型について検索していると、おそらく以下のような名前を目にするでしょう。 RBS, Sorbet, Steep, Typeprof, などなど。 これらは何でしょうか?また、どのような場合に使用するのでしょうか? それでは解説していきます。 RBS (Ruby Signature)Ruby 3のリリースとともにRubyのコードに型定義情報を提供するRBSとい

                                                                Rubyの静的型付けについて (RBS, TypeProf, Steep, Sorbet) | ShareWis Blog(シェアウィズ ブログ)
                                                              • and be climb difficult steep The will | ならべかえ 英語 リスニング

                                                                単語をならべかえて英文を完成させよう(レベル7)「and be climb difficult steep The will」「その上り坂は険しく、難航するだろう。」#英語学習 | ならべかえ 英語 リスニング

                                                                  and be climb difficult steep The will | ならべかえ 英語 リスニング
                                                                1