Ruby
他言語からRuby入門について
Rubyist Magazine
ruby リファレンス
Ruby paint
Ruby document
YARDで書くというのがある。やはり @example
が重要。
Ruby gem管理
Ruby 文字列がimmutable(不変)ではない
frozen_string_literalマジックコメントでImmutable Stringを実現する
ruby3でも不変にはしないということ。そのためマジックコメントが必要。
Rubyを書く時意識すること
文字列も数値も配列もすべてクラスから生成されたインスタンス(その上の 基底クラスが定義されているから文字列ならこのメソッドみたいに使える) つまり、何が言いたいのかは 型を意識しながら書く。そこで調査する範囲が狭まる(stringか、ならstringのメソッド一覧を探すかみたいな)
Ruby パッケージ
Ruby 3.0.Xの依存関係
% sudo apt install -y libssl-dev libreadline-dev zlib1g-dev
※macOSだとopensslでまかなうらしい
Ruby 仕組み
変数宣言でのメモリ確保
JavaやC#のような言語では、利用する前に変数の名前とそこに格納できるデータの種類(データ型)をあらかじめ宣言する必要がある、 JavaやC#のような言語では、宣言という行為を経て始めてデータを格納するための領域がメモリ上に確保される
Rubyでは? Rubyでも変数の宣言は必要だが、スクリプト上で変数にはじめて値を格納したタイミングで変数のための領域が自動的にメモリ上に確保される。
require, include, extend
require
ファイルをメモリに読み込む
loadとの違いは、requireはすでにメモリに展開されていた場合はたとえ対象ファイルに変更があっても読み込みしないが、loadはする、そうです。
読み込み先が頻繁に更新されるときは、loadを使ってその変更をタイムリーにひろう、ために使うそうです。
Language Server Protocolは(LSP)
Rubyプロジェクトにsolargraphとrobocopを入れる
Ruby他言語との違い
Perlの多くの部分を踏襲したRubyでしたが、1点決定的に異なる部分がある。
それはRubyが純粋なオブジェクト指向言語である、という点。
後からオブジェクト指向の仕組みを取り入れたPHPとは異なり、Rubyは最初からオブジェクト指向で記述できるよう開発された言語。実行はインタプリタ方式
Ruby on Railsを使用した場合の最大のメリットは、開発スピード低予算でWebアプリを簡単に作ることができること。
Railsは「フレームワークに依存させることによって開発コストを最小にする」ことを極限まで追求したような化け物フレームワーク
Rubyスタイルガイド
- シンボル名、メソッド名、変数名はスネークケースにする
- クラス名とモジュール名はキャメルケースにする(camelCase)
- ファイル名とディレクトリ名はスネークケースにする
- ソースファイル名にはクラス名やモジュール名のキャメルケースをスネークケースに変えたものを使う