myzkey
ソフトウェア開発、設計、読書、個人開発について、考えたことを静かに残すための場所です。
Trunk-Based Developmentとは何か。GitFlowとの違いやCI/CDとの関係を考える
Gitで開発していると、ブランチをどう切るかという話には必ず行き当たる。GitFlow、GitHub Flow、Feature Branch。流派はいくつもあるが、その中に「TrunkBase...
CSSフレームワークを実装詳細にする。特定技術に依存しないUIコンポーネント設計
僕はアプリケーションのコードから、特定のCSSフレームワークを直接使わないようにしている。FeatureやPageにTailwind CSSのclassNameは書かない。間に自前の型付きUI...
React + i18nextで型安全に多言語対応を進めた話
Reactで作っているWebアプリケーションに、多言語対応を入れることになった。
LatencyとThroughputの違い
システムの性能を話題にすると、LatencyとThroughputという二つの言葉がまず出てくる。どちらも「速さ」にまつわる言葉なので、最初のうちは混同しがちだ。かくいう僕も、長らく同じ意味だ...
CI/CDとは何か。なぜこの仕組みが生まれたのかから整理する
開発をしていると、「CI/CD」という言葉には毎日のように出くわす。GitHub Actionsでテストを回す。mainにマージしたら、本番環境へ自動でデプロイする。そういう仕組みをひっくるめ...
なぜ MySQL は 3306 で、PostgreSQL は 5432 なのか調べてみた
MySQL を立ち上げると 3306、PostgreSQL を立ち上げると 5432。普段はなんとなく受け入れている数字だが、ふと、誰がどう決めたのだろうと気になった。80 や 443 のよう...
RLSは悪用されているのか
Supabaseを使っていると、Row Level Security、いわゆるRLSを避けて通れない。テーブルを作ってクライアントから読もうとすると、ほぼ例外なく「RLS policyを書こう...
TypeScriptの import type と実行時依存について整理する
TypeScriptの import type を、僕は長らく「型だけimportするやつ」と雑に理解していた。ところが、これは単なる書き方の違いではない。コンパイル後のJavaScriptに...
アンチコラプションレイヤー is 何
外部APIやレガシーシステムと連携していると、最初はただのAPI呼び出しだったはずのコードが、いつの間にか妙に込み入ってくる。たとえば次のようなコードだ。