Skip to content

Deprecation zh TW

ArchiBot edited this page Nov 30, 2023 · 34 revisions

功能棄用

我們盡可能遵循一致的棄用政策,使開發及使用更加一致。


什麼是棄用?

棄用是進行或大或小重要改動的過程,這些更改會使先前使用的選項、引數、功能或使用案例過時。 功能棄用通常代表原先給定的內容,被重寫成另一種(相似的)型態,您應確保在適當的時機及時切換至新型態。 在這種情形下,它只是將給定的功能移動至更適合的位置。

ASF版本更新迅速,並總在追求卓越。 遺憾的是,這代表我們可能會將某些現有功能更改或移動至程式的其他部分,以適應新功能、增加相容性或穩定性。 但因如此,我們不需堅持多年前做出過時的或錯誤的開發決策。 我們持續努力提供合理的代替方案,以符合先前可用功能的預期用途,這就是為什麼大部分的棄用皆是無害的,只需對過往的用法進行少量修正。


棄用流程

ASF的棄用流程分為兩個階段,使過渡期間更簡單並能減少麻煩。

第一階段

一旦決定該功能將被棄用,就會立刻進入第一階段,同時會提供一個替代方案(如果沒有重新引入該功能的計劃,則不提供)。

在這個階段,ASF會在將被棄用的函數被調用時,發出相應的警告訊息。 只要有可能,ASF就會嘗試模擬之前的行為,並保持與它相容。 至少在下一個穩定版本前,該功能會在ASF中停留於第一階段。 在這時,您應該在不破壞相容性的情形下,在所有工具及模式中進行適當的轉換,以適應新的行為。 若您不再看到棄用警告,這就代表您進行了正確的改動。

第二階段

第二階段發生於上述的第一階段之後,並會在穩定版本中發布。 這個階段已完全刪除被棄用的功能,這代表ASF甚至不會接受您嘗試使用的棄用功能,更不用說執行它了,因為它根本就不存在於當前的程式碼中。 ASF不會發出任何警告,因為它不再能辨識您嘗試執行的操作。


總結

您有大約​一個月​的時間來調整及轉換,即使您只是偶爾使用ASF,這也應該足夠了。 在這段期間之後,ASF不再保證舊設定能產生任何效果(第二階段),某些功能會在您未發現的情形下完全停止運作。 如果您已長達一個月以上未使用ASF,建議您再次​重新開始​,或者閱讀所有您錯過的更新日誌,並手動修改設定,使您的ASF適應當前的用法。

在大多數情形下,忽略棄用警告不會使ASF的基本功能失效,而是會回溯至預設行為(可能與您的個人偏好相同,也可能不同)。


範例

我們將V3.1.2.2版本之前的​--server命令列引數​遷移至​IPC全域設定屬性​。

第一階段

第一階段起始於V3.1.2.2版本,我們對​--server​的使用加入了適當的警告訊息。 當下過時的​--server​引數將會被自動轉換成​IPC: true​全域設定屬性,它的實際效果與之前的​--server​開關完全相同。 這使得每個人都能在ASF停止接受舊引數前,進行適當的轉換。

第二階段

第二階段發生於V3.1.3.0版本,是緊接著在上述第一階段說明的V3.1.2.9穩定版本發布之後。 第二階段使ASF完全停止辨識​--server​引數,將它視為其他所有無效引數,並對程式不再有任何影響。 對於仍未由​--server​改為使用​IPC: true​的使用者,由於ASF不再進行轉換,會使IPC完全停止運作。

Clone this wiki locally