タグ

ブックマーク / pocke.hatenablog.com (4)

  • 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
    snaka72
    snaka72 2021/12/28
  • Rubyの日本語リファレンスマニュアルに、英語のページが現れるようになります - pockestrap

    こんにちは。ruremaメンバーの id:Pocke です。 Rubyの日語リファレンスマニュアルで、未翻訳の英語のドキュメントが公開されるようになりました。 この記事では、それについて簡単に解説します。 何が変わるのか 今までは、未訳のメソッドは日語リファレンスマニュアルには一切書かれていませんでした。 それが今回の変更によって、英語のリファレンスマニュアルと同じ文章が、そのまま日語リファレンスマニュアルにも書かれるようになります。 たとえば Ruby 2.7で追加されたModule#const_source_locationメソッドのドキュメントは未訳であるため、今までは日語リファレンスマニュアルにはドキュメントが存在しませんでした。 ところが今回からは次のようなドキュメントが日語リファレンスマニュアルにも存在するようになります。 https://docs.ruby-lang

    Rubyの日本語リファレンスマニュアルに、英語のページが現れるようになります - pockestrap
    snaka72
    snaka72 2021/01/04
  • Rails/UniqueValidationWithoutIndex copを追加した - pockestrap

    rubocop-railsRails/UniqueValidationWithoutIndex copを追加しました。 rubocop-railsの次期リリース(おそらくv2.5.0)から利用できます。 github.com これはなに Rails/UniqueValidationWithoutIndex copは、RDBMSのunique indexがついていないカラムに対して、Active Recordのレイヤーでuniquenessバリデーションを書いている場合に警告をします。 たとえば次のバリデーション定義がある時を考えます。 class User < ApplicationRecord validates :account, uniqueness: true end この時、このCopは次のスキーマ定義によって警告を出したり出さなかったりします。 # account カラムに

    Rails/UniqueValidationWithoutIndex copを追加した - pockestrap
    snaka72
    snaka72 2020/10/30
  • Rails Best Practices を3~4倍ぐらい速くした話、あるいはStackProf入門 - pockestrap

    github.com TL;DR StackProf でボトルネック検出 String#present?は遅いから使わない。 何度も呼び出される毎回同じ値を返すメソッドをメモ化 上記により3~4倍のパフォーマンス改善 はじめに Rails Best PracticesはRailsに特化したコードメトリックツールです。 github.com 仕事柄このようなツールをよく扱うのですが、Rails Best Practicesは実行が遅いと言う問題点がありました。 と言うわけでなんとなくプロファイリングして高速化してみました。 プロファイリング 使用ツール まずは、ボトルネックを探すためにプロファイリングします。 それでは、プロファイリングのためにRailsプロジェクトを用意しましょう。 ある程度大きめのプロジェクトが必要なため、今回はgitlabhq/gitlabhqを使用します。 適当な場所

    Rails Best Practices を3~4倍ぐらい速くした話、あるいはStackProf入門 - pockestrap
    snaka72
    snaka72 2018/03/26
  • 1