日々徒然

プログラミングしたりお酒飲んだりする毎日

2021-01-01から1年間の記事一覧

RubyGoldに合格しました!!

はじめに 11月末から勉強していたRubyGold試験に88点で合格しました! 既にたくさんの合格しました系の記事はあるのですが、簡単に自分も書いてみます‍♂️ Ruby歴 業務でRubyを使った開発は昨年の10月から現在までおよそ一年弱の経験があります。 勉強期間 日…

Rubyのeval三兄弟についてのまとめ(instance_eval, class_eval, module_eval)

はじめに RubyGoldのお勉強でeval三兄弟について調べたのでまとめた instance_eval オブジェクトに対する操作 インスタンスに対してinstance_evalすると、そのインスタンスの特異メソッドを作成してくれる 例 class Piyo def cry p "piyo" end end piyo = Pi…

(完全に理解する)Rubyの定数探索

はじめに RubyGoldの試験対策をしていく中で、定数探索についてかなり色々調べたのでまとめてみた はじめに 基本的な考え方 基本的なパターン 外部から呼び出すパターン 継承するパターン レキシカルスコープ VS 継承 part1 レキシカルスコープ VS 継承 part…

Rubyの特異クラス内のインスタンス変数について

はじめに Ruby Goldのお勉強中によく分からない挙動をしていたので手元で動かしてみた。 特異クラス内のインスタンス変数 まずはこのコード class A @a = 1 def call_a p @a end class << self @a = 2 def call_a p @a end end end Aクラスの中でインスタン…

RubyGold対策②

前回の記事 続きやってく。 refine 変更するクラスを与えるとusing以降から、その定義内容が反映されるみたい。 module内で定義する。 docs.ruby-lang.org class Piyo def cry puts "ぴよぴよ" end def call_cry cry end end module Hoge refine Piyo do def…

RubyGold対策①

はじめに 下半期の目標で『RubyGold取得』を掲げているものの、11月末まで全然勉強できなかった(しなかった)ので、これから本腰入れて勉強開始しようと思います。 Rubyの実行環境 分かりやすくまとまってるサイト Ruby Gold対策(実行環境) - 気軽に楽しく…

herokuで静的サイトを無料で公開する方法

概要 basic認証付きの静的サイトを無料で作成したかったので色々しらべてみたらherokuの無料枠でやるのが良さそうだったので試してみました sinatra使うのが一番簡単でお手軽かなと思います(Ruby単体でも大丈夫) ちなみにGitHubPagesは簡単だけど認証付け…

Railsのキャッシュについて雑なまとめ

railsのキャッシュの仕組み ページキャッシュ Webサーバー側でページを生成してくれる Rails4からgemに分離された https://guides.rubyonrails.org/caching_with_rails.html#page-caching アクションキャッシュ コントローラーのアクション毎に設定できるキ…

Rubyでファイルの排他制御

ファイルの排他制御 File#flock (Ruby 3.0.0 リファレンスマニュアル)でファイルへのロックを取得する File::LOCK_EXは排他ロック File::LOCK_NBをor条件で指定すると以下の時にfalseを返す 他のプロセスが排他ロックをすでに行っている場合にロックを行う …

複数条件unless撲滅のためのド・モルガン(Ruby)

Rubyのunlessを使って複数条件を書くと非常に見辛くなるので複数条件の時はifにした方が良い(人にもよりそう) 論理式はドモルガンの法則で変形できるのでパパッとまとめてみた ja.wikipedia.org そういえば高専時代に少し学んだ気もする... unless !a && b…

検証用のサイトをWeb環境に作りたいとき(ngrock)

はじめに 検証用のサイトなどをWeb上に作成したい時にパパッと作成できるツールを探していたところ、ngrockと言う便利ツールがあったので使ってみた nglock 簡単な検証用のサイトを作ってWebに公開したいときにパパッと作れるツール ローカルで立ち上げたサ…

Railsのクエリキャッシュについて

Railsのクエリキャッシュについて 仕組み ActiveRecordはクエリキャッシュという機能がある Partner.find(1)という処理が走った時に 1. ActiveRecordがPartner.find(1)をSELECT 'partners'.* FROM 'partners' WHERE 'partners'.'id' = 1という SQLクエリに変…

ActiveRecord::Relationに対してpresent?とexists?の違い

はじめに ActiveRecord::Relationオブジェクトの存在検証をする時にpresent?とexists?とする場合でパフォーマンスに違いがあるみたいなのでまとめてみました present? present?の場合、SQLが発行されてオブジェクトがメモリに読み込まれます。 users = User.…