らいふうっどの閑話休題

興味のあることをゆる~く書いていく

2025.11.13 覚書 / 2025.11.13 memo's

2025.11.13 覚書 / 2025.11.13 memo's

自分が参考になったブログの紹介します。 / Here are some blogs that I found helpful.

Angular

dev.to

  • Angular における新しいプルリク「Resource Composition(リソース合成)」が紹介されている。
  • 従来、Resource<T> 型から派生させたい場合、computed() を使ってマッピングする手法があったが、型的に Resource<ProjectedUser|undefined> を満たさず将来的な拡張に脆弱という指摘。
  • プルリク提案内容:「ResourceSnapshot<T>」型を定義し、Resource<T>Signal<ResourceSnapshot<T>> → 派生 → resourceFromSnapshots() によって Resource を再構成できるようにする。これによりリソースの合成が容易になる。
  • 例として「前の値を保持しながら新しい値を取得」 (withPreviousValue<T>) のようなユーティリティ関数が提示されており、ロード中も以前の値を残したまま表示するといった UX 改善が可能になる。
  • また、記事内では他のトピックも簡単に紹介されており、例えば:
    • 「Signal Forms」機能の公式ドキュメント公開。
    • rxResource の設計上の決定(例えばロード中/再ロード時の振る舞い)に関する解説リンク。
    • “ゾーンレス(zoneless)”アプリケーションにおけるエラー処理の変化、バックエンドの性能がフロントエンドに与える影響など、Angular エコシステムにおける実践的/運用的な話題も触れられている。
  • 要点としては、「非同期データ管理用の Resource API が、信号(Signals)およびスナップショットを介した派生可能な設計へと進化しつつある」という潮流が読み取れる内容です。

dev.to

  • Angular Signals(信号)を使った状態管理(state management)の刷新事例を紹介。
  • 「シグナルとは何か」「なぜ従来手法(Observables/NgRx 等)より優れているか」「どう使い始めるか」を順に解説。
  • 主なポイント:
    • Signal は「データを保持する箱」のようなもので、値を読み取った時に Angular がその参照を追跡し、変化時に UI を更新する。
    • 従来の多重 Observable、Subject、NgRx のような複雑な設定を軽減できる。
    • 実例として自身のアプリで Signals を導入した結果、可読性/保守性が向上したという著者の体験。

dev.to

  • サービスから渡された 読み取り専用(read-only)Signal を、コンポーネント内で「編集可能」にする手法を解説。
  • 主な内容:
    • 通常、サービス層で公開された Signal が readonly 型(書き換え不可)である場合、コンポーネント側で値を書き換えたい場面がある。
    • そのような状況に対して、コンポーネント内でローカルに writable なコピーを作る、参照をラップする、あるいは computed を活用するなどの方法が紹介。
    • Angular の公式ガイドでも、Signal は書き込み可能/読み取り専用を区別して設計されており、入力バインディング(@Input)から流れる Signal は原則変更不可である旨説明されている。
  • 実践的な場面で「サービスから渡された read-only をどう扱うか」の課題がある場合、参考になります。

blog.stackademic.com

  • NgRx を使っていたコンポーネントを、あえて NgRx を使わずに書き直し、さらに Signals / Signal Store による構成に移行した体験記事。
  • 主な内容:
    • 元々 NgRx で構築していたコンポーネントを、冗長性・ボイラープレートを減らすために信号ベースの仕組みに変えた。
    • 結果、ファイル数が減り(リデューサー・アクション・エフェクトなどの定義が不要になった)、構成が簡素化された。
    • ただし、完全に NgRx を不要とするには注意点もある(例えば複雑な非同期処理・大規模ストア設計など)。
  • ※ユーザーのコンテキスト(あなたが NgRx + Signals を使っておられる)にかなり近く、実践的な比較観点として有益です。

zenn.dev

  • Signal の基本概念:変化可能な値を保持し、その値が変わると自動でその値を使っている箇所(UI 等)が更新される。プリミティブにも複雑な構造体にも使える。
  • 基本的な使い方:
    • signal(initialValue) で Signal を作成。
    • テンプレート内で読み取るときは {{ count() }} のように関数呼び出しで値を得る。
    • 値の更新には .set() または .update() を用い、.update() は現在値を基に新しい値を計算する。
  • 派生 Signal(computed)の説明:
    • 他の Signal に依存し、読み取り専用。値が変わったときのみ再計算されキャッシュされる。
    • 例として、オブジェクト Signal から名前+年齢を結合した文字列を computed で取得するコードあり。
  • 副作用の監視(effect)の説明:
    • Signal の値が変化したときに任意の処理(ログ出力、再取得など)を実行可能。通常コンポーネントconstructor 内で定義。
    • 生成された EffectRef.destroy() によって明示的に破棄可能で、コンポーネント破棄時には自動破棄が推奨される。
  • よく使われる API のまとめ:
    • signal(初期値)signal()(読み取り)、signal.set()signal.update()computed()effect() など。
  • 初心者向けにコード例付きで丁寧に解説されており、Angular における Signal 利用の「入り口」として非常に分かりやすい内容です。
Develop

dev.to

  • Playwright による E2E / UI テストで「たまに失敗する」いわゆる “flaky test(不安定なテスト)” をどう修正・防止するかのガイド。
  • 概要としては:
    • flaky テストとは何か、なぜ起こるかを説明。
    • セレクタの不安定さ、タイミング依存、ネットワーク・環境変数・並列実行などによる影響。
    • 解決手段として、安定したセレクタ利用、明示的待機(auto-wait / retry / traceモード)などのベストプラクティス。

www.bleepingcomputer.com

  • Firefox バージョン 145 で、プライベートブラウジング / 強化追跡保護モード(ETP Strict)において、ユーザー識別可能な情報を大幅にマスク・ノイズ混入する仕組みを強化。
  • 結果として、これまで 60 % 以上のユーザーが識別可能だったデバイスが、「特定困難」な20 % 程度に低下したとの報告あり。
  • プライバシー保護の観点で大きな前進であると評価。
Node

dev.to

  • nvm(Node Version Manager)を使って、Windows環境で Angular と Node.js のバージョン不整合を解消する方法を紹介。
  • 主な内容:
    • Angular CLI / プロジェクトが特定の Node.js バージョンを要求することがあり、バージョンミスマッチで “ng serve” やビルドでエラーになる。
    • Windows 版 nvm(nvm-windows 等)をインストールし、プロジェクト毎に .nvmrcnvm use <version> を使う運用を解説。
    • 実際のコマンド手順、トラブルシュートの注意点(グローバル Angular CLI のバージョン / PATH設定など)も言及。

www.publickey1.jp

  • Node.js v25.2.0 において、TypeScript の型アノテーション等を事前トランスパイルなしに実行可能とする「Type Stripping」機能が安定版になったという技術解説。
  • 主な内容:
    • これまで Node.js では TypeScript を実行するには tsc でトランスパイルが必要だった。
    • Type Stripping によって、型注釈を実行時に除去し、.ts ファイルを直接実行可能な形に。これで TS で書いたコードをビルド前に動かせる。
    • ただし、enum や namespace といった TypeScript 特有の構文や、import の拡張子省略などには未対応という制限あり。
Rust

blog.rust-lang.org

  • Rust 言語のバージョン 1.91.1 リリース告知。
  • 主な更新内容(概要):バグ修正・安全性改善・既存機能の安定化。
  • Rust を使ったデスクトップ / バックエンド構築を検討されているあなたにとって、バージョン上の選定・互換性確認に役立つ情報です。

thenewstack.io

  • Debian をはじめとする主要 Linux ディストリビューションが、将来的に一部パッケージの構築に Rust を利用する方針を打ち出している記事。
  • 主なポイント:
  • あなたが Rust を使ったバックエンド API(例:actix-web)を計画されているので、この動向は将来の環境選定・運用にも関わってきそうです.

dev.to

  • Rust における並行処理 / コンカレンシー設計を、Go 開発者視点で解説した記事。
  • 主な内容:
    • Go の goroutine / channel 型の並行処理モデルと、Rust のスレッド / async / await / ownership モデルの比較。
    • Rust の「全てがコンパイル時に検証される安全性(compile-time safety)」という特徴を強調。
    • Go の読者がスムーズに Rust に移行するための思考パターン・コード例提示。
  • あなたが Rust に関心があるということで、Go からの移行 / 設計思想比較という観点で大変役立つでしょう。