AOPに基づいてconcernモジュールを作る

発端: concernモジュールの命名をどうするか ここではActiveSupport::Concernをextendしたモジュールのことをconcernモジュールやconcernと呼ぶ。 「Concernに何を実装すべきかは…非常に曖昧」1である。さらに、Railsアプリのメインであるルーティングからモ…

既存のgemにRBSで型定義を書く

RBSの練習としてhatenablogというgemの型定義をRBSで書いた。 https://github.com/kymmt90/hatenablog/blob/v0.8.0/sig/hatenablog.rbs まだ該当gemのsigディレクトリに置いているだけだが、やったことを書いておく。 作業の流れ Ruby 3.0をインストールする…

OKRについて調べていた

今年から会社で導入されているOKRについて、結局どうやっていけばうまく運用できるのかわかっていなかったので、入門書を読んで調べていた。 OKRとは OKR - Wikipedia a goal-setting framework for defining and tracking objectives and their outcomes. …

Rack::Timeoutによるリクエストタイムアウトの仕組み

はじめに Rackミドルウェアの一つであるRack::Timeoutを使うと、Rackアプリがリクエストを受け取ってから一定時間が経過すると、アプリのどの場所でコードが実行されていても、その場所からRack::Timeoutの例外RequestTimeoutExceptionが発生する。 サンプル…

開発体験(DX)改善について知るために2021年1Qに読んだリソース

ここで開発体験(DX: developer experience)はおおむね次の記事で説明されている概念とする。digital transformationではない。 DX: Developer Experience (開発体験)は重要だ - Islands in the byte stream 2021年になり、担当するWebサービスのDXの改善…