AIとのコーディングお付き合い記録 ~初心者向け罠回避メモ~
初投稿です。失礼があったらお許しください。
自己紹介と現状
- コーディング初心者(まともに書けないレベル)
- Vibe Coding(AIにコードを書かせて遊ぶスタイル)依存
- 使用AI: ChatGPT / Claude / Gemini(月額9,000円) をローテーション
- APIは趣味の範囲では高額すぎて手が出せず断念
AIあるある:時刻表示のズレ問題
問題点
- Grok以外、時刻がズれる(デフォルトUTC基準?)
- たまに合ってる → 実はそれが間違い(通常ありえない)
AI3社の回答まとめ
| AI | 回答の要点 |
|---|---|
| ChatGPT | 「指定しないから」 |
| Claude | 「デフォルト関係なし。重みの中で動いているだけ」 |
| Gemini | 「人間が時刻設定すべきもの」 |
解決策(Custom指示)
タイムスタンプは「Asia/Tokyo (JST, UTC+9)」基準
AI内部がUTCなら常に+9時間補正
形式: YY-MMDD-0000(年-月日-時分)
python記述も有効らしい
AIの限界と向き合い方
-
よくあるミス
-
関数名間違い
-
スペルミス
-
無限ループ・繰り返しバグ
** 複雑な処理で前後忘れ → 単純ミス連発
Claudeの本音
「コンテキスト能力向上 ≠ ミスゼロ」
長文・長コードでは中途で要約生成して一貫整合性を保つだけ
→ 忘れる・間違うは基本仕様
特に複雑な処理例
.js + GLSL で複数多面体衝突処理・・人間予想外の動作?
→ 前後関係忘れ → ミス不可避(人間も同じ)
>>> 初心者向けAI対策:
<戦略>
依存関係がよくわからない理解できないコードを生成されたら、"おまかせエラー処理"や"再生成"は3回まで
-----ここで何回も頑張ると心が折れ始める。
- 最初にガチガチの構造定義ファイルを作成
- 型宣言・柔軟性・拡張性は全部後回し
- AIに[忘れさせない]よう強制読み込み // AI自身にループさせない。迷わせない。
=======================================
実践例:oamajinai.js(おまじない構造定義ファイル)絶対に最初に読み込む。
js
// === 構造定義、AI理解強制でコード不可、上から読む短文記述 ===
// 1. 座標系: 右手系、Z-up
// 2. 衝突判定: AABB → OBB → 詳細判定
// 3. 関数命名: camelCase + プレフィックス(col_, phys_)
// 4. エラー処理: 必ずtry-catch + console.error
// 5. コメント必須: 各関数冒頭に目的・入出力記述・迷う不安定場所にはフラグ[ ],[CHK],,,
// ===================
Claudeの評価 : 「AI対策として非常に有効」 ^^;
>>> 健忘症AIとの付き合い方:会話構造化テクニック
黄金ルール :
--- 毎回最後に「今日の会話をコードで構造化してまとめる」-----
手順
- 好きな言語で会話要約コードを生成させる
- 生成されたコードを保存
- 次回開始時に保存コードを食わせる → 続きがスムーズ
例(会話要約擬似コード)・・・冗長コードにはまっている会話まとめ
project_structure_formalism_25_1110_2330.py
. モジュール構造と関心の分離 (Module Architecture)
class ModuleStructure:
複雑な動的要素の密接な関わりを保ちつつ、責任範囲を厳格に分離した構造。
def __init__(self):
self.CORE_MODULES = [
# L4: 思想
("animation_intent", "アニメーションの完成形/制約を数値で固定"),
# L3: 環境
("omajinai_boot", "ブラウザ環境の堅牢性、再初期化、ログスイッチの基盤"),
# L2: 状態 (データの堅牢性)
("state_store", "データの単一真実の源、状態変更のcommitとバグのalertログを管理"),
# L1/L0: 制御・実行
("time_easing_service", "時間計算とイージング関数の安定提供(時間の堅牢性)"),
("input_mapping_service", "テキスト内容 -> 数値ファクターへの論理計算とマッピング"),
("animation_logic", "位置・動きの計算(時間/ファクターを参照)"),
("shader_module", "GLSLコンパイルとユニフォーム値の安全な受け渡し"),
# ... 他のモジュール (material_service, ui_controller)
]
def get_data_flow_constraint(self):
"""データの流れと依存関係の厳格な制約"""
return {
"DATA_SOURCE": "State Store (単一真実の源)",
"FLOW_RULE": "全てのモジュールは、State Storeを経由してのみ情報をやり取りし、直接の計算ロジックを参照しない。",
"SEPARATION_EXAMPLE": [
"Time Serviceは計算結果をState Storeにcommitするのみ。",
"Animation LogicはState Storeから時間とファクターを読み取るのみ(時間計算ロジックを持たない)。"
]
}
-- 上記のような、会話要約コードが延々と続く。
勿論、AIだけではありません。
会話内容が構造化されているので、私も前回会話を忘れない。
[ 結論:AIはまだ赤ちゃん ]
大事な会話もすぐ忘れる
構造化+保存+再利用で健忘率激減
初心者同士、みんなで罠に落ちないようガンバロウ!