#Ruby
26 件の記事
Ruby / Rails を学ぶためのおすすめ本7選【入門から実践まで】
RubyとRuby on Railsを体系的に学ぶための定番書を7冊まとめた。入門、言語を深める、Railsの実践の順に紹介し、各書の個別レビューへ移動できる。
RubyとRailsのIO・CPU特性について
Ruby・RailsのI/O特性とパフォーマンスチューニングについて整理した記事です。RubyのGVL(Global VM Lock)による制約や、Pumaサーバのスレッド・プロセス設計、見かけのI/O待ちの実態、IO/CPUバウンドの捉え方をふまえ、計測にもとづいた適切な最適化の方針を示します。
Rubyのインスタンス変数とクラス変数とクラスインスタンス変数の違い
Rubyのインスタンス変数・クラス変数・クラスインスタンス変数の違いについて整理して解説する記事です。@で始まりインスタンスごとに状態を保持するインスタンス変数を中心に、それぞれの変数がどのスコープでどんな値を保持するのか、混同しやすい3つの違いを具体例とともに紹介します。
Rubyにおけるシングルトンパターンの実装方法
Rubyにおけるシングルトンパターンの実装方法についてまとめた記事です。インスタンスが1つしか存在しないことを保証するこのデザインパターンを、標準ライブラリのSingletonモジュールやクラスメソッドの活用、定数化といった手法で、スレッドセーフに唯一のインスタンスを管理する形で実装する方法を紹介します。
メタプログラミングRuby 第2版
『メタプログラミングRuby 第2版』の書評。Rubyのメタプログラミングの仕組みと使いどころを学べる一冊。オブジェクトモデルや動的な機能を通じて「Rubyの魔法」の正体に迫れるが、実際に使いこなすには相応の難しさもあると感じさせる。
研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ
『研鑽Rubyプログラミング 実践的なコードのための原則とトレードオフ』の書評。入門書を一通り終えた段階で、より実践的な知識を得たい人に向く一冊。原則とトレードオフという観点からRubyらしいコードのあり方をたどりつつRubyの魅力を伝え、言語に依らない設計の考え方も学べる。
punditのコードリーディング
Rubyの認可フレームワークであるPunditのソースコードを読み解いた記録です。リポジトリをクローンして、権限ポリシー(Policy)の仕組みや、認可を適用する際に使われるメソッドの内部の動きを、コードリーディングを通して権限管理の観点から追っていきます。
irbのコードリーディング
Rubyの対話型シェルであるirbの内部構造を、コードリーディングを通して読み解いた記事です。ソースコードをクローンしてエントリポイントを起点に、irbの起動処理や履歴の読み込み、入力されたコマンドの実行といった観点から、その仕組みを追っていきます。
relineのコードリーディング
Rubyのreline(Readlineの純Ruby実装)というライブラリのソースコードを読み解いた記録です。ライブラリをクローンしてサンプルコードを動かしながら、Readlineの呼び出しや行編集、入力のバッファリングといった内部構造を、コードリーディングを通して追っていきます。
RSpecのコードリーディング
RubyのテストフレームワークRSpecの内部を、runnerの起動・テスト実行フロー・結果レポートの観点からコードリーディングで読み解きます。
Ruby コードレシピ集
『Ruby コードレシピ集』の書評。Rubyでできることやよくあるパターンを、レシピ集としてまとめた一冊。分かりやすく簡潔に書かれており、これからRubyを学ぶ初心者が引き出しを増やすのにちょうど良い。
Sidekiqのコードリーディング
Sidekiqのアーキテクチャを、RedisベースのジョブキューやRubyアプリでのジョブ登録・実行フローの観点からコードリーディングで読み解きます。
Ruby on Railsのコードリーディング第3回-WelcomeControllerの呼び出し
Ruby on Railsのソースコードを読み解くコードリーディングの記録の第3弾です。rails newで用意したプロジェクトを題材に、ルーティングを経てWelcomeControllerのアクションが呼び出されるまで、リクエストがどのような流れで処理されていくのかを追いかけていきます。
Ruby on Railsのコードリーディング第1回-Railsの起動
Ruby on Railsの起動シーケンスを、コマンド実行からRackup、Pumaサーバーの初期化、リクエスト処理までコードリーディングで追います。
Ruby on Railsのコードリーディング第2回-Railsのリクエスト処理
Ruby on Railsのソースコードを読み解くコードリーディングの記録の第2弾です。rails newで用意したプロジェクトを題材に、Railsが1つのリクエストを受け取ってレスポンスを返すまで、リクエスト処理がどのような流れで進んでいくのかを追いかけていきます。
Rubyを学ぶ
PHPやGoを触ってきた自分が、Rubyを学ぶ際に取り組んだことをまとめた記事です。まずは公式ドキュメントから入り、定番の書籍やオブジェクト指向の設計パターン、実際に手を動かす実践を通じて、Rubyの基礎を身につけていく道のりを紹介します。
Rubyのブロック構文について
理解するRubyブロック構文。do..end形式、{}形式、yield、block_given?、&blockパラメータ、クロージャの特性を習得。
RubyのModuleについて
RubyのModule(モジュール)について解説する記事です。クラスや他のモジュールに共通のメソッドや定数を提供する仕組みとして、名前空間の分割やMixinによる多重継承的な機能の共有、クラスメソッド・インスタンスメソッドの定義方法などを、具体例を交えて紹介します。
RubyのProcとlamdaについて
RubyのProcとlambdaの違いについてまとめた記事です。ブロックをオブジェクト化した手続きオブジェクトであるProcを軸に、引数の厳格さの違いや、returnとnext・breakといったジャンプ文の挙動の差、そして手続きをオブジェクト化してコードを再利用するパターンを解説します。
Rubyの特異クラス・特異メソッドとは|仕組みを解説
実装するRuby特異クラス・メソッド。class << objectパターン、オブジェクト特有のメソッド定義、singleton_methodsの活用法。