並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 186件

新着順 人気順

Sorbetの検索結果1 - 40 件 / 186件

  • Neovimを一瞬でVSCode並みに便利にする - k0kubun's blog

    去年8年ぶりに vimrc を書き直した時はLSPの体験があんまりよくなくてLSPなしでNeovimを使い続けていたのだが、様々な言語のOSSをメンテする都合で用途に応じてIntelliJとVSCodeとNeovimの三刀流で暮らしていた結果、可能ならNeovimに寄せたいけどそれならLSPを使いたいなということになり、今回LSPの所を真面目に設定し直して、かなり良い体験になっている。 正直Neovimの設定はVSCodeのそれに比べたら面倒なんじゃないかという印象がありサボっていた節があるが、実際にやってみるとVSCodeと同程度に簡単に済む方法もあったので紹介したい。 何故Neovimなのか LSPの話の前に、タイトルだけ見た人がそもそも単にVSCode使えばいいじゃんと言いそうなので、どうしてIntelliJやVSCodeではなくNeovimに揃えようと思ったのかについて書いておく。

      Neovimを一瞬でVSCode並みに便利にする - k0kubun's blog
    • Rubyと型についてのポエム - まめめも

      zenn.dev matz はじめコミッターの型に対する姿勢にも疑問を持っています。 というご意見が自分に刺さった気がしたので、他の話題はともかくこの点に関してだけ、ポエムを書きます。 「Rubyに型が欲しい」というのは、「もっと速い馬が欲しい」だと思っています。意味を知らない人は ヘンリー・フォード もっと速い馬が欲しい で検索してください。 これは批判でも皮肉でもありません。みんなが馬の乗り方を知っている世界では、誰も乗り方を知らない自動車より、速い馬のほうが確実で合理的です。まして、自動車が本当に実現できるかどうかわからない段階では。なので、他言語で型注釈を書くことによるプログラミング体験が良いと思った人が、それをRubyでも享受したいと思うのは自然だと思います。実際、Steep や Sorbet は Ruby でそういうプログラミング体験を提供することを目指していて、すでにある程度

        Rubyと型についてのポエム - まめめも
      • Why, after 6 years, I’m over GraphQL

        GraphQL is an incredible piece of technology that has captured a lot of mindshare since I first started slinging it in production in 2018. You won’t have to look far back on this (rather inactive) blog to see I have previously championed this technology. After building many a React SPA on top of a hodge podge of untyped JSON REST APIs, I found GraphQL a breath of fresh air. I was truly a GraphQL h

        • Open-sourcing Sorbet: a fast, powerful type checker for Ruby · Sorbet

          We’re excited to announce that Sorbet is now open source and you can try it today. Sorbet is a fast, powerful type checker designed for Ruby. It scales to codebases with millions of lines of code and can be adopted incrementally. We designed Sorbet to be used at Stripe, where the vast majority of our code is written in Ruby. We’ve spent the last year and a half developing and adopting Sorbet inter

            Open-sourcing Sorbet: a fast, powerful type checker for Ruby · Sorbet
          • Rubyパーサーを一新するprism(旧YARP)プロジェクトの全容と将来(翻訳)|TechRacho by BPS株式会社

            概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Rewriting the Ruby parser | Rails at Scale 原文公開日: 2023/06/12 原著者: Kevin Newton サイト: Rails at Scale | The Ruby and Rails Infrastructure team at Shopify exists to help ensure that Ruby and Rails are 100-year tools that will continue to merit being our toolchain of choice. 日本語タイトルは内容に即したものにしました。 なお、本記事では「パーサー」(parser: 構文解析器)はカタカナで、lexer(字句解析器)は英ママで表記します。 参考: 構文解析 - Wikip

              Rubyパーサーを一新するprism(旧YARP)プロジェクトの全容と将来(翻訳)|TechRacho by BPS株式会社
            • 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 の使い方 - クックパッド開発者ブログ
              • プロと読み解く Ruby 3.2 NEWS - クックパッド開発者ブログ

                技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 昨日 12/25 に、恒例のクリスマスリリースとして、Ruby 3.2.0 がリリースされました(Ruby 3.2.0 リリース)。今年も Ruby 3.2 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は以前の記事を見てください。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ プロと読み解くRuby 3.0 NEWS - クックパッド開発者ブログ プロと読み解く Ruby 3.1 NEWS -

                  プロと読み解く Ruby 3.2 NEWS - クックパッド開発者ブログ
                • 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の関係についてのノート - クックパッド開発者ブログ
                  • freeeの社内異動制度「異動戦国」のチーム紹介を一挙公開 - freee Developers Hub

                    こんにちは、DevBrandingのellyです。 先日ブログでご紹介したfreeeの社内異動制度「異動戦国」、この時期になると社内では毎年、異動希望者を募集するために各チームの熾烈なPR合戦が繰り広げられます。 今回は、その際のSlackや社内WikiでのPR合戦の様子をご紹介します。募集期間中の社内の雰囲気やfreeeの開発組織にはどんな仕事があるのか、どんな魅力があるのかを知ってもらうきっかけになれば嬉しいです。 Slack上で繰り広げられた今年のPR合戦の様子 チーム紹介 SREチーム DBREチーム DXチーム IAM (認証認可基盤開発)チーム サービス基盤チーム 課金基盤チーム ERP基盤チーム データ基盤チーム コアエンジン(外部サービス連携)チーム AIラボチーム 会計チーム LEGO(Public API・アプリストア開発)チーム 人事労務チーム 金融チーム プロジェク

                      freeeの社内異動制度「異動戦国」のチーム紹介を一挙公開 - freee Developers Hub
                    • Rubyオブジェクトの未来をつくる「シェイプ」とは(翻訳)|TechRacho by BPS株式会社

                      概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: The Future Shape of Ruby Objects 原文公開日: 2021/09/10 原著者: Chris Seaton RubyKaigi Takeout 2021: The Future Shape of Ruby Objects by Chris Seaton - RubyKaigi Takeout 2021 日本語タイトルは内容に即したものにしました。本記事はRubyKaigi Takout 2021 Day2キーノートのスピーチ原稿につき、最終的な発表内容はこのとおりでない部分もあります。流れを把握するために必要と思われる部分については訳注で補足いたしましたが、わかりにくい場合は動画と合わせてご覧ください。 本記事ではshapeの仮訳として「シェイプ」を採用しています。 なお、本記事公開後にCRuby 3

                        Rubyオブジェクトの未来をつくる「シェイプ」とは(翻訳)|TechRacho by BPS株式会社
                      • Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet

                        For the past year, the Sorbet team has been working on an experimental, ahead-of-time compiler for Ruby, powered by Sorbet and LLVM. Today we’re sharing the source code for it. It lives alongside the existing code for Sorbet on GitHub, mostly in the compiler/ folder: → https://github.com/sorbet/sorbet/tree/master/compiler/ We want to be clear up front: the code is nowhere near ready for external u

                          Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet
                        • 1ヶ月で10,000行くらいのコードを書いた話など.md

                          1ヶ月で10,000行くらいのコードを書いた話など.md この記事はpyspa advent calendar 2020の18日目の記事です。前日は、flagboyの配られたカードで勝負するでした。主旨は異なりますが、徒然草百十段の「双六の名人」が思い出されました。明日はYutaka Matsubara a.k.a. mopemopeさんの記事となります。お楽しみに。 1ヶ月で10,000行くらいのコードを書いた話 行数を書くと「いやいや、私はもっと高い生産性を持っている」、という方は少なくないだろう。登大遊氏に至っては、ネットワークプログラミングという複雑な領域での実装でありながら「1日に少なくとも3,000行程度、多く書くときで10,000行」と述べており、凡才さを思い知らされる。 さて、この記事は、私のような動物でも高効率にコードを書くために何をしたのかを備忘として残しておく主旨であ

                            1ヶ月で10,000行くらいのコードを書いた話など.md
                          • Perlの技術研修 - Mobile Factory Tech Blog

                            こんにちは。エンジニアのid:kfly8です。 先日、技術研修のインタビュー記事を公開し、手を動かしつつ、コミュニケーションをよく取る技術研修といった主旨の内容でした。 tech.mobilefactory.jp こちらのインタビューでは具体的な研修内容は触れていませんでした。今回は、駅メモ!や駅奪取といった位置ゲームや着メロの月額コンテンツサイトなどで利用しているPerlの技術研修について紹介します。ブロックチェーン事業ではフロントエンド、バックエンドの両サイドで、TypeScriptを利用しているのですが、そちらの技術研修の話は追い追いできればと思います。 tech.mobilefactory.jp 技術研修を受ける人は、どの言語でも良いのである程度プログラミング言語に慣れてることを想定しています。そのため、学ぶ意味、特徴は何か、良教材は何か、罠は何か、などポイントを掻いつまむように技

                              Perlの技術研修 - Mobile Factory Tech 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
                              • Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub

                                申告チームでテックリードをやらせてもらっている id:nanjakkun です。 freeeではfreee会計をはじめ多くのプロダクトがRuby on Rails(以下Rails)のアプリケーションとして実装されています。 日々の開発の中で、Rubyでも静的な型の解決ができればなあと思うことがあります。 ということで、Rubyの型チェッカーのSorbetをfreee申告に導入してみました。 Sorbet(ソルベ)とは sorbet.org 決済代行サービスのStripeを運営しているStripe社が公開している漸進的型チェッカーです。 ※余談ですがfreeeアプリストアではStripeを決済手段としたアプリの有料販売ができます。 developers.freee.co.jp 有料アプリ販売の準備をする | freee Developers Community 漸進的型付けとは 漸進的型付け

                                  Rubyの型チェッカーのSorbetを導入しました - freee Developers Hub
                                • Rubyの静的型検査を利用した開発手法の現状まとめ

                                  Leaner 開発チームの黒曜(@kokuyouwind)です。 先週はBurikaigi2022で登壇させていただきました! 今回はリモート開催でしたが、来年は現地でブリしゃぶを食べられると良いですね! Burikaigi ではRBSから始める静的型付け生活と題して、 Ruby の静的型検査の概要や開発手順などについて登壇しました。 入門的な内容ではありますが、今回は発表内容を大まかにまとめた記事をお届けします。 なお記事の構成上、発表内容から一部割愛している話がありますがご容赦ください。[1] Ruby 静的型検査の概要 TypeScript の台頭や Python 3.5 での型注釈記法の導入など、動的型付けの言語においても静的型検査の仕組みを導入する動きが近年活発です。 Ruby においても 2020 年 12 月にリリースされた Ruby 3.0.0 において RBS と Typ

                                    Rubyの静的型検査を利用した開発手法の現状まとめ
                                  • Ruby の型チェッカーの比較 | Wantedly Engineer Blog

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

                                      Ruby の型チェッカーの比較 | Wantedly Engineer Blog
                                    • Prism:エラートレラントな、まったく新しいRubyパーサ | gihyo.jp

                                      Ruby 3.3リリース! 新機能解説 Prism⁠⁠:エラートレラントな⁠⁠、まったく新しいRubyパーサ Prismは、Ruby 3.3.0にバンドルされた新しいライブラリで、プログラミング言語Rubyの新しいパーサであるPrismパーサのバインディングです。Prismはエラートレラント、移植性、メンテナンス性、高速性、効率性を考慮して設計されています。この記事では、Prismの歴史、設計、API、そして今後の課題について取り上げます。 使用方法 Rubyバインディングを通してPrismパーサを使うにはrequire "prism"をして、Prismモジュールのparseメソッド、または他のparse_*系のメソッドを呼んでください。次に例を示します。 require "prism" Prism.parse("1 + 2") parseメソッドは、パース結果のオブジェクトを返します。こ

                                        Prism:エラートレラントな、まったく新しいRubyパーサ | gihyo.jp
                                      • 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
                                        • Sorbetについて - soutaroブログ

                                          昨日のAsakusa.rbに行ったらSorbetについて聞かれたので、少し話したんだけど、ちょっときちんと確認しないまま話したらぐだぐだだったので、もう少しまとめておく。 全体的な話として、Sorbetはとても良くできているので、これで良いと思う人はそれで良いと思います。 $ srb --version Sorbet typechecker 0.4.4306 git 31ef906fe5eb572865f2b5d3ea5805793554c676 built on 2019-06-25 06:45:18 GMT with debug symbols Rubyと少し合わないところはあるので、その辺を挙げる。 1. サブタイピング いわゆるDuck typingというやつが、まあ良くない。 sig { params(arg: Eachable).void } def push_from(arg

                                            Sorbetについて - soutaroブログ
                                          • Rubyの型システム勉強会を開催した

                                            Leaner 開発チームの黒曜(@kokuyouwind)です。 週末のゾンビランドサガLIVEを楽しみに今週を生き抜いています。 Rubyの型システム勉強会 実施背景 先日のRubyKaigi Takeout 2021で機運が盛り上がったこともあり、社内で Ruby の型システムを活用していきたいよねという話が出てきました。 前回書いた記事 で RBS Collection を試したのも、実際の使用感を見てみたかったという部分があります。 一方で Ruby の型システムはシグニチャ定義を別ファイルにする必要があったり、検証用のツールが複数合ったりと独特で、そもそも全体像をつかめていないというメンバーも複数人いました。 このあたりは自分の興味分野で RubyKaigi のセッションを追いかけていたこともあり、社内で勉強会を開いて下地を固めよう、ということになりました。 勉強会で使用したアジ

                                              Rubyの型システム勉強会を開催した
                                            • 認知負荷の種類と対策と組織文化について - すがブロ

                                              このエントリは、SmartHR Advent Calendar 2023 シリーズ1の3日目です。 シリーズ1の前日のエントリはalpaca sanの佐渡島の物件情報を集める方法 - alpaca- tcでした シリーズ2の前日のエントリはasonas sanのE03との戦いでした これは何 当初、Rubyを取り巻く型情報に関するツールの関係性についてまとめようと思ったのですが、既に良いドキュメントがあり、自分が満足してしまったので別の話題として認知負荷をテーマに筆をとっております。 ツールの関係性については↓のエントリをご覧ください Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ 閑話休題 認知負荷という言葉、よく聞きますよね。私もよく言いがちでした。しかし、「認知負荷」という言葉をふわふわな認識のまま「

                                                認知負荷の種類と対策と組織文化について - すがブロ
                                              • Ruby3.1 静的解析の導入で開発体験を向上させる (RBS, TypeProf)|Offers Tech Blog

                                                まえがき こんにちは、Offers を運営している株式会社 overflow CTO の 大谷旅人 です。 小ネタです。 弊社では Ruby/Rails をバックエンドの開発言語として採用しており、その柔軟性は開発の大きな助けとなっている面がありつつも、コードベース全体の規模増加や保守効率を考えて環境自体の見直しや、段階的な新環境への移行も行っています。 その中で、今回は Ruby での開発体験を向上させるために行っていた、静的型解析の導入に関してのお話です。 型安全性な環境(TypeScript,Rust,etc..)から Ruby に戻ってくるとやはりあっちは機構が勝手にチェックしてくれていいぞいいぞと思うわけで、 C#が dynamic 型で静的型言語なのに動的型付していたり, Python が type hints で型検査してたりを見ると、どうにかこうにか導入したいと日々思ってい

                                                  Ruby3.1 静的解析の導入で開発体験を向上させる (RBS, TypeProf)|Offers Tech Blog
                                                • スタディサプリ小中高の技術戦略について - スタディサプリ Product Team Blog

                                                  この記事は Enginnering Manager Advent Calendar その2の1日目の記事です。(大遅刻しました) こんにちは。@chaspy です。10月からスタディサプリ小中高*1プロダクト開発部の部長をしています。 本記事では、我々の組織で取り組んでいる技術戦略の現状と今後についてお伝えします。 技術戦略とは何か スタディサプリ小中高の技術戦略 開発比率適正化 課題発見と改善サイクルの確立 直近の取り組み ガイドラインの策定 マイクロサービスの命名 今後追加が予定されているもの monolith の方針検討 共有データベースに対する Model 層の管理方針 api endpoint ごとのオーナーシップ策定 技術戦略グループとして実現したいこと おわりに 技術戦略とは何か ざっくりいうと、事業計画に対して、技術投資をどこにするのか、しないか、です。"技術"投資と言って

                                                    スタディサプリ小中高の技術戦略について - スタディサプリ Product Team Blog
                                                  • Rubyの型解析ライブラリSorbet事始め - Qiita

                                                    Help us understand the problem. What are the problem?

                                                      Rubyの型解析ライブラリSorbet事始め - Qiita
                                                    • 今さらYARD + Solargraphで快適Rubyコーディング

                                                      世は Ruby 3.x で RBS わっしょい時代ですが、あえて今 YARD と Solargrpah の話。 目的Ruby の開発でも JavaScript 並とは言わないまでもある程度カジュアルにエディタ / IDE の補完を利用し、TypeScript 並とは言わないまでも静的型の恩恵に与った、フィードバックが早くて安心感のある開発を行いたい。 結論YARD + Solargraph ( + LSP ) でそれなりに快適になるのですぐやるべき。 案Ruby で静的な型チェックを行う方法はいくつかあるが、今回は以下の二つを試した。 RBS + SteepYARD + Solargraph今回は RBI + Sorbet は試していない。これは以前(だいぶ前)試した1 時に native extension の挙動が変だった記憶があってちょっと苦手意識があるのと、RBI か RBS かで

                                                      • EuRuKo 2019 で発表してきました - クックパッド開発者ブログ

                                                        技術部でフルタイム Ruby コミッタをしている遠藤(@mametter)です。フルタイムで Ruby を開発しています。 先日、オランダのロッテルダムで開催された EuRuKo 2019 で発表してきたので、簡単にレポートします。 EuRuKo とは EuRuKo は、毎年ヨーロッパのどこかで開催されている Ruby のカンファレンスです。 EuRuKo 2019 会場 シングルセッション 世界の Ruby カンファレンスといえば、アメリカの RubyConf 、ヨーロッパの EuRuKo 、日本の RubyKaigi だと勝手に思っていますが、この中で EuRuKo の特徴というと、シングルセッションなことです*1。つまり、発表を聞く会議室は 1 つだけです。どれを聞くか迷わなくていいですね。 必然的に、発表の数は少ないです。YouTube の動画の数を見てみると、RubyConf 2

                                                          EuRuKo 2019 で発表してきました - クックパッド開発者ブログ
                                                        • 経理からプログラマへ、Lramaの今後、なぜBisonを倒したのか。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.2 - STORES Product Blog

                                                          2023年6月15日に『深掘りRubyKaigi 2023 with spikeolaf & makenowjust』を開催しました。イベントの内容をほぼ全文文字起こし形式でお届けします。この記事は第2部です。 hey.connpass.com 登場人物 ゲスト makenowjust/藤浪 大弥さん spikeolaf/金子 雄一郎さん STORES fujimura/藤村 大介 shyouhei/卜部 昌平 hogelog/小室 直 パーサとの出会い fujimura:金子さんのパートにいきます。簡単にどんな話をRubyKaigi 2023でしたか紹介していただけますでしょうか? spikeolaf:ここ2年ぐらい、主にAnd the WorldっていうRubyKaigiの名物コンテンツを見ていると、パーサへの関心というのは高まってきていて、ここ何年かで何が問題かはだいぶ整理されてきて

                                                            経理からプログラマへ、Lramaの今後、なぜBisonを倒したのか。深掘りRubyKaigi 2023 with spikeolaf & makenowjust 文字起こしレポート vol.2 - STORES Product Blog
                                                          • Rewriting the Ruby parser

                                                            At Shopify, we have spent the last year writing a new Ruby parser, which we’ve called YARP (Yet Another Ruby Parser). As of the date of this post, YARP can parse a semantically equivalent syntax tree to Ruby 3.3 on every Ruby file in Shopify’s main codebase, GitHub’s main codebase, CRuby, and the 100 most popular gems downloaded from rubygems.org. We recently got approval to merge this work into C

                                                              Rewriting the Ruby parser
                                                            • Ruby: 静的型付けで解決しない問題とは(翻訳)|TechRacho by BPS株式会社

                                                              概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Problems that Static Typing Doesn’t Solve | CodingItWrong.com 原文公開日: 2020/10/19 原著者: Josh Justice サイト: CodingItWrong.com | Full-stack developer for sufficiently small definitions of stack. Work for Big Nerd Ranch. Brandur Leach氏のブログ記事『Better typing in Ruby』は、Stripeの静的型付けチェッカーSorbetが誕生したときの状況と、Sorbetで得られたメリットについて解説しています。私はこれまで静的型付けのメリットについては割り引いて考えてきましたが、この記事を読むうちに、私がそ

                                                                Ruby: 静的型付けで解決しない問題とは(翻訳)|TechRacho by BPS株式会社
                                                              • Static Typing for Ruby

                                                                Opens in a new windowOpens an external siteOpens an external site in a new window On November 25, 2020 we held ShipIt! Presents: The State of Ruby Static Typing at Shopify. The video of the event is now available. Shopify changes a lot. We merge around 400 commits to the main branch daily and deploy a new version of our core monolith 40 times a day. The Monolith is also big: 37,000 Ruby files, 622

                                                                  Static Typing for Ruby
                                                                • Rails: モジュール化強制ツール"Packwerk"の導入を振り返る(翻訳)|TechRacho by BPS株式会社

                                                                  概要 原著者Chris Salzbergさんの許諾を得て翻訳・公開いたします。 英語記事: A Packwerk Retrospective | Rails at Scale 原文公開日: 2024/01/26 原著者: Gannon McGibbon、Chris Salzberg 日本語タイトルは内容に即したものにしました。また、一部のパラグラフを分割しています。 CC BY-NC-SA 4.0 Deed | 表示 - 非営利 - 継承 4.0 国際 | Creative Commons Rails: モジュール化強制ツールPackwerkの導入を振り返る(翻訳) 2020年、ShopifyのチームはPackwerkという名前のRuby gemをリリースしました(関連記事)。Packwerkは、Railsアプリケーション内で境界を強制的に定めてモジュール化するツールです。Packwerk

                                                                    Rails: モジュール化強制ツール"Packwerk"の導入を振り返る(翻訳)|TechRacho by BPS株式会社
                                                                  • 型を意識した Ruby on Rails 上のモデル - freee Developers Hub

                                                                    こんにちは。freee販売を大阪で開発しております、bucyou (ぶちょー) というものです。 この記事は、freee Developers Advent Calendar 2023 の10日目です。 例によって普段は Ruby on Rails で開発をしておりますが、ここでのアーキテクチャや、モデリングに関する話題は、先日 freee技術の本 に書かせていただきました。 また、先日は TechNight にて、freee販売での取り組みを紹介させていただきました。 この本や、イベントの中で伝えたかったメッセージとしては、以下のようなものでした。 実現したいビジネスを、より適切に表現するためにモデリングを重視していく。 ActiveRecord によって作られたモデルと、ビジネスを表現するためのモデルをしっかり分けていく。 しかし、本はみんなで書いているものだったのでページ数はある程度

                                                                      型を意識した Ruby on Rails 上のモデル - freee Developers Hub
                                                                    • 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
                                                                        • 速報: Ruby向け型チェッカー「Sorbet」をStripeがオープンソース化|TechRacho by BPS株式会社

                                                                          こんにちは、hachi8833です。決済代行サービスで知られるStripeが手がけているRuby向けの漸進的(gradual)型チェッカー「Sorbet」(ソルベ)がオープンソース化されたというアナウンスがありました。別記事で「この夏オープンソース化」と報じた通りでした😋。 We’re excited to announce that Sorbet—a fast, powerful type checker for Ruby, built by @Stripe—is now open source! See https://t.co/K9FL9x0sbw for more. — Sorbet (@sorbet_ruby) June 20, 2019 相変わらずかわゆいロゴです😍。trademark policyには名前がありませんが、本当の名前は何なんでしょう?😅。ひとまず私の中でだ

                                                                            速報: Ruby向け型チェッカー「Sorbet」をStripeがオープンソース化|TechRacho by BPS株式会社
                                                                          • Ruby Parser開発日誌 (10) - parse.y リファクタリングチャレンジ はじめました - かねこにっき

                                                                            前回のあらすじ Ruby Parser開発日誌 (9) - RubyKaigi 2023で発表してきた ~ 世はまさに”大パーサー時代” ~ - かねこにっき RubyKaigiにいってきました。スライドや登壇時の動画は以下のリンクから参照できます。ぜひご覧ください。 rubykaigi.org parse.y リファクタリングチャレンジ "parse.y"を読んでいる時にrb_obj_hideやrb_builtin_class_name、RB_OBJ_WRITTENといった関数やマクロが出てきて驚いたことのある人は少なくないでしょう。RubyのparserではGCやRubyのObjectなどRuby本体の機能が多く使われています。それらはRubyの長い歴史のなかで洗練されてきた機能である一方、一定の御作法に従って使う必要があります。たとえばRB_OBJ_WRITEやRB_OBJ_WRIT

                                                                              Ruby Parser開発日誌 (10) - parse.y リファクタリングチャレンジ はじめました - かねこにっき
                                                                            • A few words on Ruby's type annotations state

                                                                              I don't build systems. I imagine them, then write them. …that were written in a military training camp and accidentally grew to 5k words. I am writing this on my phone, in a barrack that houses some 200+ of my brothers-in-arms in the Ukrainian army’s training camp; I use short periods of rest between training, mostly at night and on Sundays. TBH, since joining the army, I didn’t expect to have tim

                                                                              • [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パーサーPrism利用時の開発体験の変化

                                                                                  この記事で扱っていること 本記事ではRuby 3.3で導入されたPrismという新しいパーサーについて扱っています Prismが持つ「パース時に問題が発生した場合でも可能な限り意味のある結果を返却する」という機能に着目して下記について話します Rubyを記述する際の開発者体験がどれくらい向上しているのか? 「可能な限り意味のある結果」をどうやって組み立てているのか? 最後に主テーマから外れますが、Prismの動かし方についても話しています はじめに こんにちはウォンテッドリーで推薦基盤の改善をやっているnasaです 去年の12/25にもRubyの最新バージョンがサンタさんから届きました。https://www.ruby-lang.org/ja/news/2023/12/25/ruby-3-3-0-released/ 最新バージョンのRuby 3.3.0ではPrismという新しいパーサーが導

                                                                                    新しいRubyパーサーPrism利用時の開発体験の変化