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

JavaScript
スポンサーリンク

ここでは 「繰り返し処理でマジックナンバーを避ける」 をテーマに、PythonとJavaScriptで 5つの具体的な課題 を設定し、それぞれのベストプラクティスのコード例を示します。


課題一覧

  1. リトライ処理(API呼び出し)
  2. ページ分割処理(バッチサイズ)
  3. 配列の全要素処理
  4. 時間単位の繰り返し(秒・分)
  5. 閾値チェック付きループ

1. リトライ処理(API呼び出し)

Python

MAX_RETRY = 3  # 最大リトライ回数

for attempt in range(MAX_RETRY):
    success = call_api()
    if success:
        print("成功")
        break
Python

JavaScript

const MAX_RETRY = 3; // 最大リトライ回数

for (let attempt = 0; attempt < MAX_RETRY; attempt++) {
  const success = callApi();
  if (success) {
    console.log("成功");
    break;
  }
}
JavaScript

2. ページ分割処理(バッチサイズ)

Python

PAGE_SIZE = 50  # 1ページあたりの件数
items = fetch_items()

for start in range(0, len(items), PAGE_SIZE):
    batch = items[start:start + PAGE_SIZE]
    process_batch(batch)
Python

JavaScript

const PAGE_SIZE = 50; // 1ページあたりの件数
const items = fetchItems();

for (let start = 0; start < items.length; start += PAGE_SIZE) {
  const batch = items.slice(start, start + PAGE_SIZE);
  processBatch(batch);
}
JavaScript

3. 配列の全要素処理

Python

users = get_users()

# マジックナンバーを避けるために len(users) を使用
for i in range(len(users)):
    process(users[i])

# さらに良い: for-in で直接要素を扱う
for user in users:
    process(user)
Python

JavaScript

const users = getUsers();

// lengthを使う
for (let i = 0; i < users.length; i++) {
  process(users[i]);
}

// さらに良い: for...of
for (const user of users) {
  process(user);
}
JavaScript

4. 時間単位の繰り返し(秒・分)

Python

SECONDS_PER_MINUTE = 60  # 1分 = 60秒

for second in range(SECONDS_PER_MINUTE):
    tick(second)
Python

JavaScript

const SECONDS_PER_MINUTE = 60; // 1分 = 60秒

for (let second = 0; second < SECONDS_PER_MINUTE; second++) {
  tick(second);
}
JavaScript

5. 閾値チェック付きループ

Python

ALERT_THRESHOLD = 80  # 警告を出す閾値
scores = [72, 85, 90, 60]

for score in scores:
    if score > ALERT_THRESHOLD:
        print("警告:", score)
Python

JavaScript

const ALERT_THRESHOLD = 80; // 警告を出す閾値
const scores = [72, 85, 90, 60];

for (const score of scores) {
  if (score > ALERT_THRESHOLD) {
    console.log("警告:", score);
  }
}
JavaScript

✅ まとめ

  • 定数化MAX_RETRY, PAGE_SIZE, SECONDS_PER_MINUTE など)で「数字の意味」を明示する。
  • データの長さを参照len(items), items.length)して固定値を避ける。
  • for-in / for-of を使うと「意図が明確」になり、マジックナンバーを減らせる。

👉 これらの課題は「初心者がよく遭遇する場面」を想定しました。
もし「もっと実務的な課題(例: CSV処理やログ監視)」に合わせた例が欲しいなら、その方向でさらに展開できます。

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