俗に言うスリープ処理だが言い換えてメモる
環境
$ sh --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) Copyright (C) 2007 Free Software Foundation, Inc.
やり方
sleep {{秒数}}
でできる。
なお、ミリ秒指定は標準のものはサポートしていない
俗に言うスリープ処理だが言い換えてメモる
$ sh --version GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18) Copyright (C) 2007 Free Software Foundation, Inc.
sleep {{秒数}}
でできる。
なお、ミリ秒指定は標準のものはサポートしていない
ソースコードを見ると明白なのでさらっとまじえつつ
sizeは loaded?
でロード状態であればサイズそのものを使う。以下は執筆時点masterのコード
def size loaded? ? @records.length : count(:all) end
いっぽうcountは特に回避コードが書かれているわけで把握実行される。同じく以下が執筆時点のmasterのコード
def count(column_name = nil) if block_given? unless column_name.nil? raise ArgumentError, "Column name argument is not supported when a block is passed." end super() else calculate(:count, column_name) end end
大体一連の処理では同じ結果で一貫させたいはずなので、sizeのほうがよい場合がおおいので、ここを頭に入れながら使い分けをしたい。
言葉としては認識しているが、どういう意図で使われるものかをざっくりまとめる。
楽観的ロックと悲観的ロックはデータベースの文脈で使われる。複数人が疲れるときに同時更新に関して策を講じるかどうかの話で使われる。
このときに同時更新を防ぐために他の人の処理を防ぐ排他処理のことをロックと呼ばれ、そのロックの種類を示す。
悲観的ロックは別名「悲観的並行性制御(pessimistic concurrency control)」と呼ばれ、同時に更新することを前提した処理。
こうすることにより、ほかの作業をブロックするので競合することがない
対して楽観的ロックは別名「楽観的並行性制御(optimistic concurrency control)」と呼ばれ、同時に更新することは前提としない制御。
こうすることにより、更新されたもの勝ちとして、他の作業との整合性を担保する
カタカナ語と漢字のイメージがかけ離れ過ぎてて定着しないのでメモがてら
e-Wordの説明がキレイだったので引用すると
瓶(bottle)の首(neck)、隘路という意味の英単語。ガラス瓶の口に近い細くなっている部分のことで、液の流量(の最大値)は瓶の容量や他の部分の太さに関わらず、この部分の太さによって決まる。このことから、系全体の中で速度を律する、流れを最も妨げる要素を表す例えとして様々な分野で用いられる。- ボトルネック(ネック)とは - IT用語辞典 e-Words
砂時計のくびれの部分で流量が制限されるので、それで時間を図ることができる、のような意味。
化学反応がいくつかの段階を経て進むとき、そのうちで変化速度が最も遅い反応段階。この反応速度で全体の反応速度が支配される。 - 律速段階(りっそくだんかい)とは - コトバンク
律速になる場所が「一番遅くなり、この場所にあわせて全体の速度が決まる」ということなので、ボトルネックとほぼ同じ意味になる。
初学者にいい感じに説明できなかったので、SQLの概念抜きにしてまとめてみる
いずれもModel(ActiveRecord)からデータを取得するために使うものだが まずは大きく2つのうちどちらかになるかを考える
Aの場合、どのように絞り込みたいかによって代わり
の2つで分かれる。この結果を持って
find
find_by
where
といういずれかの選択になる。
また、whereに関しては直接モデルのクラスではなく ActiveRecord::Relation
になることも気をつけなければいけない
雑なメモ
gitで書くときには以下のように書ける。
gem "rails", :git => "https://github.com/rails/rails.git"
gem "rails", :git => "https://github.com/rails/rails.git", :branch => "6-0-stable"
いまのbundlerだと :github
という指定もできる。
実は一般的な用語ではないということに気づいたのでメモ
瞬間的に従来の量よりも増えることで、折れ線グラフにしたときに急激に数値があがる状態のことを指す
語源はスパイクノイズかと思われる
電子機器で、スイッチの開閉などに伴って出る、鋭い波形の騒音。 - スパイクノイズとは - コトバンク
この尖った波形と前述の折れ線グラフでの急増が重なった言葉だと思わる
トラフィックスパイク(TrafficSpike)もほぼ同じ意味で、アクセストラフィックがスパイクするという意味の旨で使われる