Python JavaScript | プログラミングの繰り返し処理でマジックナンバーを避ける方法

JavaScript
スポンサーリンク

業務システム特化シナリオとベストプラクティス例

ECサイトや社内管理システムで「繰り返し処理にマジックナンバーを避ける」具体例を Python と JavaScript で示します。


1. ECサイト:注文処理のバッチ分割

大量注文を一度に処理せず、一定件数ごとに分割。

Python

ORDERS_PER_BATCH = 50  # 1バッチで処理する注文数
orders = fetch_orders()

for start in range(0, len(orders), ORDERS_PER_BATCH):
    batch = orders[start:start + ORDERS_PER_BATCH]
    process_orders(batch)
Python

JavaScript

const ORDERS_PER_BATCH = 50; // 1バッチで処理する注文数
const orders = fetchOrders();

for (let start = 0; start < orders.length; start += ORDERS_PER_BATCH) {
  const batch = orders.slice(start, start + ORDERS_PER_BATCH);
  processOrders(batch);
}
JavaScript

2. 在庫管理:閾値チェック

在庫が一定数を下回ったら補充アラート。

Python

LOW_STOCK_THRESHOLD = 20  # 在庫が20未満なら補充
products = get_products()

for product in products:
    if product.stock < LOW_STOCK_THRESHOLD:
        send_restock_alert(product)
Python

JavaScript

const LOW_STOCK_THRESHOLD = 20; // 在庫が20未満なら補充
const products = getProducts();

for (const product of products) {
  if (product.stock < LOW_STOCK_THRESHOLD) {
    sendRestockAlert(product);
  }
}
JavaScript

3. 社内勤怠管理:遅刻判定

出勤時刻が規定時間を超えたら「遅刻」と判定。

Python

WORK_START_HOUR = 9  # 始業時間 9時
employees = get_attendance_records()

for emp in employees:
    if emp.check_in.hour > WORK_START_HOUR:
        mark_late(emp)
Python

JavaScript

const WORK_START_HOUR = 9; // 始業時間 9時
const employees = getAttendanceRecords();

for (const emp of employees) {
  if (emp.checkIn.getHours() > WORK_START_HOUR) {
    markLate(emp);
  }
}
JavaScript

4. ECサイト:ページネーション

商品一覧を「1ページあたりの表示件数」で分割。

Python

ITEMS_PER_PAGE = 30  # 1ページの商品数
items = fetch_items()

for page in range(0, len(items), ITEMS_PER_PAGE):
    show_page(items[page:page + ITEMS_PER_PAGE])
Python

JavaScript

const ITEMS_PER_PAGE = 30; // 1ページの商品数
const items = fetchItems();

for (let page = 0; page < items.length; page += ITEMS_PER_PAGE) {
  showPage(items.slice(page, page + ITEMS_PER_PAGE));
}
JavaScript

5. 社内システム:定期レポート生成

一定間隔でレポートを作成・送信。

Python

REPORT_INTERVAL_SEC = 3600  # 1時間ごと
MAX_REPORTS = 5

for _ in range(MAX_REPORTS):
    generate_report()
    time.sleep(REPORT_INTERVAL_SEC)
Python

JavaScript

const REPORT_INTERVAL_MS = 3600 * 1000; // 1時間ごと
const MAX_REPORTS = 5;

let count = 0;
const intervalId = setInterval(() => {
  generateReport();
  count++;
  if (count >= MAX_REPORTS) {
    clearInterval(intervalId);
  }
}, REPORT_INTERVAL_MS);
JavaScript

✅ まとめ

  • 定数化で意味を明示ORDERS_PER_BATCH, LOW_STOCK_THRESHOLD, WORK_START_HOUR)。
  • 業務要件に直結する名前を付けることで、コードを読む人が意図を理解しやすい。
  • 単位を含める命名SEC, MS, PAGE)で誤解を防ぐ。

👉 これらは ECサイト(注文処理・商品一覧)社内管理システム(在庫・勤怠・レポート) に特化した例です。

タイトルとURLをコピーしました