ravelll の日記

よしなに

ruby

builderscon 2019 に参加してきた

builderscon に参加するのは第1回の 2016 ぶりで、当時と比べてかなり規模が大きくなっていて驚いた。 カンファレンスは持病の問題でどうしても寝落ちしてしまう*1ので最近は参加を躊躇しがちで、今回もやはり一部のトークは寝落ちしてしまったのだけど、好…

オブジェクト指向設計実践ガイド 第7章

7章はモジュールの話。SOLID 原則の L であるリスコフの置換原則が出てきます。 第7章 モジュールでロールの振る舞いを共有する クラスによる継承はあくまで解法の1つでしかなく、クラスによる継承で解決できる問題には必ず他の解法も存在する 7.1 ロールを…

オブジェクト指向設計実践ガイド 第6章

6章は継承の話。既知の内容も多かったけど、フックメソッドのテクニックは知っておらず、なるほど〜という感じだった。 徐々にサンプルコードのコンテキストが厚くなってきたので写経しつつ読み進めた。 transcriptional_codes/guide_for_object_orient_desi…

オブジェクト指向設計実践ガイド 第5章

5章はダックタイピングの話。Ruby の特徴としてよく語られますね。 勘所がつかめると設計が洗練されるだけでなく OSS プロダクトのコードリーディングが捗って良さそうだな〜と思いました。 動的/静的型付け言語の話はなかなか強い口調で語られていて、読ん…

オブジェクト指向設計実践ガイド 第4章

パブリックインターフェースについての話。デメテルの法則についても触れていました。 第4章 柔軟なインターフェースを作る オブジェクト指向アプリケーションは「クラスから成り立ち」「メッセージによって定義される」 オブジェクトの責任 = オブジェクト…

オブジェクト指向設計実践ガイド 第3章

読み進めるうちにしばしば「あのプロダクトのあの実装はこういう意図だったのでは!」と気づいて、その瞬間が気持ち良い。 第3章では特に「他クラスへのあるメッセージ送信についての依存を、そのメッセージに応答できるダックタイプへの依存に変えるとき、…

"オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方" を読み始めた

2度目のパーフェクト PHP の読了を果たした一昨日から、オブジェクト指向設計実践ガイドを読み始めた。 オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方作者: Sandi Metz,?山泰基出版社/メーカー: 技術評論社発…

RubyKaigi 2015 1日目

このエントリは gussan Advent Calendar 2015 の11日目のエントリです。 今回は RubyKaigi2015 初日を楽しんできたお話。 RubyKaigi 2015 http://rubykaigi.org/2015 RubyKaigi に参加するのは実は初めてで、去年は仕事と体調の関係でチケットを持っていたの…

bundler v1.10.6 で Vagrant マシンへのテストが落ちる

とある puppet リポジトリで vagrant マシンに向けて Serverspec のテストを実行したところ、すべてがFになった。 どうやら vagrant のプラグインがコンフリクトしていて、bundler のバージョンもサポート外の様子。 $ bundle exec rake spec Vagrant experi…

Module#prepend と Module#include

Module#prepend をあまり知らなかったので Module#include と比較しつつコードを書いて確かめた。 Module#prepend はモジュールを継承チェーンの先頭に追加するメソッド。 一方で Module#include はモジュールを継承チェーンのひとつ手前に追加する。 module…

Nested Resources 時に親モデルのルーティングはしたくない

どういうことかと言うと、 User has_many Products のような 2つのモデルがある POST /users/:user_id/products のルーティングがしたい けど、/users/ についてのルーティングはしたくない のような状況。より具体的には以下の感じです。 resources :users,…

なるほどUnixプロセス Rubyで学ぶUnixの基礎 を読んだ

新人エンジニアとの読書会でシグナルの話が出た時に色々知識が曖昧なことに気づいたので読んだ。(Spyglass についてはまだ触っていない) 社内の別の読書会にこれの原著を読むものがあったんだけど、 当時 Ruby や UNIX について知識がなさ過ぎたり英語読むの…

Prevent N+1 Query Problems in index action on Active Admin.

Active Admin is a Ruby on Rails plugin that provides administration web page. Our development team uses it for our service. Few days ago, we bring in bullet gem, then we found N+1 query problems in some administration index pages. I search…