カレーの恩返し

おいしいのでオススメ。

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

ActiveModel::Dirty を使うときに気をつけること

最近ハマってしまったのでメモとして残しておく。 TL;DR 自身のmodel と association を同時に save する場合は dirty attribute が上書きされる可能性があるので注意する必要がある。 本編 雑なサンプルを提示する。 User : ユーザー作成時に新規ユーザー向…

sorbet は production で使えるのか [2020/03/29 時点]

sorbet は少し前に話題になっていた Ruby の type annotaion gem。 sorbet.org 以下のようなコードを書くと静的型チェック、動的型チェックの両方をやってくれる。 # typed: true require 'sorbet-runtime' class A extend T::Sig sig {params(x: Integer).r…

grpc_required_annotator gem つくった

rubygems.org TL;DR 会社で grpc ruby を使っていて、同じような実装何回もやってんなと思ったので共通化して gem にした request message を required チェックを簡単にできる DSL を提供してくれる いつも書いていた required をチェックするだけの冗長な…

ModelとConcernに記述したcallbackの実行順

結論 Concern に記述された callback が先に実行される。 既存の callback を Model もしくは Concern に移すときは気をつける必要がある。 以下確認コード class Hoge < ApplicationRecord include HogeConcern before_validation -> { puts "before_valida…

マイクロサービス他社事例

マイクロサービスの事例を調べた。 多少まとめた方がいいんだろうけど、一覧があるだけでも一定の価値はあると思ったので載せておく。 Cookpad https://logmi.jp/tech/articles/320715 https://techlife.cookpad.com/entry/2016/03/16/100043 Technical Succ…