Files
hakorune/docs/CURRENT_TASK.md

130 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🎯 現在のタスク (2025-08-11 シンプルBoxから段階的実装)
## 🚀 2025-08-11 複雑なP2PBox実装をリセット → シンプルBox段階実装開始
### 💡 **学習成果**
**複雑すぎる実装を一度に追加すると失敗することを学習!**
#### **新方針**
- **依存の少ないBox**: まずシンプルなBoxから追加
- **段階的実装**: 一つずつ確実に動作確認
- **テストファースト**: 必ず動作確認してから次へ
### 📋 **段階的実装計画(優先度順)**
#### **Phase 1: 基本型Box実装** (最優先)
##### 1. **FloatBox** - 浮動小数点数Box 📊
- **依存**: なし (f64の基本実装)
- **実装内容**:
- 基本値の保持・表示
- 四則演算メソッド
- 文字列変換
- 比較演算子
- **テスト**:
```nyash
f = new FloatBox(3.14)
print(f.add(2.86)) // 6.0
print(f.toString()) // "3.14"
```
##### 2. **ArrayBoxの改良** - 配列機能の強化 📚
- **依存**: 既存ArrayBox実装
- **追加機能**:
- sort()メソッド - 配列ソート
- reverse()メソッド - 配列反転
- indexOf()メソッド - 要素検索
- slice()メソッド - 部分配列
- **テスト**:
```nyash
arr = new ArrayBox()
arr.push(3); arr.push(1); arr.push(2)
arr.sort() // [1, 2, 3]
```
#### **Phase 2: 演算子システム** (高優先)
##### 3. **基本演算子の改良** ➕➖✖️➗
- **依存**: 既存の演算子実装
- **改良内容**:
- 型間演算の対応 (IntegerBox + FloatBox)
- 文字列 + 数値の連結
- より良いエラーメッセージ
- **テスト**:
```nyash
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<Mutex>統一完了)
- 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段階実装方針決定