国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

讀程序員的README筆記10_軟件交付(上)

這篇具有很好參考價值的文章主要介紹了讀程序員的README筆記10_軟件交付(上)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

讀程序員的README筆記10_軟件交付(上)

1.?行為準則

讀程序員的README筆記10_軟件交付(上)文章來源地址http://www.zghlxwxcb.cn/news/detail-757955.html

2.?軟件交付

2.1.?你應該了解你的代碼最終是如何出現(xiàn)在用戶面前的

2.2.?當軟件在生產(chǎn)環(huán)境中穩(wěn)定運行,并且被客戶真實使用時,它就被交付了

3.?軟件交付流程

3.1.?交付階段并沒有行業(yè)標準的定義

3.1.1.?從打包到展開,統(tǒng)稱為發(fā)布(release)

3.1.1.1.?打包一個構件稱為發(fā)布

3.1.2.?把構件交付下載的過程稱為發(fā)行(publishing)

3.1.3.?直到一個特性在生產(chǎn)環(huán)境中被打開時才能稱其為被“發(fā)布”了,而在這之前的一切行動都是部署(deploy)

3.1.3.1.?部署的軟件還不能被用戶訪問

3.1.3.1.1.?只是被安裝了而已

3.1.3.2.?一旦部署,軟件就會通過將用戶轉(zhuǎn)移到新的軟件上而進行展開

3.1.4.?一旦展開完成,就意味著完成了交付

3.1.4.1.?交付過程是更大的產(chǎn)品開發(fā)周期中的一部分

3.2.?軟件交付的4個階段,即構建(build)、發(fā)布、部署和展開(rollout)

3.2.1.?軟件包應該是不可變的,并且被標記了版本

3.3.?正確的分支策略將使軟件交付變得簡單和可預測

3.4.?錯誤的策略將使交付變成與流程本身的纏斗

4.?分支策略

4.1.?發(fā)布的軟件包是使用VCS中的代碼進行構建的

4.1.1.?軟件包是建立在穩(wěn)定的發(fā)布分支上的

4.2.?主分支

4.2.1.?主干或主線

4.2.2.?包含整個代碼庫的主版本,并有修改的歷史記錄

4.3.?分支

4.3.1.?是從主分支上“切”下來的,以進行代碼修改

4.3.2.?分支被用于單個小型特性、修復bug或更新

4.4.?只有當各分支可以快速合并到主分支時,基于主分支的開發(fā)模式的效果才是最好的

4.4.1.?如果不是在幾小時內(nèi),也應該在幾天內(nèi)合并到主分支,并且不在開發(fā)人員之間共享

4.4.2.?在一個分支被合并到主分支上之前,要運行快速的自動化測試來驗證其是否可以通過

4.4.3.?面向服務的系統(tǒng)通常使用基于主分支的開發(fā)模式

4.4.4.?除非你真的需要那種長期存續(xù)的特性分支,否則請堅持使用基于主分支的分支策略

4.5.?頻繁地合并被稱為持續(xù)集成(CI)

4.5.1.?CI可降低風險,因為代碼上的變化會迅速傳遞給所有的開發(fā)人員,使他們彼此之間不太可能有很大的分歧

4.5.2.?讓開發(fā)人員的代碼庫保持同步,可以防止?jié)撛诘淖詈笠环昼姷募烧系K,并盡早暴露出錯誤和不兼容的情況

4.6.?基于特性分支的開發(fā)模式

4.6.1.?在基于特性分支的開發(fā)模式中,許多開發(fā)人員同時在長期存續(xù)的特性分支上工作,每個特性分支與產(chǎn)品中的一個特性相關聯(lián)

4.6.2.?當主分支太不穩(wěn)定以至于無法發(fā)布給用戶時,或者開發(fā)人員希望避免進入特性凍結(jié)期,即在主分支線穩(wěn)定后禁止提交特性時,基于特性分支的開發(fā)就很常見

4.6.3.?基于特性分支的開發(fā)模式在收縮型軟件中更為常見,因為不同的用戶使用著不同的版本

4.7.?最流行的特性分支方法,由文森特·德里森在2010年歸納提出,被稱為Gitflow

4.7.1.?Gitflow使用開發(fā)分支、熱修復分支和發(fā)布分支

4.7.2.?開發(fā)分支被用作主分支,特性分支與之合并和變基

4.7.3.?主分支總被認為是可以隨時部署到生產(chǎn)環(huán)境的,因為它只包含穩(wěn)定的版本

4.7.4.?熱修復被應用于熱修復分支,然后會被合并到主分支和開發(fā)分支

4.7.5.?特性分支是長期存續(xù)的,它與開發(fā)分支之間有提交和合并

4.7.6.?德里森已經(jīng)修改了他最初關于Gitflow的博文,不再鼓勵將Gitflow用于可持續(xù)集成和交付的軟件

5.?構建環(huán)節(jié)

5.1.?軟件包是為每個發(fā)布版本而構建的,所以軟件不必在每臺運行它的計算機上再次構建

5.1.1.?與每臺計算機使用自己的環(huán)境和特異的工具集來編譯和運行代碼相比,預先構建好的軟件包更加一致

5.2.?如果軟件的目標是在一個以上的平臺或環(huán)境中運行的話,構建環(huán)節(jié)就會產(chǎn)生多個軟件包

5.3.?構建通常會為不同的操作系統(tǒng)、CPU架構或語言運行環(huán)境產(chǎn)生軟件包

5.4.?軟件包的內(nèi)容和結(jié)構各不相同

5.5.?軟件包可以包含二進制包或源代碼、依賴關系、配置、發(fā)行說明、文檔、媒體文件、許可證、校驗和,甚至是虛擬機鏡像

5.6.?應用程序包通常以ZIP壓縮包、TAR壓縮包(.tar文件)或安裝包(.dmg或setup.exe文件)的形式構建

5.6.1.?容器和機器包允許開發(fā)者不僅可以構建他們的軟件,而且還可以構建軟件運行的環(huán)境

5.7.?打包決定了什么軟件會被發(fā)布

5.7.1.?了解你的打包系統(tǒng)的假設和約定將防止部署環(huán)節(jié)出問題

5.8.?打包需要帶版本號

5.8.1.?軟件包也應該被納入版本管理,并且被分配唯一的標識符

5.8.2.?語義化版本是一個安全的選擇

5.9.?將不同的資源單獨打包

5.9.1.?軟件不僅僅是代碼,配置、schema、圖像和語言包(各種語言的翻譯)都是軟件的一部分

5.9.2.?不同的資源應該被分開單獨地打包,這樣它們就可以被修改而不需要重新構建整個軟件包

5.9.3.?分開打包讓每種類型資源都有自己的發(fā)布周期,可以獨立向前和向后滾動

5.10.?元包

5.10.1.?一個包含所有包的包

6.?發(fā)布環(huán)節(jié)

6.1.?發(fā)布環(huán)節(jié)可以讓用戶使用軟件,并實現(xiàn)部署,即交付的下一階段

6.2.?面向用戶的發(fā)布則需要發(fā)布構件、文檔的更新、發(fā)行說明和用戶溝通

6.3.?發(fā)布管理是一門藝術,它可以采用可預測的節(jié)奏來發(fā)布穩(wěn)定的、擁有良好文檔的軟件

6.4.?理解發(fā)布管理將幫助你有效地參與你公司的發(fā)布流程

6.5.?Apache軟件基金會的發(fā)布流程

6.5.1.?每一個Apache項目發(fā)布環(huán)節(jié)都會指定一名發(fā)布經(jīng)理來運作

6.5.2.?發(fā)布包括源代碼和通常的二進制包

6.5.3.?發(fā)布經(jīng)理使用加密密鑰對構件進行簽名,這樣用戶就可以驗證下載的軟件包是否來自Apache

6.5.4.?發(fā)布也包括用來檢測損壞的校驗和

6.5.5.?發(fā)布包括LICENSE和NOTICE文件,以聲明各種軟件許可和版權,并且所有源文件的頭注釋里都包括許可信息

6.6.?請勿只想著發(fā)布

6.6.1.?請對你的軟件發(fā)布負責

6.6.2.?你應該確保你的代碼在測試環(huán)境中運行良好,跟蹤發(fā)布時間表,理解那些可用的選項,并為你的應用程序選擇正確的配置

6.7.?將包發(fā)布到倉庫

6.7.1.?存儲資源庫會為終端用戶提供已發(fā)布的構件

6.8.?保持版本不變性

6.8.1.?一旦發(fā)布了,就永遠不要改變或覆蓋這個已發(fā)布的包

6.8.2.?不可變的發(fā)布包可保證所有運行特定版本的應用程序?qū)嵗际窍嗤模谧止?jié)層面上都一樣

6.8.3.?相同的發(fā)布包讓開發(fā)者可以推理出應用程序中的代碼以及它應該如何表現(xiàn)

6.8.4.?版本會變化的包并不比沒有版本的包更優(yōu)秀

6.9.?頻繁發(fā)布

6.9.1.?應該盡可能頻繁地發(fā)布

6.9.2.?在實踐中,快速的發(fā)布會產(chǎn)生更穩(wěn)定的軟件,當發(fā)現(xiàn)bug時更容易修復

6.9.3.?具有自動發(fā)布和部署特性的軟件應該可以在每次提交時都觸發(fā)發(fā)布流程

6.10.?對發(fā)布計劃保持透明

6.10.1.?發(fā)布時間表定義了軟件的發(fā)布頻率

6.10.2.?有些項目有可預測的基于時間的計劃

6.10.2.1.?每季度或每年發(fā)布一次

6.10.3.?有些項目則在特定特性完成時發(fā)布(也就是基于里程碑的發(fā)布)

6.10.4.?內(nèi)部系統(tǒng)經(jīng)常在每次提交時都發(fā)布版本

6.10.5.?公開時間表并在新版本發(fā)布時通知用戶

6.11.?撰寫變更日志和發(fā)行說明

6.11.1.?變更日志和發(fā)行說明可以幫助你的用戶和支持團隊了解一個版本中包含的具體內(nèi)容

6.11.2.?發(fā)行說明是對一個版本中包含的新特性和修復的bug的匯總

6.11.3.?變更日志主要會被支持團隊和開發(fā)團隊閱讀,而發(fā)行說明是專門給用戶看的

到了這里,關于讀程序員的README筆記10_軟件交付(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 讀程序員的README筆記07_測試(下)

    讀程序員的README筆記07_測試(下)

    2.5.2.1.?首先應該關注代碼中的高風險的區(qū)域 2.5.2.2.?那些低風險或被廢棄的代碼并不值得測試 3.2.1.1.?如果網(wǎng)絡出現(xiàn)問題,那么測試也會失敗 3.5.2.1.?使用常數(shù)種子的隨機數(shù)生成器的測試將總是通過或總是失敗 3.7.3.1.?注入式時間戳將讓你使用模擬來精確控制測試中的時間流逝

    2024年02月05日
    瀏覽(18)
  • 讀程序員的README筆記08_依賴管理

    讀程序員的README筆記08_依賴管理

    2.6.1.1.?版本不應該被重復使用 2.6.1.2.?永遠不要在現(xiàn)有版本下重新發(fā)布更改的代碼 2.6.2.1.?版本應該幫助人們和工具對版本的優(yōu)先順序進行推斷 2.6.3.1.?版本信息區(qū)分了預先發(fā)布的代碼和已發(fā)布的代碼,將構建流水號與構件相關聯(lián),并設置了穩(wěn)定性和兼容性的合理預期 6.2.5.1

    2024年02月05日
    瀏覽(53)
  • 讀程序員的README筆記03_變更代碼

    讀程序員的README筆記03_變更代碼

    2.2.1.1.?定義變更點 2.2.1.2.?尋找測試點 2.2.1.3.?打破依賴關系 2.2.1.4.?編寫測試 2.2.1.5.?進行修改和重構 2.2.2.1.?如果需要的話,為了讓測試成為可能,可以對代碼進行重構 2.2.2.2.?針對現(xiàn)有的軟件行為也要添加測試用例 2.2.2.3.?一旦豎起柵欄,你的修改點周圍的區(qū)域就得到了很

    2024年02月05日
    瀏覽(59)
  • 讀程序員的README筆記04_防御式編程

    讀程序員的README筆記04_防御式編程

    1.2.1.1.?切記讓你的代碼安全而有彈性 1.2.1.2.?編寫擁有良好防御性的代碼是一種對那些運行你的代碼的人(包括你自己?。└挥型樾牡谋憩F(xiàn) 1.2.1.3.?防御性的代碼較少發(fā)生故障,就算它發(fā)生故障,也更有可能恢復 1.2.1.4.?安全的代碼利用編譯時的校驗來避免運行時的故障,使

    2024年02月05日
    瀏覽(20)
  • 讀程序員的README筆記01_學習如何學習

    讀程序員的README筆記01_學習如何學習

    6.3.2.1.?錯誤是不可避免的。成為一名軟件工程師的路途艱辛,我們有時會失敗 6.5.4.1.?代碼從不說謊。注釋有時卻會。 6.5.4.1.1.?Code never lies. Comments sometimes do 6.5.4.1.2.?去讀源代碼,因為它并不總是與設計文檔相吻合 6.5.4.1.3.?不要只讀你自己的代碼庫,還要去閱讀高質(zhì)量的開

    2024年02月05日
    瀏覽(24)
  • 讀程序員的README筆記05_日志、監(jiān)控與配置

    讀程序員的README筆記05_日志、監(jiān)控與配置

    6.1.1.1.?測量的是某個事件發(fā)生的次數(shù) 6.1.1.2.?通過使用計數(shù)器獲得緩存命中數(shù)和請求總數(shù),你就可以計算出緩存命中率 6.1.2.1.?一個基于時間點的測量值 6.1.2.2.?既可以上升又可以下降 6.1.3.1.?根據(jù)事件的大小幅度分成不同的范圍 6.1.3.2.?每一個范圍都會有一個計數(shù)器,每當某

    2024年02月05日
    瀏覽(50)
  • 讀程序員的README筆記18_職業(yè)生涯規(guī)劃

    讀程序員的README筆記18_職業(yè)生涯規(guī)劃

    3.1.5.1.?他們的工作職責之一是管理他們的團隊,而管理的一部分就是對你投入時間 3.1.5.2.?對管理者而言,反復取消一對一面談可以是一個有價值的信號 3.3.2.1.?每個目標都附有3到5個關鍵結(jié)果,它們是標志著目標達成的具體指標 3.3.2.2.?不要把關鍵結(jié)果變成待辦事項清單 3.

    2024年02月04日
    瀏覽(18)
  • 讀程序員的README筆記13_技術設計流程(上)

    讀程序員的README筆記13_技術設計流程(上)

    3.4.1.1.?外界干擾是深度工作的“殺手” 3.4.1.2.?避免所有的交流方式 3.4.1.2.1.?關閉聊天 3.4.1.2.2.?關閉電子郵件 3.4.1.2.3.?禁用電話通知 3.4.1.2.4.?換個地方坐 3.4.2.1.?有形產(chǎn)出是一份設計文檔 4.2.3.1.?如果有一個以上的問題,詢問哪些問題是最優(yōu)先的 4.3.7.1.?注意與外人交流時不

    2024年02月04日
    瀏覽(53)
  • 讀程序員的README筆記14_技術設計流程(下)

    讀程序員的README筆記14_技術設計流程(下)

    1.4.2.1.?該項目將需要至少一個月的工程時間 1.4.2.2.?變更將對軟件的擴展和維護產(chǎn)生長期的影響 1.4.2.3.?變更將顯著影響其他團隊 1.5.2.1.?設計文檔是一種工具,可以幫助你思考、獲得反饋、讓你的團隊了解情況、培養(yǎng)新的工程師,并推動項目規(guī)劃 1.5.5.1.?閱讀大量的設計文檔

    2024年02月04日
    瀏覽(20)
  • 讀程序員的README筆記17_構建可演進的架構(下)

    讀程序員的README筆記17_構建可演進的架構(下)

    1.3.3.1.?開發(fā)人員可以只專注于和自己相關的字段,因為它們會繼承其他字段的默認值 1.3.3.2.?默認值可使大型API在感覺上很小巧 1.4.1.1.?OpenAPI通常用于RESTful服務 1.4.1.2.?non-REST服務則使用Protocol Buffers、Thrift或類似的接口定義語言(interface definition language,IDL) 1.4.1.3.?接口定義工

    2024年02月04日
    瀏覽(50)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包