精品国产污污污免费网站入口,亚洲一区二区国产精品一区二区,欧美国产日韩成人综合网,黄色片免费在线观看尤物

免費(fèi)獲取策劃方案多一份參考,總有益處

重慶網(wǎng)站設(shè)計(jì)

Website design

案例778

重慶網(wǎng)站設(shè)計(jì)

設(shè)計(jì)系統(tǒng)的版本管理

來源:派臣科技|時間:2020-09-09|瀏覽:

你的設(shè)計(jì)系統(tǒng)團(tuán)隊(duì)是如何通知訂閱者新的特性已經(jīng)發(fā)布,bug正在被修復(fù),或者安全漏洞正在被修補(bǔ)?Patrick討論了版本控制策略和自動化流程的優(yōu)勢。

想象一下,如果你愿意,我們是一個團(tuán)隊(duì)的一部分,一起工作來生產(chǎn)一些軟件。我們的團(tuán)隊(duì)知道,在六個月內(nèi),我們的最小可行產(chǎn)品(MVP)需要準(zhǔn)備好發(fā)布。我們也知道,在最初的版本發(fā)布之后,我們的團(tuán)隊(duì)將繼續(xù)對我們的產(chǎn)品進(jìn)行迭代:我們將修復(fù)bug,我們將添加新特性,我們將修補(bǔ)安全漏洞,甚至有一天,我們可能會棄用或刪除部分產(chǎn)品。

實(shí)際上,我們的產(chǎn)品可以是任何類型的軟件,但在本文的其余部分中,我將描述的產(chǎn)品是一個設(shè)計(jì)系統(tǒng),由許多單獨(dú)的組件組成。作為設(shè)計(jì)系統(tǒng)的生產(chǎn)者,我們將自己稱為為訂閱者維護(hù)系統(tǒng)的發(fā)布者。

項(xiàng)目和產(chǎn)品

在我職業(yè)生涯的大部分時間里,我都在機(jī)構(gòu)從事項(xiàng)目工作,而這些項(xiàng)目大部分都圍繞著網(wǎng)站和網(wǎng)絡(luò)應(yīng)用。這些項(xiàng)目通常都有一個結(jié)束日期,也就是啟動日期。即使當(dāng)我的同事和我與其他團(tuán)隊(duì)合作提供長期支持和維護(hù)時,這種類型的工作在計(jì)劃、路線圖和用戶關(guān)注方面也不同于產(chǎn)品工作。

在設(shè)計(jì)系統(tǒng)的上下文中尤其如此,其中設(shè)計(jì)系統(tǒng)團(tuán)隊(duì)的角色是發(fā)布者,而受眾的角色是訂閱者。Nathan Curtis談到了從項(xiàng)目到產(chǎn)品思維模式的轉(zhuǎn)變,他指出,一個系統(tǒng)是“一個活的、不斷發(fā)展的、將服務(wù)于其他產(chǎn)品的產(chǎn)品的起源故事”。

對我來說,這種心態(tài)轉(zhuǎn)變的有趣之處在于,很多人——如果不是所有人的話——已經(jīng)習(xí)慣了扮演我提到的其中一個角色。不管我們是否意識到,我們都是訂閱用戶。

想想看:你最近有沒有更新安卓或iOS應(yīng)用程序?你是否在公寓或家里為物聯(lián)網(wǎng)設(shè)備安裝了新版本的固件或軟件?你有升級到最新版本的Windows或MacOS嗎?我覺得很有可能是你干的祝賀您,您是軟件的一部分(或多個部分)的訂閱者。

現(xiàn)在,想一下這個的另一邊。如果您負(fù)責(zé)創(chuàng)建和維護(hù)我上面提到的某個軟件,您將如何向您的訂閱者表明您的團(tuán)隊(duì)已經(jīng)在軟件中構(gòu)建了新特性、修復(fù)了漏洞或修補(bǔ)了安全漏洞?您需要向您的訂閱者提供哪些關(guān)于您的更改的文檔?要使發(fā)布者到訂閱者的過程發(fā)生,您需要什么樣的工作流?

我在這里暗示的是一個發(fā)布策略,它由三個概念組成:為我們的整個設(shè)計(jì)系統(tǒng)或每個單獨(dú)的組件維護(hù)一個版本號方案。2. 創(chuàng)建一個變更記錄——一個變更日志——這樣我們的訂閱者就知道這個版本和上一個版本有什么不同。3.將系統(tǒng)或其組件的新更新版本發(fā)布到訂閱者可以使用它的地方。

讓我們再深入研究一下這些概念。

版本

我們的團(tuán)隊(duì)在過去的六個月里努力工作,我們的MVP已經(jīng)準(zhǔn)備好要發(fā)布給全世界了!恭喜你!我們終于發(fā)布了1.0版!但是這個版本號代表什么?它來自哪里?當(dāng)我們不可避免地要對我們的產(chǎn)品進(jìn)行一些更改時,下一個版本號是什么?

語義版本控制(Semantic Versioning, Semver)是一種流行的規(guī)范,我們的行業(yè)使用它來描述公共接口版本之間的變化。每個版本都直接綁定到一個版本號上,該版本號由三個用句點(diǎn)分隔的數(shù)字組成。這三個數(shù)字分別表示主、小和補(bǔ)丁(例如:3.10.2),每個數(shù)字都有一系列有序的版本。Semver網(wǎng)站將major、minor、patch的語義差異總結(jié)如下:

給出一個版本號MAJOR.MINOR。補(bǔ)丁,增加:1。當(dāng)你做不兼容的API更改時,主要版本2。當(dāng)您以向后兼容的方式添加功能時,將使用次要版本;修正向后兼容的錯誤時的補(bǔ)丁版本。”

我并不打算在本文中詳盡地介紹Semver及其復(fù)雜性,但是了解major、minor和patch非常重要——尤其是在Node上下文中。因?yàn)镾emver內(nèi)建在npm管理其包的方式中。檢查包。json用于我們的彈跳球項(xiàng)目,這是一個很好的練習(xí),可以輕松理解項(xiàng)目如何管理它的包。當(dāng)您查看這里列出的依賴項(xiàng)和devDependencies時,打開這個備忘單,看看我們的包是如何運(yùn)行的。json指的是版本和范圍。

版本控制…什么?

既然我們已經(jīng)討論了版本和版本號背后的一些含義,那么讓我們來討論一下我們到底在控制什么版本。在本文的開始部分,我們設(shè)想我們的團(tuán)隊(duì)正在努力為我們的設(shè)計(jì)系統(tǒng)構(gòu)建組件。當(dāng)我們開始我們的項(xiàng)目時,我們決定使用Git將我們所有的設(shè)計(jì)系統(tǒng)代碼包含在一個存儲庫中。

在開始的時候,我們的團(tuán)隊(duì)需要決定它作為發(fā)布者的角色:我們的訂閱者應(yīng)該如何使用我們的組件?設(shè)計(jì)系統(tǒng)應(yīng)該是它自己的單一包,訂戶帶進(jìn)他們的項(xiàng)目,批發(fā)?或者設(shè)計(jì)系統(tǒng)應(yīng)該是許多可單獨(dú)訂閱的包的容器,讓我們的消費(fèi)者選擇他們想要的包以及這些包何時更新?

這兩種策略都有利有弊,在我看來,大多數(shù)的利弊都是圍繞著計(jì)劃,以及出版商和訂閱者應(yīng)該把他們的時間和精力花在哪里和如何上。

例如,如果您的設(shè)計(jì)系統(tǒng)作為一個單獨(dú)的包來管理和發(fā)布,您的團(tuán)隊(duì)可能會發(fā)現(xiàn)開發(fā)一個發(fā)布周期是有利的——可能是每月或每季度。隨后,團(tuán)隊(duì)可能會發(fā)現(xiàn)它可以預(yù)測每個版本的特性、修復(fù)和其他工作的數(shù)量。這種可預(yù)測性不僅可以幫助發(fā)布團(tuán)隊(duì),還可以幫助訂閱團(tuán)隊(duì)制定計(jì)劃和路線圖。

相反,也許你的訂閱者不想更新到整個設(shè)計(jì)系統(tǒng)的最新版本——也許他們不能??赡苡幸粋€或一組包他們無法更新,他們現(xiàn)在面臨著落后的風(fēng)險,直到他們能夠優(yōu)先更新。也許,如果設(shè)計(jì)系統(tǒng)單獨(dú)發(fā)布它的軟件包,訂閱者將能夠根據(jù)他們自己的條款更新到這些更新的軟件包。

無論您的團(tuán)隊(duì)選擇哪種管理策略——單個包還是多個、單獨(dú)的包——重要的是要關(guān)注您的訂閱者。考慮一下,如果您是訂閱者,您希望如何讓更新和發(fā)布傳遞給您。想想你的訂閱者需要什么才能保持最新,想讓他們更新或遷移到你的最新版本需要什么。嘗試考慮每個更新的下游影響,無論它們是單個包還是多個包。最終,團(tuán)隊(duì)的利益相關(guān)者就是它的訂閱者。

但是,不要讓這壓倒了你的團(tuán)隊(duì)。安慰的事實(shí),你的團(tuán)隊(duì)是由聰明的人誰習(xí)慣于成為訂戶。鼓勵他們想想上一次在其他項(xiàng)目中更新Rails或npm依賴項(xiàng)是什么時候,以及那種體驗(yàn)是什么樣的。

版本控制…如何?

我剛剛討論了哪些團(tuán)隊(duì)將進(jìn)行版本控制,但是我還想提到團(tuán)隊(duì)如何使版本控制過程更容易、更準(zhǔn)確。

首先,您可能知道(也可能不知道)包含許多包的存儲庫通常被稱為單一存儲庫。使用monorepo方法的一些流行項(xiàng)目的例子包括Babel、React、Meteor和Jest。假設(shè)我們的設(shè)計(jì)系統(tǒng)項(xiàng)目是由許多包(我們的組件)組成的,那么我們的設(shè)計(jì)系統(tǒng)也可以被稱為單體系統(tǒng)是有意義的。

包括我上面列出的那些流行的,單一pos傾向于分享的一個特點(diǎn)是,他們利用自動化來管理他們的版本號。不管你的設(shè)計(jì)管理系統(tǒng)作為一個單獨(dú)的包或盡可能多的個人包,我想我們都同意,我們的團(tuán)隊(duì)?wèi)?yīng)該花費(fèi)時間構(gòu)建驚人的組件和解決問題subscribers-not陷入困境在如何包需要撞他們的下一個版本,這些版本是什么,等等。坦白地說,不自動化這個過程聽起來像是導(dǎo)致混亂和最終的災(zāi)難。

幸運(yùn)的是,有一個名為Lerna的工具可以幫助管理使用Git和npm的單機(jī)操作流程。Lerna最初是作為管理巴別塔單礦石的工具開始的,在它被提取出來成為它自己的獨(dú)立工具之前。

Lerna將處理你的版本,但它真的照當(dāng)你深究它的一些其他功能,如結(jié)合它與傳統(tǒng)致力于自動生成更新日志文件和配置注冊表自動發(fā)布你的包,這是我們將會討論接下來的兩個概念。

更新日志

我們以前討論過編寫發(fā)布說明,但是維護(hù)設(shè)計(jì)系統(tǒng)中所有組件的發(fā)布說明或更改日志對于您的訂閱者來說是非常重要的,這可能會讓人望而生畏。幸運(yùn)的是,有一些工具可以為您自動執(zhí)行這個過程。

我在上面提到過,您可以使用Lerna自動生成更改日志文件,但是如果您不使用Lerna,另一個需要研究的工具是semantic-release。這個工具將自動化整個發(fā)布工作流,包括確定下一個版本號,生成發(fā)布說明,以及發(fā)布一個或多個包。

Lerna和語義發(fā)布都使用存儲庫的提交消息,不僅可以理解要執(zhí)行的版本增量的類型,還可以編譯每個發(fā)布生成的變更日志。這對于您的團(tuán)隊(duì)來說是非常強(qiáng)大的,因?yàn)橹灰麄儓?jiān)持傳統(tǒng)提交規(guī)范,變更日志生成的自動化過程——以及版本號的遞增——就會自行處理。剩下的惟一部分就是將最新更新和文檔化的包分發(fā)給您的訂閱者。

發(fā)布到注冊表

我們已經(jīng)增加了版本號,我們已經(jīng)創(chuàng)建了變更日志來描述我們的變更,現(xiàn)在是時候?qū)⑽覀兊陌l(fā)送到訂閱者可以獲得它們的地方了——通常稱為包注冊表。

在Node的上下文中。npm是最流行的注冊——特別是對于公開可用的節(jié)點(diǎn)包。GitHub現(xiàn)在擁有npm,它有自己的包注冊表,允許公有和私有發(fā)布,JFrog Artifactory也允許私有發(fā)布。

包發(fā)布是我們工作流程的另一部分,如果手工完成,可能會令人生畏。如果您認(rèn)為這是我提倡自動化流程的另一種情況,那么您是對的!幸運(yùn)的是,我上面提到的兩個工具,Lerna和語義發(fā)布,是為了自動發(fā)布包而構(gòu)建的。

為了發(fā)布包,這兩種工具都會執(zhí)行類似的過程,以確定注冊中心中是否存在具有相應(yīng)版本號的包。只有在注冊表中不存在與其對應(yīng)的版本號時,包才會被發(fā)布。這可以防止您的包覆蓋自己,并防止新更改污染已經(jīng)發(fā)布的包。您的訂閱者將知道任何遞增的版本號都表明他們試圖更新的軟件包有了一些新的變化。

通過自動化釋放

作為開發(fā)人員,我們知道自動化我們的流程和工作流的好處。將設(shè)計(jì)系統(tǒng)發(fā)布后的過程自動化(管理版本號、編譯變更日志和處理包發(fā)布)可以讓您的團(tuán)隊(duì)專注于真正重要的事情:通過構(gòu)建和維護(hù)優(yōu)秀的軟件,成為訂閱者的優(yōu)秀合作伙伴。

留言

返回頂部

君
重慶網(wǎng)站建設(shè)重慶網(wǎng)站設(shè)計(jì)設(shè)計(jì)系統(tǒng)的版本管理
日本高清不卡一区二区三区-男女国产猛烈无遮挡色-精品九九热在线免费视频-日本一区二区福利在线观看| 日韩欧美亚洲国产首页-色婷婷色久悠悠综合在线-亚色综合久久国产精品-日本岛国免费在线播放| 国产91精品一区二区亚洲-国产精品国产三级国产播-久久国产精品免费一区六九堂-五月婷婷六月丁香激情网| 无套进入极品美女少妇-新久久久高清黄色国产-国产肥臀在线精品一区二区-深夜午夜福利在线观看| 深夜福利导航在线观看-情色视频在线观看一区二区三区-丝袜美腿诱惑福利视频-国产最新福利一区二区三区蜜桃| 在线播放国产av蜜桃-国产精品自拍免费在线-亚洲国产成人综合青青-日韩成人高清在线视频| 日韩av高清不卡一区二区-国产亚洲性色av大片久久香蕉-国产亚洲欧美韩国日本-国产精品国产三级国产普通话对白| 国产欧美日韩激情免费-日韩av不卡免费观看-一本色道久久88综合亚洲精品-av天堂有色在线观看| 成人av亚洲男人色丁香-色丁香婷婷综合缴情综-国产男女视频免费观看-日韩有码中文字幕一区八戒| 免费人成视频在线播放-成人级a爱看片免费观看-激情偷乱在线视频播放网-激情综合网激情综合网激情| 日本高清不卡一区二区三区-男女国产猛烈无遮挡色-精品九九热在线免费视频-日本一区二区福利在线观看| 日韩人妻少妇手机看片-高清av有码中文字幕在线-禁止18勿入国产精品视频-中文字幕精品乱码亚洲一区| 91九色精品人成在线观看-国产成人免费综合激情-新久久国产色av免费看-av网站国产主播在线| 国产精品第五页在线观看-亚洲欧美日韩丝袜另类一区-国产懂色av一区二区三区-午夜亚洲欧美日韩在线| 一本色道久久综合亚洲精-亚洲精品一区二区三区乱码-性生活高清免费视频免费-99热这里只有的精品3| 日韩三级在线视频不卡-国内自拍色第一页第二页-96热久久这里只有精品-日韩精品有码一区二区三区久久久| 亚洲无吗视频在线观看-成人免费在线视频平台-国产午夜视频看看果冻-国产黄色片国产黄色片| 亚洲av成人午夜福利-青青草华人在线视频观看-久久99国产亚洲高清-中文字幕一区二区三区乱码人妻| 国产精品内射在线免费看-99久久国产精品一区二区三区-久久国产精品午夜福利-亚洲av精品一区二区三区| 最近中文字幕国产精品-国产一级片黄片免费观看-日本一区二区三区日韩欧美-亚洲一区电影网站在线观看| 午夜狂情三级伦理涩之屋-亚洲国产精品美女嫩模综合在-久热在线观看免费视频-国产精品伦子一区二区三区| 女人毛茸茸的外阴视频-成人激情午夜福利视频-国产精品性色一区二区三区-国产中文字幕欧美激情| 国产美女口爆吞精服务-亚洲无人区码一码二码三码-久久精品99国产精品最新-日本少妇激情在线视频| 国内精品国产三级国产-91制片厂麻豆果冻剧情观看-日韩中文字幕有码在线视频-精品人妻伦一区二区三区久久| 国产喷白浆一区二区三区网站-中文字幕人妻系列av-国产极品尤物自拍露脸-自拍偷区亚洲综合激情| 绯色高清粉嫩国产精品-色偷偷亚洲偷自拍视频-国产性感午夜天堂av-**精品中文字幕一区二区三区| 国产视色精品亚洲一区二区-激情艺术中心国产精品-国产农村一级特黄真人片-免费观看午夜视频在线| 国产精品午夜免费福利-亚洲香蕉视频网在线观看-四虎私人福利妞妞视频-91国产丝袜在线观看| 亚洲av成人精品爽爽-国产麻豆91在线播放-国产精品久久精品久久精品-蜜臀久久综合一本av| 日韩av免费在线网站-在线一区二区三区视频免费观看-日韩一本不卡一区二区三区-国产成人国产在线播放| av午夜福利一片免费看久久-中文字幕日韩无敌亚洲精品-四虎高清成人在线观看-亚洲开心婷婷中文字幕| 加勒比中文字幕久久av-久久黄色美女三级久一点黄-国产精品无套高潮久久-久久婷婷综合色拍亚洲| 免费观看一区二区av蜜桃-免费一级特黄久久大片-每日更新日韩中文字幕有码-97视频在线观看午夜| 91高清在线观看播放-av在线免费观看男人天堂-九九热在线视频免费观看-美女脱内裤露出隐私部位| 91福利精品第一导航-国产一区二区三区不卡精品-偷拍日本美女公厕尿尿-国产黄三级三级三级看三级| 国产精品 一区二区 久久-国产在线一区二区三区四区视频-午夜日本在线观看视频-日韩一区二区中文字幕18禁| 亚洲激情文学国产激情-一本色道久久综合亚洲精品高-国产精品高清在线播放-九九热视频在线观看精品| 国产91精品一区二区亚洲-国产精品国产三级国产播-久久国产精品免费一区六九堂-五月婷婷六月丁香激情网| 岛国av大片在线观看-欧美高清一级二级三级-中文字幕中文字幕777-国产日韩亚洲精品视频| 青青草高清视频在线播放-熟女在线视频一区二区三区-亚洲国产中文字幕av-久久这里只有精品久久热| 国产高清丝袜av综合-精品亚洲一区二区在线-国产丝袜大长腿精品丝袜美女-日本熟女午夜福利视频|