更新

画面はサーバーから来る — そして誰が押していいのか

著者: makemind · 2026年7月10日

7月第二週。今週の三編は一本の線でつながる — 画面は外から来て、権限は中で止める。

今週の Signal

画面が配送される。画面はサーバーから届く」はクライアントに UI のコードを一行も置かない。サーバーが定義を出し、ランタイムが描く。定義を直せば再ビルドも再インストールも無しに次の接続で変わる。

ボタンを隠すのはセキュリティではない。誰がこれを押していいのか」は権限を画面ではなく 道具の側 に置く。画面でボタンを隠すのは礼儀で、実際に止めるのは道具が拒むことだ。画面は JSON で、JSON はデプロイのたびに変わる — 最後に受け止めるのは常にサーバーでなければならない。

言葉ではなく数字で返した。画面の層だけが融ける」は創刊号と2月の二つのビジョン記事をひとつに合わせ、当時測らずに書いた数字を全部実測に置き換えた。画面定義は本当に小さいのか — 656 バイト。修正は本当に即座に届くのか — 83 ミリ秒、ビルド 0 回

道具・パッケージのメモ

リソースを登録する順序に罠がひとつある。クライアントが問い合わせられるものは、ハードウェアやスキャンの応答に依存してはならない。 画面リソースを機器スキャンの後に登録すると、その往復の間に繋いだクライアントが Resource not found を受け取る。ハードウェアが速ければ通り、遅ければ失敗する — いちばん捕まえたくない種類の欠陥だ。登録を先に(同期)、接続、そのあとスキャン。

短い考え

「画面はサーバーがくれる」という文は楽そうに見えて、責任を移す。画面がクライアントの外に出た瞬間、何を画面に載せるかが、そのまま何を許すかになる。 だから今週の二編目が必要だった。定義を出す側は、同時に拒むことができねばならない。

来週

二重に予約が入る問題、再試行が生む重複、そしてドメインの判断が通訳なしに規則になる場所へ行く。


makemind.dev 「更新」— 週に一度、その週に何が上がり、作りながら何に引っかかったか。

Twitter