Bun 53万行のZig→Rust移行、Vue 3郵便番号ライブラリほか — Web Dev Digest: 2026‑07‑12
Top 20
AI「Claude」を使って開発ツールの「Bun」の53万行のZigコードすべてをRustへ書き換え
Source: GIGAZINE | Published: 2026-07-12 17:00 JST
- Bun開発チームがランタイム本体の実装言語をZigからRustへ全面移行した事実が明らかになり、対象コード量は約53万行に及んだ
- 移行はClaudeによるAIコーディング支援を大々的に活用しており、人手のみでは数年単位を要する規模の書き換えを短期で完遂した点が焦点
- 移行の狙いはRustエコシステム(cargo/クレート・メモリ安全モデル・大規模採用実績)との整合、およびZig継続コストの圧縮にある
- 記事は「AIによる大規模移行の実運用事例」としてClaudeが53万行の言語横断書き換えに耐えたことを強調している
- Bunという広く使われるJS/TSランタイムの土台が入れ替わったため、今後の性能・依存関係・拡張API面での差分が注目される
「ないなら、作ればいい」Vue 3 + TypeScript向けの郵便番号ライブラリを作ってnpmに公開した話
Source: Qiita | Published: 2026-07-12 22:14 JST
- 日本の郵便番号処理に耐える既存Vue 3 + TypeScriptライブラリが「事実上存在しなかった」ため、著者が自作しnpmに
nihonpostとして公開した - 既存の類似ライブラリは長期未メンテか型定義が甘くVue 3のComposition APIと相性が悪い、というギャップ分析を経て自作判断に至っている
- ターゲットはVue 3 + TypeScript構成での住所フォーム実装で、郵便番号→住所補完APIとの型付きラッパを提供する設計
- Zennにも同著者名義で同題の別記事が公開されており、Vue版・記事版で相互リンクされている
- 記事は「ないなら作る」姿勢を軸に、npmで公開するまでの実務フロー(型・テスト・公開手順)を1本にまとめている
[Mastra Announce] 外部イベント連携を webhook 依存から解放する Custom Signal Providers
Source: Zenn | Published: 2026-07-12 14:25 JST
- MastraがCustom Signal Providersという新機能を発表し、外部イベント連携が従来のwebhookエンドポイント依存から解放された
- Custom Signal Providersは、長時間稼働するエージェント向けにMastraの購読・通知配信の仕組みを外部イベント源と結合する共通レイヤとして提供される
- webhookのように「公開エンドポイント+署名検証+再送設計」を各連携ごとに書かなくても、Provider側で信号をMastraに流し込める設計になっている
- 記事はMastra公式アナウンスの日本語解説記事で、想定ユースケースとしてキュー・キーバリューストア・SaaSイベント等が挙げられている
- エージェントランタイムの外部連携APIをwebhook中心からProvider抽象へ移す方針であり、既存エージェント統合のリファクタ余地が生じる
【ChatGPT Sites】CodexでWebアプリ・ゲームを直接公開可能に!AWSやCloudflareなど不要
Source: Zenn | Published: 2026-07-12 11:06 JST
- ChatGPT Codexに「ChatGPT Sites(旧Codex Sites)」機能が追加され、生成物のWebアプリやゲームをAWS/Cloudflare等の外部ホスティングを介さず直接公開できるようになった
- 6月に法人プラン向けに先行提供されていたが、直近で個人ユーザーへも展開が広がり利用可能プランが拡大した点が本記事のニュース性
- 従来必要だった「Vercel等へのデプロイ/独自ドメイン設定/ビルド設定」を挟まずに公開URLが得られるゼロ設定パスが焦点
- 記事はプランや地域、設定によって挙動が変わりうる点、および現時点で個人向けにどう見えるかを実機ベースで整理している
- 「AI生成コードのホスティング」がプラットフォーム側に取り込まれつつある動向として、Vercel/Cloudflare Pages等のホスティングとの棲み分けが今後の論点
Reactパフォーマンス最適化完全ガイド
Source: Zenn | Published: 2026-07-12 06:29 JST
- Reactでよくある「まず
React.memo/useMemo/useCallbackを全部つけとく」パターンを明確なアンチパターンと結論づけた記事 - 3つのAPIを「何をキャッシュしているか(コンポーネント自身/値/関数参照)」「何を防いでいるか」「主な適用場面」で表比較し、役割を厳密に分離している
- 実際のパフォーマンス問題が計測で確認できてから当該箇所に限って適用すべき、と原則を宣言している
- 参照等価性を作りにいくためだけの
useMemo/useCallbackは、依存配列の管理コストとメモ化オーバーヘッドで逆効果になる場面が具体例で示される - 本番アプリでのメモ化判断を「まず計測」に寄せるためのチェックリスト・ケース分けが実装レベルで整理されている
Testing Library で Unable to find role=“listitem” が発生した原因が Zod の UUID 検証だった
Source: Qiita | Published: 2026-07-12 17:33 JST
- React Testing Libraryが
role="listitem"を見つけられずテストが落ちる典型ケースの原因が、UIバグではなくZodのUUID検証にあったという実話 - APIレスポンスをZodでパースする際、モックデータのIDが厳密UUID形式でなかったため
safeParseが失敗しリスト描画に到達していなかった - Testing Libraryのメッセージだけを追うとレンダリング側を疑いがちだが、実際は「データレイヤの検証で早期return」してDOMが空という導線
- 対処として、Zodの
z.string().uuid()をテスト向けに緩めるのではなくフィクスチャ側を有効UUIDで生成する方向を採用している - Zod導入プロジェクトで頻発しやすい「本番はOK、テストだけ空表示」問題の再発防止観点をまとめている
JavaScript: garbage collectionの負荷を減らす設計
Source: Qiita | Published: 2026-07-12 23:41 JST
- V8等のGC負荷を下げるための実践パターンとして、オブジェクトのネスト構造を平坦化し、可能なら数値配列に落とすことを推奨している
- 特にホットパスでは
Array<Object>よりTypedArray(Float64Array等)が短命オブジェクト生成を大幅に減らせる、と具体的に指す - 「オブジェクト大量生成 → マイナーGC頻発 → フレームドロップ」の連鎖を、構造の見直しで断つのが基本方針
- キャンバス/シミュレーション/リアルタイム処理などGCストールが体感に直結する領域を主な対象としている
- クラス/POJO重視の一般的なJS設計とはトレードオフがあるため、適用範囲はホット領域に限定する慎重な導入が推奨されている
Zod のスキーマ定義が原因で”Type ‘unknown’ is not assignable to type ~“が発生した
Source: Qiita | Published: 2026-07-12 17:05 JST
- APIテスト中に発生した
Type 'unknown' is not assignable to type 'ItemResponseDto'エラーの原因がZodスキーマ側の型合成にあると突き止めた記録 - Zodの
z.inferから得られる型と、TypeScript側で別途宣言していたItemResponseDtoの間で構造は同じでも型ソースが分岐し推論がunknownに落ちていた - 対処はDTO型を
z.infer起点に一本化することで、スキーマ変更時の型追随を自動化する方向 - Zod × TypeScriptで頻発する「型は書けているのにテストコードだけ通らない」パターンの1例として実装差分付きで説明
- 同著者の別記事(Testing Library × Zod UUID)と対で、Zod導入時のテスト側落とし穴シリーズを形成している
【JavaScript】等価演算子 == と === の違いと使い分け
Source: Qiita | Published: 2026-07-12 22:02 JST
- 学習者向けに、
==は型変換を伴う緩やかな比較、===は型と値の両方を厳格に比較する、という定義を明確化している 0 == "0"がtrue、0 === "0"がfalseなど、暗黙型変換で挙動が食い違う典型例を最小コードで並べている- 実務での指針として「原則
===、==はnull/undefinedまとめ判定など明確な意図がある時だけ」の方針を推奨 - ESLintの
eqeqeqルールに沿った書き方の再確認としても有用な位置付け - 中身は入門的だが、コードレビューで新規メンバーへ渡す共有教材として機能する短編になっている
Next.js + MicroCMS + Stripe で作る MarkdownBook 5 【決済・購入編】
Source: Zenn | Published: 2026-07-12 14:40 JST
- 連載5巻目として、Next.js + microCMS + Stripe構成の教材販売サイトに「決済〜購入」を実装した書籍
- Stripe PaymentIntentの作成・確認、Webhook署名検証、購入履歴、購入後のコンテンツアクセス制御まで一連で扱う
- クーポン・お気に入り機能まで実装対象に含まれ、単なる決済チュートリアルより一段踏み込んだ範囲
- Webhookは署名検証と冪等処理を前提とした構成で、テスト用CLIとの連携もカバー
- Next.jsのApp Router × Stripe実装のリファレンス実装として、シリーズ全巻を通した構築手順を提供している
コーダーからフロントエンドエンジニアへ #1-8|var を避ける理由──スコープと巻き上げの落とし穴
Source: Zenn | Published: 2026-07-12 10:57 JST
- 学習連載の第8回として、新規コードで
varを使わない理由を「関数スコープと巻き上げ」に絞り込んで解説 varは宣言前アクセスがundefinedとして通ってしまう一方、let/constはTDZで参照エラーになる差分を最小例で提示- ループカウンタとクロージャの組み合わせで
varが意図しない挙動を起こす古典的な罠を再掲 - 検索で見つかる古いサンプルコードに
varが多く残っていることを前提に、既存資産を写経する時の翻訳指針を提示 - 「コーダーからフロントエンドエンジニアへ」シリーズの言語基礎パートとして位置付けられており、学習者の導線設計が明確
All Articles
Zenn
| # | Title | Summary | Author | Published |
|---|---|---|---|---|
| 1 | 仕事は AWS、個人開発は Cloudflare — AWS を触ってきた自分が、個人開発でだけ Cloudflare を選ぶ理由 | 本業でAWSを扱う筆者が、料金体系・運用の重さ・Workers中心のDX観点から個人開発だけCloudflareに寄せる根拠を整理 | @honeymarron | 13:39 |
| 2 | AWS無料枠に収める設計を、CDK Aspectで機械的に強制する | クラウド競技プラットフォームTenkaCloudの実装で、CDK Aspectを使いレビュー人力に頼らず無料枠制約をコードで固定する手法 | @bull | 18:47 |
| 3 | SBTの2プレーンに「問題デプロイ」の層を足す — TenkaCloudのマルチテナント設計 | AWSのSaaS Builder Toolkit標準の2プレーン構成に「問題環境を参加者アカウントへ配布する層」を独自追加した設計解説 | @bull | 18:47 |
| 4 | 他人のCloudFormationを安全に取り込む — inert & content-addressedな問題パック設計 | ユーザー提出のCloudFormationをinert化+コンテンツアドレス指定で扱い、サプライチェーン改ざんを弾く「問題パック」設計 | @bull | 18:47 |
| 5 | AI調査コンテンツのリッチHTMLアーカイブ戦略 | AI調査ログをMarkdownソース+配信用HTMLの二段で保管し、Cloudflare Pages等の静的ホスティングに載せる運用パターン | @らいけん | 11:23 |
| 6 | 顧客のアプリを絶対に壊さないSDKラッパーの作り方 | LLMのコスト・品質観測ツールを提供する筆者が、OpenAIクライアントをwrap()しても既存コードを壊さないラッパAPI設計を実例で解説 | @Argosvix | 20:55 |
| 7 | 品質のためのSDD - Mod.2 AIチャット | 3社LLM+画像・動画・音声入出力を持つマルチモーダルチャットモジュールを、SDDサイクルを3周回して段階実装した記録 | @Haru | 20:05 |
| 8 | Geminiの会話をChatGPTへ移行するWebアプリを作った | Geminiの長い会話スレッドをChatGPT側で継続できる形式へ変換するWebアプリを実装し、添付・書式の落ち方まで検証 | @かまぼこ | 20:05 |
| 9 | Ableton Live Extensions SDKで怖いなと思っていること | Live 12.4.5で導入されたAbleton Extensions SDKのbeta仕様を触った上で、権限モデル・配布経路など運用上の懸念点を列挙 | @Yuuichi Akagawa | 20:22 |
| 10 | Wikipediaを385件ランダム抽出して「知っている世界」を推定するサイトの設計と実装 | Wikipediaから385記事を無作為抽出し3段階自己評価で「理解度率」を算出するサイトを、AI伴走で高速プロトタイピング | @Yuta Hoshino(hsylife) | 11:36 |
Qiita
| # | Title | Summary | Author | Published |
|---|---|---|---|---|
| 1 | 複合インデックスは「辞書順」で並ぶ ─ カラム順を間違えると効かなくなる話 | CREATE INDEX ... ON cities(country, city)のようにカラム順を誤ると単独city検索がseq scanに落ちる仕組みを実例で整理 | @taitech_dev | 23:28 |
| 2 | 高価なLLMを最初から呼ばない:ローカルLLM+専門モデルのルーティングと品質エスカレーション設計 | ローカルLLM→専門モデルへ段階的にエスカレーションし、スキーマ検証と品質基準で戻り値を判定するカスケード設計 | @figueiredoluiz | 23:20 |
| 3 | 【小ネタ】Cloudflare Drop を軽く試す | Cloudflareの新機能「Drop」を公式ドキュメントとchangelogに沿って触ってみたハンズオン記録 | @youtoy | 23:51 |
| 4 | 異次元のコスパのクラウドサービス【Cloudflare】 | 個人開発・初期プロダクトの前提でAWS/GCPと比較し、Cloudflareが料金・無料枠面で優位になる範囲を筆者の実運用視点で整理 | @kazuki_kuriyama | 23:15 |
| 5 | DeployしてGithub Actionsは通過したのに、Vercel側で「Command “npm run build” exited with 1」と出力される | GitHub Actions側はgreenでもVercelビルドがexit 1で落ちるケースの原因切り分け(環境変数/バージョン差分)と対処メモ | @o68606007 | 21:32 |
| 6 | Web Componentsの「取得」と「表示」の分離を、カプセル化の観点で見直す | データ取得責務と描画責務を持たせすぎたWeb Componentsを、slotとカスタムイベントで再カプセル化する設計リファクタ | @maaaashi | 20:12 |
| 7 | 【IT業界25年目】ADHDポンコツエンジニアが人生賭けた求人サービス開発になぜ『postgreSQL』を選んだか? | 求人サービスの永続化にPostgreSQLを選んだ根拠を、MySQL/NoSQLとの比較・スキーマ進化の耐性・拡張機能面で説明 | @Veteran | 19:17 |
| 8 | Storybook のすべての Story に MUI のテーマを適用したい | Story毎にThemeProviderを書かず、Storybook側のグローバルデコレータでMUIテーマを一括注入する設定手順 | @kishimin | 18:12 |
| 9 | Server Actionsを使うなら知っておきたい NEXT_SERVER_ACTIONS_ENCRYPTION_KEY の仕組みと必要性 | Next.js Server Actionsが引数を暗号化して保存する仕組みと、複数インスタンス構成でNEXT_SERVER_ACTIONS_ENCRYPTION_KEYが必須になる理由を解説 | @tamakiiii | 13:05 |
| 10 | BaaSの選択肢:FirebaseとSupabaseの比較 | Firebase(NoSQL/Realtime寄り)とSupabase(Postgres/RLS寄り)の得意領域を、認証・DB・料金体系の3軸で比較 | @felix-jp-studio | 13:52 |
| 11 | 【Astro初心者向け】実務ですぐ使える便利Tips 5選 | 実案件で頻用するAstro小技5点(コンテンツコレクション運用・画像最適化API・環境変数取扱いなど)を実装スニペット付きで紹介 | @Sakaaaaai | 11:26 |
| 12 | Supabaseの無料枠は「1アカウント2プロジェクトまで」— Gmailの+エイリアスで乗り切った話 | Supabase無料枠のプロジェクト上限(1アカウント2件)を、Gmailの+エイリアスでアカウント分割し複数プロジェクトを運用した実例 | @tarou_0818 | 08:32 |
Publickey
2026-07-12 付の記事はありませんでした。
gihyo.jp
2026-07-12 付の記事はありませんでした。
GIGAZINE
対象日の該当記事はすべて Top 20 に掲載されています。
ITmedia News
2026-07-12 付の記事はありませんでした。
TypeScript Blog
2026-07-12 付の記事はありませんでした。
Node.js Blog
2026-07-12 付の記事はありませんでした。
Astro Blog
2026-07-12 付の記事はありませんでした。
Cloudflare Blog
2026-07-12 付の記事はありませんでした。
Vercel Changelog
2026-07-12 付の記事はありませんでした。
AWS What’s New
2026-07-12 付の記事はありませんでした。
Google Cloud Blog
2026-07-12 付の記事はありませんでした。
Supabase Blog
2026-07-12 付の記事はありませんでした。
web.dev
2026-07-12 付の記事はありませんでした。
Mozilla Hacks
2026-07-12 付の記事はありませんでした。
CSS-Tricks
2026-07-12 付の記事はありませんでした。
Smashing Magazine
2026-07-12 付の記事はありませんでした。
Hacker News
2026-07-12 付の記事はありませんでした。