実務でよく使うシナリオとベストプラクティス例
ここでは「業務システムやWebアプリ開発でよく遭遇する繰り返し処理」を題材に、Python と JavaScript のコード例を示します。すべて「マジックナンバーを避ける」工夫を取り入れています。
1. CSVファイルをバッチ処理する
大量データを一度に処理せず、一定件数ごとに分割する。
Python
import csv
BATCH_SIZE = 100 # 1回の処理件数
with open("users.csv", newline="") as f:
reader = list(csv.reader(f))
for start in range(0, len(reader), BATCH_SIZE):
batch = reader[start:start + BATCH_SIZE]
process_batch(batch)
PythonJavaScript
const BATCH_SIZE = 100; // 1回の処理件数
const rows = loadCsv("users.csv");
for (let start = 0; start < rows.length; start += BATCH_SIZE) {
const batch = rows.slice(start, start + BATCH_SIZE);
processBatch(batch);
}
JavaScript2. APIリトライ処理
ネットワークが不安定なときに、一定回数まで再試行する。
Python
MAX_RETRY = 5
TIMEOUT_SEC = 10
for attempt in range(MAX_RETRY):
if call_api(timeout=TIMEOUT_SEC):
print("成功")
break
PythonJavaScript
const MAX_RETRY = 5;
const TIMEOUT_SEC = 10;
for (let attempt = 0; attempt < MAX_RETRY; attempt++) {
if (callApi(TIMEOUT_SEC)) {
console.log("成功");
break;
}
}
JavaScript3. ログ監視で閾値チェック
エラーログが一定件数を超えたら通知する。
Python
ALERT_THRESHOLD = 50
error_logs = get_error_logs()
for log in error_logs:
if log.level == "ERROR":
error_count += 1
if error_count > ALERT_THRESHOLD:
send_alert(error_count)
break
PythonJavaScript
const ALERT_THRESHOLD = 50;
const errorLogs = getErrorLogs();
let errorCount = 0;
for (const log of errorLogs) {
if (log.level === "ERROR") {
errorCount++;
if (errorCount > ALERT_THRESHOLD) {
sendAlert(errorCount);
break;
}
}
}
JavaScript4. ページネーション処理
Web画面で「1ページあたりの表示件数」を決めて繰り返す。
Python
ITEMS_PER_PAGE = 20
items = fetch_items()
for page in range(0, len(items), ITEMS_PER_PAGE):
show_page(items[page:page + ITEMS_PER_PAGE])
PythonJavaScript
const ITEMS_PER_PAGE = 20;
const items = fetchItems();
for (let page = 0; page < items.length; page += ITEMS_PER_PAGE) {
showPage(items.slice(page, page + ITEMS_PER_PAGE));
}
JavaScript5. 定期ジョブ(スケジューリング)
一定間隔で処理を繰り返す。
Python
INTERVAL_SEC = 60 # 1分ごと
for _ in range(10): # 10回だけ実行
run_job()
time.sleep(INTERVAL_SEC)
PythonJavaScript
const INTERVAL_MS = 60 * 1000; // 1分ごと
let count = 0;
const MAX_RUNS = 10;
const intervalId = setInterval(() => {
runJob();
count++;
if (count >= MAX_RUNS) {
clearInterval(intervalId);
}
}, INTERVAL_MS);
JavaScript✅ ポイントまとめ
- 定数化(
MAX_RETRY,BATCH_SIZE,ITEMS_PER_PAGE)で数字の意味を明示。 - データの長さを参照して固定値を避ける。
- 単位を名前に含める(
SEC,MS,PAGE)ことで誤解を防ぐ。
👉 これらは「CSV処理」「API呼び出し」「ログ監視」「ページネーション」「定期ジョブ」といった、実務で頻出するシナリオです。


