らいふうっどの閑話休題

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

2025.08.29 覚書 / 2025.08.29 memo's

2025.08.29 覚書 / 2025.08.29 memo's

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

Angular

blog.angular.dev

  • Angular v20.1・v20.2で多くの改善・新機能を提供し、開発者体験や生産性の向上を推進。
  • **Zoneless API(ゾーン不要のChange Detection)**がAngular v20.2で安定化し、本番環境での利用が可能に。提供は provideZonelessChangeDetection() により実現。
  • animate.enter / animate.leave プリミティブの導入により、ネイティブCSSアニメーションの利用が容易に。従来の @angular/animations パッケージは廃止予定。
  • AI対応強化:Angular & AI 向けガイド、Genkit・Firebase AI Logic・Gemini APIなどの活用例、IDE統合(WebStorm等)や評価ツールなどを整備。([Angular Blog][2])
  • Angular MCP(Model‑Controller‑Provider)サーバーを公開。LLM向けのドキュメント検索、ベストプラクティス抽出、プロジェクトメタ取得等をサポート。
  • Angular DevToolsの改善:ルートの可視化、Signalsグラフ表示、シグナルノードの詳細確認機能が追加。
  • テストの改善:TestBed.createComponentでバインディングオブジェクトを直接渡せるようになり、Wrapperコンポーネントが不要に。
  • コミュニティ寄与:Component Harness テストキットに getHarnessAtIndexcountHarnesses・ラベルフィルタ対応が追加。
  • 品質・便利機能:Mat Menuのコンテキストメニュー化、NgComponentOutletにおけるEnvironmentInjector指定の柔軟性向上。

learnwithawais.medium.com

  • Angular Signalsはプリミティブな値には問題ないが、オブジェクトや配列を mutate(破壊的変更)してもリアクティビティが発火しない
  • 原因:Signalは参照(reference)監視であり、内部構造の変更では変更を検知できない。新しい参照での更新が必須。
  • 対応例

    • NG例:mySignal().push() → 更新されない。
    • OK例:スプレッド演算子で新配列を生成し mySignal.set(newArray) → リアクティビティ更新される。
  • デバッグ&ベストプラクティス

    1. effect() で値が反応するか確認
    2. ===Object.is()で参照変化を検証
    3. 状態を mutateせず、常に新しいオブジェクト/配列を生成
    4. structuredClone() やスプレッド演算子で不変性を保つ
    5. computed() を活用して派生状態を管理

javascript.plainenglish.io

  • Signal Store:Angular Signalsを活用した状態管理。

    • 利点:最小限の冗長性、RxJSベースよりパフォーマンスや導入が容易、型安全。
    • @ngrx/signals により NgRx のパターンと統合可能で、小規模グローバル/コンポーネントローカル状態に最適。
  • Nx Workspace

    • モノリポ構造が容易に実現でき、ビルド・テストのインクリメンタル処理、コード生成支援などの機能あり。
    • Angular用プラグイン@nrwl/angular)の導入で最適化。
Develop

tech.nri-net.com

  • 周りと比べない、自分の昨日と比べる:他人との比較は無意味。過去の自分と成長を比べ、自信をつけよう。
  • 不合格の経験は価値あるもの:悔しさは努力の証。不合格の積み重ねこそ、記憶に残りやすく意義ある勉強経験に。([tech.nri-net.com][7])
  • 努力できること自体が才能:「効率的じゃない自分」を責めないで。努力を続けられる特性こそ、才能であると自覚しよう。
HTTP

javarevisited.substack.com

  • HTTPはAPIで最も一般的に使われるプロトコルだが、万能ではなく状況に応じて適切なプロトコル選択が重要。
  • HTTPは「リクエスト-レスポンス型」で、ステートレス設計やヘッダーによるテキスト通信、GETPOSTなどの標準メソッドを持つ。
  • HTTPSは通信の暗号化機能を追加し、認証や個人情報のやりとりなどセキュリティが必須な場合に不可欠。
  • リアルタイム通信が必要な場合はWebSocketsを利用。双方向通信や接続維持が効率的に行える(例:チャット、ライブ更新など)。
  • メッセージ保証や複雑なルーティングが必要な場合はAMQPが適しており、RabbitMQやAzure Service Busなどで活用される。
  • gRPCは高速で低オーバーヘッドなバイナリ通信が可能なRPCフレームワーク
  • HTTP/2ベースでProtocol Buffersによる効率的なデータ伝送とストリーミングをサポートし、マイクロサービス間通信で特に有効。
  • 用途別の推奨プロトコル選択:
    • 単純なリクエスト-レスポンス → HTTP/HTTPS
    • リアルタイム性 → WebSockets
    • 省電力やIoT → MQTT
    • 配信保証や複雑なワークフロー → AMQP
    • 内部サービス間の高速通信 → gRPC。
Node

docs.google.com

  • nodejsがどうtypescriptを処理しているかのフローを解説したスライド
Web

web.dev

  • 安定版対応状況

  • API対応

    • URL Pattern APIFirefox 142に導入。Chromeも既対応、Safari 26ベータにも搭載中
    • Scheduler API 系(TaskController 等)Firefox 142でサポート、Chromeでも scheduler.yield() に対応し、長いタスクの分割が可能に
  • CSS関連の新機能

    • Chrome 139:corner-shape プロパティで角の形状を自在にコントロール
    • CSS カスタム関数 (@function) による動的プロパティ生成が可能に
  • ダイアログの閉鎖制御

    • requestClose() 関数によるキャンセルイベントの発火が追加。ダイアログの閉じる制御が強化
  • ベータ版ブラウザFirefox 143/Chrome 140/Safari 26ベータに新機能のプレビュー実装あり。例:::details-content 疑似要素、text-autospace(CJK国際化機能)、ToggleEventの source 属性、font-variation-settings、WebGPU更新など