Ruby
rbenvの初期化がすげー遅いときがある eval "$(rbenv init -)" 探してみると、ちょっと昔の記事だけどこんなのが出てきた。 mattgreensmith.net つまりrehashとかいうのが遅いらしいので、それをbackgroundで処理させるといい感じになるらしい。こんな感じで…
「Railsやってる人たちってドメイン層にvirtusとかinteractorとかサードパーティのライブラリが現れるのってどう思ってんの」という雑なツイートに対してROM.rbやdry-rbシリーズの作者であるPiotr Solnicaが優しくリプをくれた。 One rule of thumb is to re…
Rubyで特にRailsを使う際に「特定のドメインの変化によって別の処理の実行をトリガする」みたいなケースでは大抵の場合コールバックが使われる。 しかし、ぶっちゃけた話コールバックはかなり結合度の高いコードになってしまいがちで、実装的にスケールさせ…
自分がOOPをそれっぽく学んだのは、サンディ・メッツの「オブジェクト指向設計実践ガイド」だが、この本だとダック・タイピングはバキバキにでてくる一方であまりポリモーフィズムについては詳しく書かれていない。thoughtbotのブログの記事、Rubyとポリモー…
さーて、お待ちかねのROM.rb入門の第3回はRepositoryから。 前回の記事はRelationを説明していますので、読んでない人は参考までに。 izumisy-tech.hatenablog.com Repository リポジトリと聞くと文脈的にPoEAAやDDDっぽい雰囲気を感じる人が多いのではない…
さて、入門ROM.rbの第2回は、まずRelationから。 ROM.rbとはなんぞやという方は第1回の下の記事からどうぞ。 izumisy-tech.hatenablog.com 入門なのでいきなりSinatraやRailsとどう使うか、ではなくワンソースでどういうAPIがあって、どう使うのか、というと…
D言語でアプリケーションサーバを書いていて、そういえば普段良く使っているRubyのPumaだと、どういう実装をされているんだろう? というのが気になったので少し読んでみる。 server.rb まず読み始めるのはPuma::Serverクラスから。 クラスのインスタンス化…
RubyといえばRails、RailsといえばActiveRecordというくらいに、事実上ActiveRecordはRuby界隈におけるORマッパのデファクトスタンダードだ。しかしながら、Piotr Solnicaというソフトウェア・エンジニアは、ActiveRecordパターンが常にスケーラブルなアプリ…