このテキストは、コールバック重いコードによるパフォーマンスボトルネックを解消するために、Node.jsの注文処理サービスをasync/awaitに移行することを議論しています。async/awaitは、非同期コードを同期的に見せることでコードの読みやすさとエラーハンドリングを改善し、Node.jsのシングルスレッド環境では特に重要です。APIハンドラー、キュー処理、スケジュールタスク、データベーストランザクションなどのユースケースを詳細に説明し、Express.jsとPostgreSQLを使用したREST APIの例を提供しています。システムアーキテクチャーは、マイクロサービスをKubernetesでオーケストレーションし、gRPC/RESTを使用して通信し、メッセージキューを使用して非同期タスクを実行し、ロードバランサーを使用してトラフィックを分配しています。ベンチマークングでは、移行後のレスポンス時間と1秒あたりのリクエスト数が改善したことがわかり、イベントループのブロッキングの減少によるものと考えられます。セキュリティーのベストプラクティスとして、入力の検証、エラーハンドリング、レートリミッティング、認証が強調されています。CI/CDパイプラインには、linting、テスト、ビルド、docker化、デプロイの各ステージが含まれており、監視にはpino、prom-client、OpenTelemetryを使用してログ、メトリクス、トレースを実現しています。テストには、ユニットテスト、インテグレーションテスト、エンドツーエンドテストが含まれており、外部API呼び出しをモックし、失敗をシミュレートしています。忘れたawait、ループでのawaitの使用、プロミスの拒否の無視などの一般的な落とし穴と、Promise.allの使用、エラーハンドリングの集中化、包括的なテストのベストプラクティスが強調されています。
dev.to
NodeJS Fundamentals: async/await
Create attached notes ...
