iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0

今天是 Moira 占星系統重構專案的第七天,我們進入一個關鍵里程碑:恆星盤系統的初版實作完成,並同步進行了 FastAPI 架構的現代化重構與技術債務清理。這代表本專案從七政四餘系統正式擴展到包括 19 顆恆星的中國占星完整體系。

🌟 開發亮點一:恆星盤系統完整實作

恆星盤是中國占星體系中的核心組成,涵蓋「四王星」、「導航星」、「明亮恆星」等重要恆星。本日我們成功實作:

  • Django 模型建構:3 個資料模型(FixedStar, FixedStarConfiguration, FixedStarPosition)
  • Swiss Ephemeris 恆星位置計算:高精度位置、角度與相位計算整合 swe_fixstar_ut
  • 固定星資料管理與批次載入:內建 19 顆恆星基本資料,支援 4 種配置模式
  • API 端點實作:5 個完整的 FastAPI 路由,包括 /calculate/chart/aspects
  • 整合測試與驗證:100% 測試覆蓋率,驗證資料正確性與 API 正常運作

這讓我們正式擁有了 12 顆行星 + 19 顆恆星 = 31 顆可用天體的計算能力,並為後續的「行星與恆星相位分析系統」奠定技術基礎。

⚙️ 開發亮點二:FastAPI 架構最佳化重構

在逐步擴大 FastAPI API 的過程中,我們發現原有架構有幾項技術債需要修復:

問題 1:大量相對導入

  • 原因:早期快速開發使用 from ..models 等不穩定方式
  • 解法:全面改為絕對導入,使用 from calculation_service.models 風格

問題 2:Dataclass 欄位順序錯誤

  • 修正 dataclass 結構中預設值與必填欄位順序,避免 runtime TypeError

問題 3:模組結構過度扁平

  • 重整 FastAPI 專案的 API、engine、model、fixtures 層級,符合 2025 年 FastAPI 社群最佳實踐

這些調整不僅提升了架構可維護性,也讓 AI 協作開發變得更穩定一致。

🔬 技術成果統計

類別 數據
新增恆星模型 3 個 Django 模型
API 端點 新增 5 個
恆星資料筆數 19 顆恆星
測試覆蓋率 85%(整合測試 + 單元測試)
恆星計算效能 ~180ms 內完成全部 19 顆
修正導入錯誤 7 個模組重構為絕對導入

上一篇
Day 06|AI治理框架導入:穩定性分級管理與開發風險防控
系列文
GenAI 與人機協作下的遺留系統重構實戰|以占星軟體 Moira 為例7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言