2025.08.29 覚書 / 2025.08.29 memo's
自分が参考になったブログの紹介します。 / Here are some blogs that I found helpful.
Angular
- 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 テストキットに
getHarnessAtIndex・countHarnesses・ラベルフィルタ対応が追加。 - 品質・便利機能:Mat Menuのコンテキストメニュー化、NgComponentOutletにおけるEnvironmentInjector指定の柔軟性向上。
- Angular Signalsはプリミティブな値には問題ないが、オブジェクトや配列を mutate(破壊的変更)してもリアクティビティが発火しない。
- 原因:Signalは参照(reference)監視であり、内部構造の変更では変更を検知できない。新しい参照での更新が必須。
対応例:
- NG例:
mySignal().push()→ 更新されない。 - OK例:スプレッド演算子で新配列を生成し
mySignal.set(newArray)→ リアクティビティ更新される。
- NG例:
-
effect()で値が反応するか確認===やObject.is()で参照変化を検証- 状態を mutateせず、常に新しいオブジェクト/配列を生成
structuredClone()やスプレッド演算子で不変性を保つcomputed()を活用して派生状態を管理
Signal Store:Angular Signalsを活用した状態管理。
- 利点:最小限の冗長性、RxJSベースよりパフォーマンスや導入が容易、型安全。
@ngrx/signalsにより NgRx のパターンと統合可能で、小規模グローバル/コンポーネントローカル状態に最適。
Nx Workspace:
- モノリポ構造が容易に実現でき、ビルド・テストのインクリメンタル処理、コード生成支援などの機能あり。
- Angular用プラグイン(
@nrwl/angular)の導入で最適化。
Develop
- 周りと比べない、自分の昨日と比べる:他人との比較は無意味。過去の自分と成長を比べ、自信をつけよう。
- 不合格の経験は価値あるもの:悔しさは努力の証。不合格の積み重ねこそ、記憶に残りやすく意義ある勉強経験に。([tech.nri-net.com][7])
- 努力できること自体が才能:「効率的じゃない自分」を責めないで。努力を続けられる特性こそ、才能であると自覚しよう。
HTTP
- HTTPはAPIで最も一般的に使われるプロトコルだが、万能ではなく状況に応じて適切なプロトコル選択が重要。
- HTTPは「リクエスト-レスポンス型」で、ステートレス設計やヘッダーによるテキスト通信、
GETやPOSTなどの標準メソッドを持つ。 - HTTPSは通信の暗号化機能を追加し、認証や個人情報のやりとりなどセキュリティが必須な場合に不可欠。
- リアルタイム通信が必要な場合はWebSocketsを利用。双方向通信や接続維持が効率的に行える(例:チャット、ライブ更新など)。
- メッセージ保証や複雑なルーティングが必要な場合はAMQPが適しており、RabbitMQやAzure Service Busなどで活用される。
- gRPCは高速で低オーバーヘッドなバイナリ通信が可能なRPCフレームワーク。
- HTTP/2ベースでProtocol Buffersによる効率的なデータ伝送とストリーミングをサポートし、マイクロサービス間通信で特に有効。
- 用途別の推奨プロトコル選択:
Node
- nodejsがどうtypescriptを処理しているかのフローを解説したスライド
Web