ブログ · 7 ページ目
開発とデザイン、あとは雑記。
big O の誤用:定数と前提が次数より結果を決めることが多い
O(n log n) の整列が O(n²) の挿入整列に負けることも、O(1) のハッシュ探索が配列の線形走査に負けることもあります。入力規模・定数・メモリ局所性を先に確認します。
@layer で CSS の優先順位を「詳細度競争」から「順序の宣言」へ
スタイルが崩壊するのは詳細度を足して解決するからです。カスケード層は順序を明示します。層の間は順序のみ、層の内部では従来どおり詳細度で決まります。
デバウンスとスロットル:違いは「誰が実行時刻を決めるか」だけ
どちらも実行頻度を制限します。デバウンスは最後の呼び出しが、スロットルは固定の時間窓が時刻を決めます。選び間違えると、ドラッグが離した時だけ更新されたり、入力中に 200ms ごとに送信したりします。
工数見積もり:なぜ「だいたい三日」が三週間になるのか
見積もったのはコーディング時間で、約束したのは実装+結合+レビュー+手戻り+待ち時間です。不確かな部分を明示する方が、日数を二倍するより効きます。
フィーチャーフラグ:設定ではなく負債である
フラグは到達可能なコード経路を倍にし、そして自動では消えません。精巧な仕組みを作るより、各フラグに削除日を決める方がはるかに重要です。
ゲームループ:なぜ delta time が必須なのか
毎フレーム 5 ピクセル動かすと、60Hz では正常でも 144Hz では 2.5 倍速くなります。経過時間を掛けて物理をリフレッシュレートから切り離し、さらに上限を設けます。
