Zatsu posts

i18n: 翻訳対象の切り分け基準

背景 多言語対応(i18n)を実装する際、「どの文字列を翻訳し、どの文字列を英語のまま残すか」の判断に迷うことがある。特にエクスポート機能(HTML/Markdown/PlainText)のように、画面表示とファイル出力の両方にテキストが含まれる場合、基準が曖昧になりやすい。 実際のプロジェクト(差分ビューアツール)での判断過程を記録する。 一般的な切り分け基準 翻訳すべきもの ユ...

Node.js (nodenv) はビルド依存パッケージ不要 — pyenv との違い

結論 nodenv install (node-build) は プリビルドバイナリをダウンロードするだけ なので、ビルド依存パッケージは不要。 一方 pyenv install は 常にソースからコンパイルする ため、build-essential 等が必須。 pyenv の場合(ビルド依存が必要) pyenv は Python をソースからコンパイルするため、以下のようなパッケージ...

ADR(Architecture Decision Record)— 軽量なのに効果が大きい設計判断の記録手法

ADRとは ADR(Architecture Decision Record)は、プロダクトやシステムに関する重要な設計判断を1つずつ記録する簡潔な文書。通常Markdownで1ページ以内に収める。 参考: bliki-ja: ArchitectureDecisionRecord 本質的な価値は2つ 1. 「なぜこうなった?」に答えられる コードは「何をしているか」は読めるが、「な...

git-crypt でリポジトリ内の機密ファイルを透過的に暗号化する

Git リポジトリに設定ファイルをコミットしたいが、機密情報(パスワード、SSH キー、API トークンなど)が含まれている場合、git-crypt を使うと透過的に暗号化できる。 git-crypt とは git-crypt は Git リポジトリ内の特定ファイルを自動的に暗号化するツール。 commit 時: 自動的に暗号化されてリポジトリに保存 checkout 時: ...

ASGのスロットリングとALBのunhealthyの関係性

ASG(Auto Scaling Group)配下のインスタンスが複数同時に ALB ヘルスチェックに失敗した場合、ASG はそれらを同時にリプレイスするのではなく、段階的に置き換える。この挙動には「10% ルール」と「スロットリング」という2つの仕組みが関係している。 10% ルール ASG は Unhealthy インスタンスを desired capacity の 10% ずつ し...