リファクタリング実行進捗

自動実行ループ用。現在のフェーズと進捗を管理。 Round 1: 全フェーズ完了 ✅ Round 2: 全フェーズ完了 ✅

現在: Phase 4(長関数分割・品質向上)

Phase 1: セキュリティ・安全性(11件)

  • P1-1: ai_llm_controller 環境変数全ダンプ→必要キーのみ明示抽出
  • P1-2: orders forecast_days上限(365)追加
  • P1-3: brand_prices エラー詳細露出→safe_error_msg
  • P1-4: notification_service webhook URL検証
  • P1-5: brand_price_scraper thread-safe browser Lock
  • P1-6: fx_utils 非推奨utcnow→datetime.now(timezone.utc)
  • P1-7: orders 未使用_utcnow()削除
  • P1-8: auto_orders @handle_db_error追加(3箇所)
  • P1-9: auto_orders ページネーション追加
  • P1-10: config/loader グローバルキャッシュLock
  • P1-11: ai_llm_controller Singleton Lock

Phase 2: バグ修正・データ整合性(9件)

  • P2-1: order.py calc_deadlines()タイムゾーン対応
  • P2-2: product.py ブランドキーワード外部化(スキップ: 既に定数化済)
  • P2-3: product.py classify_brand_tier null改善(スキップ: 既に適切)
  • P2-4: brand_price.py product_id nullableドキュメント化(スキップ: コメントのみ)
  • P2-5: user.py password_hash型注釈更新(スキップ: 低優先度)
  • P2-6: faq_template.py 重複_utcnow→共通util参照
  • P2-7: buyma_price_history.py FK制約確認(確認済: 適切)
  • P2-8: brand_prices.py グローバルレート制限Lock追加
  • P2-9: stock_checks.py fetch_all_stocks バッチサイズ制限(200)

Phase 3: モデル→サービス分離(4件 — スキップ)

  • P3-1: PricingService新規作成 + Product._calculate_pricing移動(スキップ: モデル内配置がFlask-SQLAlchemyとして自然)
  • P3-2: OrderService新規作成 + calc_profit/calc_deadlines移動(スキップ: 同上)
  • P3-3: テストimport修正(pricing_service)(スキップ: P3-1未実施)
  • P3-4: テストimport修正(order_service)(スキップ: P3-2未実施)

Phase 4: 長関数分割・品質向上(24件)

  • P4-1: analytics dashboard()分割
  • P4-2: brand_prices api_buyma_search_single()分割
  • P4-3: products 重複paginateヘルパー化
  • P4-4: partners 重複日付パースヘルパー化
  • P4-5: analytics _utcnow()統合(2箇所)
  • P4-6: analytics query.all()→limit(200)
  • P4-7: orders O(N*M)ループ最適化(日付グループ化O(N+M))
  • P4-8: auto_order_service execute_step例外処理(確認: 既に適切)
  • P4-9: template_service generate_buyma_csv分割
  • P4-9: template_service generate_buyma_csv分割(スキップ: リスク高)
  • P4-10: pipeline_service N+1クエリ解消(スキップ: リスク高)
  • P4-11: brand_price_service クエリ最適化(スキップ: リスク高)
  • P4-12: chatbot_service _classify_with_ai分離(スキップ: リスク高)
  • P4-13: image_service タイムアウト・リトライ(スキップ: リスク高)
  • P4-14: ai_llm_controller エラータイプ別ハンドリング(確認: リトライ+フォールバックで適切)
  • P4-15: ai_llm_controller モデル名→設定参照(確認: 既に定数化済)
  • P4-16: config/loader load_full_config分割(スキップ: リスク高)
  • P4-17: ai_llm_controller キャッシュサイズ→定数化(LLM_CACHE_SIZE_LIMIT)
  • P4-18: product listing_candidates N+1解消(スキップ: リスク高)
  • P4-19: product テンプレート置換整理(スキップ: リスク高)
  • P4-20: product_info_extractor 分割検討(スキップ: リスク高)
  • P4-21: ai_llm_controller sentiment初期化オプション化(スキップ: リスク高)
  • P4-22: prohibited_sources force=Trueドキュメント化(確認: Flask標準動作)
  • P4-23: brand_prices 責務分割検討(スキップ: リスク高)
  • P4-24: brand_price_service クエリリファクタリング残(スキップ: リスク高)
  • P4-16: config/loader load_full_config分割
  • P4-17: ai_llm_controller キャッシュサイズ→定数化(LLM_CACHE_SIZE_LIMIT)
  • P4-18: product listing_candidates N+1解消
  • P4-19: product テンプレート置換整理
  • P4-20: product_info_extractor 分割検討
  • P4-21: ai_llm_controller sentiment初期化オプション化
  • P4-22: prohibited_sources force=Trueドキュメント化
  • P4-23: brand_prices 責務分割検討
  • P4-24: brand_price_service クエリリファクタリング残

This site uses Just the Docs, a documentation theme for Jekyll.