Skip to content

Deprecation zh TW

ArchiBot edited this page Sep 14, 2022 · 34 revisions

功能棄用

由 ASF V3.1.2.2 版本開始,我們將遵循一致的棄用政策,以使開發及使用更加一致。


什麼是棄用?

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

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


棄用流程

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

第一階段

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

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

第二階段

第二階段發生於上述的第一階段之後,並會在穩定版本中發布。 這個階段已完全刪除被棄用的功能,這代表 ASF 甚至不會接受您嘗試使用的已棄用的功能,更不用說執行它了,因為它根本就不存在於當前的程式碼中。 ASF will no longer print any warning, since it no longer recognizes what you're attempting to do.


總結

您有大約一個月的時間來調整及轉換,即使您只是偶爾使用 ASF,這也應該足夠了。 After that period, ASF no longer guarantees that old settings will have any effect (stage 2), effectively making certain features to stop functioning altogether without you noticing. If you're launching ASF after more than a month of inactivity, it's recommended for you to start from scratch again, or read all the changelogs that you've missed and manually adapt your usage to current one.

在大多數情形下,忽略棄用警告不會使 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