天天看點

《JavaScript開發架構權威指南》——1.5 語義化版本控制

本節書摘來自異步社群《javascript開發架構權威指南》一書中的第1章,第1.5節,作者:【美】tim ambler , nicholas cloud著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

如果安裝了jquery(見清單),那麼請檢視項目的bower清單。你所看到的應當與清單相仿。

清單1-7 語義化版本号

清單中的版本号2.1.3(請暫時忽略~)就是所謂的語義化版本号(semver,semantic version)。語義化版本控制能夠幫助開發者按照通用格式為其項目指定版本号。該格式如下所示。

<code>version x.y.z(major.minor.patch)</code>

語義化版本格式要求開發者建立定義明晰的api(通過文檔或者自文檔化的代碼),進而為使用者使用軟體庫提供唯一的切入點。新啟動的項目一般從版本0.0.0開始,然後随着新版本的推出,版本号逐漸增加。通常認為版本号在1.0.0以下的項目正處于緊密開發中,此時允許在不變更主版本号(major)的情況下,對其api進行重大改變。而版本号1.0.0及以上的項目,在更改版本号時需要遵守以下規則。

當更新導緻使用者使用項目api的方式發生重大變化的時候,項目的主版本号應當發生 改變。

當以向後相容的方式添加新特性的時候 (也就是說,現有api不會失效),項目的次版本号應當發生改變。

當以向後相容的方式修正bug的時候,項目的修訂号(patch version number)應當發生改變。

這些規則可以讓開發者了解任意兩個版本之間的變化程度。随着bower清單的增長以及項目所需依賴項的增多,這些資訊的作用會逐漸顯現出來。

注意:

 

清單中的“~”号表示無論何時運作install指令,都允許以“相對接近”2.1.3的版本對jquery進行更新。如果“相對接近”和“自動安裝”這樣的字眼放在一起使用讓你覺得渾身不舒服的話,那就對了!最佳實踐建議,在bower中引用依賴項的時候,應當避免使用“~x.y.z”這樣的格式。相反,你最好明确指定要在項目中引入的依賴項的版本。當有更新釋出時,你可以手動檢查,并決定是否以及何時進行更新。本章随後的示例将會遵從此建議。

繼續閱讀