Files
hakorune/docs/CURRENT_TASK.md

3.8 KiB
Raw Blame History

🎯 現在のタスク (2025-08-11 シンプルBoxから段階的実装)

🚀 2025-08-11 複雑なP2PBox実装をリセット → シンプルBox段階実装開始

💡 学習成果

複雑すぎる実装を一度に追加すると失敗することを学習!

新方針

  • 依存の少ないBox: まずシンプルなBoxから追加
  • 段階的実装: 一つずつ確実に動作確認
  • テストファースト: 必ず動作確認してから次へ

📋 段階的実装計画(優先度順)

Phase 1: 基本型Box実装 (最優先)

1. FloatBox - 浮動小数点数Box 📊
  • 依存: なし (f64の基本実装)
  • 実装内容:
    • 基本値の保持・表示
    • 四則演算メソッド
    • 文字列変換
    • 比較演算子
  • テスト:
    f = new FloatBox(3.14)
    print(f.add(2.86))  // 6.0
    print(f.toString()) // "3.14"
    
2. ArrayBoxの改良 - 配列機能の強化 📚
  • 依存: 既存ArrayBox実装
  • 追加機能:
    • sort()メソッド - 配列ソート
    • reverse()メソッド - 配列反転
    • indexOf()メソッド - 要素検索
    • slice()メソッド - 部分配列
  • テスト:
    arr = new ArrayBox()
    arr.push(3); arr.push(1); arr.push(2)
    arr.sort()  // [1, 2, 3]
    

Phase 2: 演算子システム (高優先)

3. 基本演算子の改良 ✖️
  • 依存: 既存の演算子実装
  • 改良内容:
    • 型間演算の対応 (IntegerBox + FloatBox)
    • 文字列 + 数値の連結
    • より良いエラーメッセージ
  • テスト:
    print(42 + 3.14)     // 45.14 (型変換)
    print("Value: " + 42) // "Value: 42"
    
4. 比較演算子の完全実装 🔍
  • 実装内容:
    • ==, !=, <, >, <=, >= の完全対応
    • 型間比較のサポート
    • null比較の正しい動作
  • テスト: 全ての型の組み合わせテスト

Phase 3: ユーティリティBox (中優先)

5. DateTimeBox - 日時操作 📅
  • 依存: chrono crate (既存)
  • 機能:
    • 現在時刻の取得
    • 日時の計算・比較
    • フォーマット変換
  • テスト: 日時計算、文字列変換
6. FileBox - ファイル操作 📁
  • 依存: std::fs
  • 機能:
    • ファイル読み書き
    • 存在確認
    • ディレクトリ操作
  • テスト: 基本的なファイル操作

🎯 今週の実装目標

今日 (2025-08-11): FloatBox実装

  1. FloatBox構造体作成
  2. 基本メソッド実装 (add, sub, mul, div)
  3. Nyashからの使用テスト
  4. インタープリター統合

明日: ArrayBox改良

  1. sort()メソッド実装
  2. reverse()メソッド実装
  3. テストスクリプト作成・動作確認

明後日: 演算子改良

  1. 型間演算の実装
  2. エラーハンドリング改善
  3. 包括的テスト

📊 実装ステータス

実装済み (Arc統一完了)

  • StringBox, IntegerBox, BoolBox, NullBox
  • ConsoleBox, MathBox, TimeBox, MapBox
  • DebugBox, RandomBox, ArrayBox (基本)
  • BufferBox, RegexBox, JSONBox, StreamBox

🚧 今回追加予定

  • FloatBox (今日)
  • ArrayBox改良 (明日)
  • 演算子改良 (明後日)

📋 将来実装予定

  • DateTimeBox, FileBox
  • より複雑なBox (P2PBox等)

💭 重要な原則

  1. 一つずつ確実に: 1つのBoxを完全に実装してから次へ
  2. テストファースト: 必ずNyashスクリプトで動作確認
  3. 段階的複雑化: シンプルから複雑へ
  4. ビルド確認: 毎回cargo buildで確認
  5. 依存関係注意: 複雑な依存は後回し

この方針で、確実で安定した実装を進めていきます!


最終更新: 2025-08-11 - シンプルBox段階実装方針決定