Entries from 2021-08-01 to 1 month

リフレッシュトークン

GoogleアカウントやLINEアカウントなどで、他のアプリのサービスを認証するOAuth 認証を使用している場合、リフレッシュ・トークンを有効にできる。 そもそもトークンとは、ユーザー・クライアントがアクションを実行すべく必要な認証情報である。一般的にjs…

Ruby / Railsにおけるメモリを意識した実装

Rubyとメモリ Rubyのクラスによっては、メモリ割り当てがないのもある。 nil, true, false, 一部のIntegerがそれにあたる。 [325] pry(main)> ObjectSpace.memsize_of(nil) => 0 [328] pry(main)> ObjectSpace.memsize_of(12) => 0 [330] pry(main)> ObjectS…

モジュールのミックスイン

モジュールは様々な用途で使われる。主に以下のような使い方がある。 継承を使わず、クラスにインスタンスメソッドを追加または上書きする。 複数のクラスに共通の特異メソッド(クラスメソッド)を追加する クラス名や定数名の衝突を防ぐために名前空間を作…

New Relicに関するメモ

New RelicはAPM(Application Performance Management。日本語では「アプリケーションパフォーマンス管理ツール」と呼ぶ)である。 New Relicによって、インフラストラクチャ・バックエンド・クライアントサイドの性能を分析するための重要な情報を収集する…

特異メソッド

特定のオブジェクトにだけ紐づくメソッドのことを特異メソッド(singleton method)と呼ぶ。 例えば、以下のような事例。 nakata = "私は中田" suzuki = "私は鈴木" def nakata.show puts "これは特異メソッドです" end nakata.show => これは特異メソッドで…

既存の演算子の再定義と既存クラスの継承

既存の演算子の再定義 Rubyでは一見演算子に見えて、メソッドとして定義されているものがある。 == === + - > < これらはクラスごとに再定義可能である。どの演算子が再定義できる、できないかは公式ドキュメントで確認すること。 例 class User def ==(val)…

クラス構文直下のメソッド呼び出し

Rubyでは、メソッドの定義がなくてもクラス構文で書いたコードを実行できる。 class Foo def self.bar puts "pul2" end # これよりも上にクラスメソッドを定義しておく self.bar end => pul2 class Foo 3.times do puts "pul4" end end => pul4 => pul4 => p…

クラスにおける定数

Rubyのクラスの定数であるが、アルファベット大文字・数字、アンダースコアで構成されるのが多い。 例 USER_NUMBER = 10 COUNTRY_NUMBER = {japan: 10, india: 20, spain: 30} 定数はインスタンスメソッドからでもクラスメソッドからでも、参照できる。 clas…

非同期処理(Promise, async/await)

ポーリング フロント側からサーバーに対して一定間隔にhttpリクエストを投げる処理。 サーバから新しい情報を取得する目的で利用する。 Promsie 非同期処理を行う最も代表的なオブジェクト。 PromiseにはPromiseStatusという状態があって3種類ある。 pending…