記事

研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ

アプリケーション

研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフを読んだ。 仕事でRubyを使い始めて、入門的な書籍も一通り読み漁って、ある程度知識が身についてきた段階でより実践的なことが知りたくて読んでみた。 Rubyの実践的な知識はもちろん、Rubyの魅力についてもこの本から感じ取ることができたような気がする。 プログラミングという観点では、Rubyに依らない考え方も拾うことができた。 ...

Ruby

分散SQLクエリエンジンTrino徹底ガイド

データベース

分散SQLクエリエンジンTrino徹底ガイドを読んだ。 SQLクエリエンジン ANSI SQLをサポート フェデレーテッドクエリ 同じSQLで異なるシステムからデータベースとスキーマを参照および使用する データベースではない OLTPを処理するために設計されていない OLAP向けなので、あくまで性能目標はOLAP水準なのではなかろうか   分散システムとしてコンピューティングリソースを...

Trino

punditのコードリーディング

アプリケーション

概要 punditのコードリーディングをする。 準備 punditのリポジトリをクローンする git clone git@github.com:varvet/pundit.git コードリーディング 権限を適用するときに使うauthorizeメソッドを見ていく。 authorize varvet/pundit/blob/main/lib/pundit.rb#L75 モジュールのクラス...

pundit Ruby

Ruby コードレシピ集

アプリケーション

Ruby コードレシピ集を読んだ。 Ruby初心者がRubyでできることやよくあるパターンをインプットするのにちょうど良い本。 これからRubyを学ぶのであれば、本書を読んでおいて損がないと思う。 分かりやすく簡潔に書かれているので読みやすい。 ...

Ruby

relineのコードリーディング

アプリケーション

概要 relineのコードリーディングをする。 準備 relineをクローンする git@github.com:ruby/reline.git サンプルコードを作成する $LOAD_PATH.unshift(File.expand_path('lib', __dir__)) require "reline" prompt = 'prompt&...

reline Ruby

irbのコードリーディング

アプリケーション

概要 irbのコードリーディングをする。 準備 irbのソースコードをクローンする git clone git@github.com:ruby/irb.git エントリポイントを細工する 元の状態だとRubyインストールディレクトリにあるirbを実行してしまうので、ローカルのirbを実行するようにする。 #!/usr/bin/env ruby # # irb.rb - intera...

irb Ruby

RSpecのコードリーディング

アプリケーション

概要 RSpecのコードリーディングをする。 準備 RSpecのリポジトリをクローンする。 https://github.com/rspec/rspec-core コードリーディング RSpecの呼び出し rspec/rspec-core/blob/main/exe/rspec#L4 エントリーポイント lib/rspec/core/runner.rb#L43 Runnerクラス...

RSpec Ruby

カーソルページネーションとオフセットページネーションについて

アプリケーション

概要 オフセットページネーションとカーソルページネーションの比較についてまとめる。 オフセットページネーションとは SELECT * FROM table LIMIT 10 OFFSET 20 のように、OFFSET と LIMIT を使ってページネーションを実現する方法。 比較的実装が容易で、任意のページに直接アクセスすることができる。全体のページ数が把握しやすいが、データセットが大きい場合、パ...

オフセットページネーション カーソルページネーション

Sidekiqのコードリーディング

アプリケーション

概要 Sidekiqのコードをさらっと読んでみる。 準備 sidekiqをクローン https://github.com/sidekiq/sidekiq redisを起動 docker run --name redis-server -p 6379:6379 -d redis デバッグしたいところでbinding.pryを仕込む sidekiqを起動 bundle exec ...

Ruby Sidekiq

PostgreSQLとPgCatをローカルで素振りできる環境を作った

インフラストラクチャ

PostgreSQLとPgCatをローカルで実験できる環境を作った。 bmf-san/postgresql-pgcat-example PostgreSQLやPgCatのパラメータをチューニングしてローカルで負荷検証することできるようになっている。 構成は、 Web Rubyで雑APIサーバー PostgreSQL MySQLも同じだが、volumeにデータが存在するとinit.sqlが走ら...

負荷試験 PgCat PostgreSQL Grafana Prometheus