【マイレース開発記録(30)】AIと進めるリモート開発と次の挑戦
リモート開発を前提にした開発スタイル
今回の「マイレース」開発では、最初からリモート環境での開発を想定した進め方を意識していました。
開発は基本的に一人で進めていますが、完全な孤立状態ではありません。
AIとの対話を活用しながら、設計・検証・修正のサイクルを回しています。
ただし、AIにすべてを任せる形ではなく、
- 自分でロジックを理解する
- 実装を小さく試す
- 結果を確認する
- 必要なら修正する
という工程を、できるだけ細かく区切って進めることを意識しました。
この方法を取ることで、一度に大きな問題を抱え込まず、小さな単位で前進できる開発スタイルを作ることができました。
AIを「壁打ち相手」として使う
開発中、AIは主に次のような役割で使っています。
- ロジックの整理
- エラー原因の推測
- 設計の確認
- コードレビュー的な相談
ただし、AIの提案をそのまま採用することはありません。
必ず
- コードを読む
- 実際に動かす
- 必要なら修正する
という手順を踏んでいます。
このプロセスを通じて、「AIに書かせる」のではなく、「AIと一緒に理解を深める」という形で開発を進めています。
一人で抱え込みすぎないという意識
今回の開発を通して、意識的に変えたことがあります。
それは、「問題を一人で抱え込まないこと」です。
以前の開発経験では、
- エラーが出たら長時間悩み続ける
- 解決できないまま作業が止まる
- 疲労だけが積み重なる
という状況がよくありました。
現在は、
- 問題を言語化する
- 仮説を立てる
- AIに整理を手伝ってもらう
- 小さく検証する
という形で、問題を分解して進めています。
この方法は、リモート環境でも継続できる開発スタイルだと感じています。
小さな検証を積み重ねる
マイレースの開発では、大きな機能を一度に作ることはほとんどありませんでした。
例えば、
- APIが正しくJSONを返すか
- Canvas描画が正常に動くか
- レースの速度計算が破綻しないか
- メッセージロジックが安定しているか
といった部分を、一つずつ検証しています。
この方法は時間がかかるように見えますが、結果としてバグの原因を特定しやすくなりました。
このプロジェクトで実装した技術
Flask API
マイレースの開発では、以下の技術を組み合わせています。
PythonのFlaskを使い、
- 入力データの受け取り
- 占星術計算
- レース結果の生成
- JSONレスポンス
を実装しました。
特に /api/calc では、
- 誕生日
- 出生時間
- 出生地
- 占いたい日
を受け取り、レース結果をJSON形式で返しています。
Swiss Ephemeris
占星術計算には Swiss Ephemeris を使用しています。
主に使っている処理は
- ユリウス日計算
- 天体の黄経取得
- 天体間角度差
です。
これらをもとに、
- 各テーマの速度
- レース順位
- ゾーン判定
を計算しています。
Canvasによるレース描画
フロントエンドでは HTML Canvas を使用し、5匹のウサギのレースを描画しています。
主な処理は
- requestAnimationFrameによるアニメーション
- ジャンプ演出
- レーン管理
- ゴール判定
です。
Canvasを使うことで、ゲームのような軽いアニメーション表現が可能になりました。
非同期通信(Fetch API)
フロントエンドからは
fetch("/api/calc")
を使ってAPIを呼び出し、
- 計算結果
- レース順位
- メッセージ
を取得しています。
この結果をもとに、
- レースの動き
- スコアボード表示
- ゾーン演出
を制御しています。
次の課題に向けて
マイレースの開発は、まだ完成形ではありません。
ログの保存、UIの改善、メッセージロジックの調整など、これから手を入れていきたい部分はまだ多く残っています。
本来であれば、これらを一つずつ整えながら完成度を高めていきたいところですが、現在、次の課題にも取り組むことになりました。
私は現在、就労支援に通所しているのですが、そのご縁から 通所管理アプリの開発に挑戦する機会をいただくことになりました。
この課題では、これまでの開発とは少し違う技術にも挑戦したいと考えています。
特に取り組んでみたいのが、React Native(JavaScript)によるモバイルアプリ開発です。
これまで私は、Flaskを使ったAPIやWebアプリケーションを中心に開発してきましたが、今後はスマートフォンアプリの開発にも視野を広げ、より実践的な技術スタックを身につけていきたいと考えています。
マイレースの開発もここで終わりではありません。
新しい課題と並行しながら、ログ機能の追加やUI改善など、少しずつ改良を続けていく予定です。
もしマイレースに新しい進展があった場合は、この開発記録の中で引き続き報告していきたいと思います。


