コールバック関数の仕組みと実用例

システムプログラミングとアプリケーションプログラミングは、ソフトウェア開発における二つの主要な分野です。前者はライブラリやフレームワークを構築し、後者はそれらを利用して具体的な機能を持つプログラム(アプリ)を作成します。システム側はAPI(Application Programming Interface)を通じてアプリ側に機能を提供します。この構造では、ライブラリがアプリケーシ ...

5月20日 07:05 投稿

Guava-Retryingの基本と応用:インストールから実践まで

Guava-RetryingはGoogle Guavaライブラリを拡張し、任意のJavaメソッドに対してカスタマイズ可能なリトライロジックを提供します。特にネットワークや外部サービスの不安定な動作に対処するための強力なツールです。 Guava-Retryingとは? 外部APIやデータベース操作などでは、一時的な障害により呼び出しが失敗することがあります。Guava-Retryingを使用すると以下が可 ...

5月20日 03:00 投稿

Promiseの概要と使い方

Promise コールバックのネスト問題 複数層のコールバック関数が入れ子になっている状態を「コールバック地獄」と呼びます。以下のコードはその例です。 setTimeout(() => { // 第1層のコールバック console.log('1秒後に出力'); setTimeout(() => { // 第2層のコールバック console.log('さらに2秒後に出力'); setTimeout(() => { // 第3層のコールバ ...

5月19日 18:12 投稿

プログラミングにおける基本的な概念と用語解説

プログラミングの基礎概念 2.1 コード内のクライアントとサーバー ネットワーク通信だけでなく、コード内の相互作用にもクライアント/サーバー関係が存在します。あるオブジェクトが別のオブジェクトのメソッドを呼び出す場合、呼び出し元がクライアント、呼び出される側がサーバーとみなせます。 class Calculator { public int Add(int x, int y) { return ...

5月19日 08:45 投稿

AJAXにおける非同期処理の基本概念と応用

同期処理と非同期処理 同期処理はコードを順次実行し、結果を待ってから次の処理に進みます。非同期処理は実行後に結果を待たず、後続のコードを継続実行し、将来完了時にコールバック関数で結果を返します。 const total = 5 + 3; console.log(total); // 8 setTimeout(() => { console.log('非同期処理完了'); }, 1000); document.querySelector('#submit').addEvent ...

5月16日 21:50 投稿

RabbitMQのアーキテクチャ設計原理と実践

目次 メッセージミドルウェア概要 同期通信と非同期通信の比較 結合の緩和: 非同期による結合緩和 トラフィックスムージング: 従来のHTTPリクエストの課題: 具体例: コードデモンストレーション: 解決策: 1.マルチスレッドによるビジネスロジック処理(非同期操作の実現): 2.MQによるビジネスロジック処理(非同期操作の実現): MQの二つの実装バージョン: 1.ネ ...

5月15日 19:07 投稿

async/awaitの高度な活用方法

async/awaitと高階関数 配列内の要素に対して非同期処理を実行する必要がある場合、async/awaitとmapやfilterなどの高階関数を組み合わせることで、効率的な実装が可能になります。 // 非同期フィルター関数 async function asyncFilter(collection, predicate) { const results = await Promise.all(collection.map(predicate)); return collection.filter((_item ...

5月13日 15:29 投稿