API 穩定性與版本類型
API 穩定性
Koin 專案致力於在版本之間保持高度的相容性。Kotzilla 團隊與所有活躍的維護者努力確保在新版本中引入的任何變更、增強或優化都不會破壞現有的應用程式。 我們深知穩定且可預測的升級路徑對使用者至關重要,因此在演進 API 時,我們努力將中斷降至最低。
實驗性 API - @KoinExperimentalAPI
為了在收集寶貴社群回饋的同時促進創新,我們在 @KoinExperimentalAPI 註解下引入了新功能和 API。此標記表示:
- 開發中:API 仍處於設計階段,且隨時可能更改。
- 鼓勵提供回饋:我們邀請開發人員測試這些功能並分享經驗,協助我們精煉並改進設計。
- 潛在的破壞性變更:由於這些 API 是實驗性的,隨著我們根據社群意見進行反覆運算,它們可能會在後續版本中被修改或移除。
棄用政策 - @Deprecated
為了確保 API 部分內容在逐步淘汰時能平穩過度,Koin 使用 @Deprecated 註解來清楚標記這些區域。我們的棄用策略包括:
明確的警告:棄用的 API 會附帶一則訊息,說明建議的替代方案或棄用的原因。
棄用層級:
- Warning:表示雖然 API 仍可使用,但不建議繼續使用,且應儘快替換。
- Error:表示該 API 不再供使用且將無法編譯,以確保重要的變更得到及時處理。
這種做法有助於開發人員識別並更新依賴過時 API 的程式碼,進而減少技術債並為更簡潔、更強健的程式碼庫奠定基礎。 視更新的複雜程度而定,API 可能會提供 ReplaceWith。
內部 API - @KoinInternalAPI
對於嚴格僅供 Koin 架構內部使用的功能,我們引入了 @KoinInternalAPI 註解。這些 API 不屬於公開約定的一部分,且:
- 僅限內部使用:僅為 Koin 的內部機制而設計。
- 隨時可能變更:可能會在未來的版本中進行修改或移除,恕不另行通知。
- 避免外部使用:不建議開發人員在應用程式程式碼中使用這些 API,以維持長期相容性。
使用 Kotlin 的 @OptIn 註解進行選擇性加入
在 Koin 中使用實驗性或已棄用的 API 都需要選擇性加入,以確保開發人員完全瞭解 API 的狀態及潛在風險。 透過使用 Kotlin 的 @OptIn 註解,您明確承認您的程式碼依賴於實驗性或被標記為棄用的 API。
版本類型
Koin 遵循語義化版本控制 (SemVer),並輔以額外的前綴識別符,用以說明每個版本的成熟度與預期用途。我們使用的前綴包括:
- 候選版本 (Release Candidate, RC):這些版本是穩定版本的全功能候選版。它們會經過最終測試與精煉。雖然 RC 版本的目標是高度相容,但在正式發佈前,仍可能根據最終回饋進行微調。
- Alpha / Beta:Alpha 與 Beta 版本主要提供測試與回饋之用。它們通常包含實驗性功能,且可能未完全符合穩定 API 的保證。我們鼓勵開發人員在非生產環境中嘗試這些版本,以協助識別潛在問題並引導未來的改進。
