CATEGORIES · 01 / 05
Engineering
コード、アーキテクチャ、言語と型。手を動かして得た感触を、docs のリズムで残す場所。(42 本)

Rails 6.1 → 8.1 のメジャー移行で踏んだ 7 つの罠
load_defaults / Spring / show_exceptions / unprocessable_content。AetherEchoes バックエンドを 6.1 から 8.1 に上げた実録。

Next.js 16 + Tailwind v4 を本番で動かして気付いた N 個のこと
Pages Router + @theme + next/font 7 種で個人雑誌を組んだ実装メモ。CSS 変数の名前空間、フォントの preload 戦略、ISR の落とし穴。

Rails 6.1 から 8.1 への移行メモ
Rails 6.1 の API-only 構成を 8.1 に引き上げる際に気をつけたポイントを、load_defaults や Spring 廃止など実例で整理します。

JSON-LD を Rails で型安全に組み立てる
schema.org の JSON-LD を埋めるとき、Hash を直書きすると型がない。dry-struct で構造を持たせる小さな工夫。

ActiveModelSerializers の代替を探した記録
AMS のメンテナンス停滞を受けて、Blueprinter / Alba / Panko を比較。AetherEchoes が最終的に AMS を残した理由。

RSpec の shared_examples を最小に保つ理由
shared_examples は便利。だから乱用される。「一度書いたら 5 箇所で使える」は、実は「5 箇所で読めなくなる」の言い換え。

Ridgepole 運用のチーム共有チェックリスト
Rails migrations を捨てて Ridgepole で運用する選択は強力だが、チームで使うとハマる場所が決まっている。事前に共有すべき 6 項目。

docker compose で DB を秒で建て直す習慣
開発中に DB 状態を破棄するのが「面倒」だと、無駄に温存しがちになる。10 秒で戻せる Makefile タスクの作り方。

Sidekiq 8 の retry 戦略を「諦め時」から設計する
デフォルトの 25 回リトライを盲信しない。エラーの種類ごとに retry 回数を変える設計と、dead queue の運用方針を整理します。

TypeScript の satisfies と as をいつ切り替えるか
satisfies は「型を絞らずに型を満たす」ことを表現できる演算子。as と何が違うのかを、実例 3 つで切り分けます。