2017-08-06 71 views
3

有一個DataTables CPAN module。它適用於datatables版本1.6。與此同時,有數據表1.10,具有不同的接口。很多事情都改變了,例如選項名稱。如何在Perl模塊中管理不同的API版本?

我想知道:模塊如何擴展以涵蓋舊的東西以及新的datatables 1.10接口? 這個問題有一個共同的名字嗎? 是否有最佳做法? 有沒有一個很好的參考模塊,我可以看看?我認爲其他人也面臨挑戰。

+3

另請參見[JQuery :: DataTables :: Request](https://metacpan.org/pod/JQuery::DataTables::Request):「*此模塊僅提供與v1.10參數對應的API但將v1.9參數映射到相應的v1.10參數。*「 –

+0

這兩個模塊具有完全不同的接口。 DataTables假定CGI並自行完成所有的解析,而JQuery :: DataTables :: Request實際上需要你傳入參數。我認爲後者是更好,更抽象的實現。你應該可以使用它。同時,向他們提出pull請求(https://github.com/srchulo/DataTables和https://github.com/xmikew/p5-JQuery-DataTables-Request)以添加鏈接可能是有意義的彼此之間,所以未來的用戶會看到有兩個API版本的實現。 – simbabque

回答

0

從我自己的作者的觀點來看,最好的做法是

  1. 保持最新主與最新的API。
  2. 使用主要版本的API保留次要版本的模塊。
  3. 向模塊用戶推薦

    3.1。與模塊一起升級API,或者

    3.2。保持其模塊的小版本不受版本要求的限制(我使用cpanfile或cartonfile)。

可能您需要更具體的答案嗎?

+0

很高興得到關於該主題的一些反饋。不過,我對如何真正做到這一點感興趣,以允許使用不同的API版本。您的建議意味着每個模塊僅支持1個api版本。 – capfan

+0

每個模塊的次要版本都有一個API版本,因爲您可以控制雙方。 模塊用戶允許安裝所需的API服務器,並安裝/需要API對應的最新補丁版本的API客戶端。 在一個模塊中支持多個API版本是模塊用戶不擁有API服務器端時應該完成的另一項任務。 –

+0

我想我理解你的答案,但這不是我正在尋找的。我不是js DataTables庫的所有者。另外,我認爲必須安裝特定的過時(而不是最新)版本的模塊才能使標準行爲不常見。我個人不會考慮普通最終用戶的這種行爲。 – capfan

相關問題