成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為React項目工作四年后,我理解了企業(yè)開源的真諦

新聞 開源
對企業(yè)而言,發(fā)布和維護(hù)開源項目都是需要耗費大量心力的。在為 React(一款由 Facebook 開發(fā)的知名開源 JS 庫)工作四年后我對此深有體會。

[[332871]]

 對企業(yè)而言,發(fā)布和維護(hù)開源項目都是需要耗費大量心力的。在為 React(一款由 Facebook 開發(fā)的知名開源 JS 庫)工作四年后我對此深有體會。我最開始只是一名外部貢獻(xiàn)者,加入 React 團(tuán)隊后,又從工程師做起,最終升為團(tuán)隊管理。和大多數(shù)的 Facebook 開源項目一樣,React 起初只是為內(nèi)部使用而開發(fā)的,見識到它在簡化 UI 代碼的開發(fā)和維護(hù)上的作用后,我們決定將它與全世界分享。

事實證明,React 是 Facebook 的一次令人難以置信的成功,而這成功背后也隱藏了巨大的挑戰(zhàn)。舉例來說,盡管 React 非常受歡迎,但它仍處于一個競爭激烈的領(lǐng)域,這使得我們在開發(fā)新版本時需要小心再小心。

我們盡量不去做重大改動,原因很明顯,人們沒有時間或者不愿去適應(yīng)一個變更太快的產(chǎn)品,甚至可能會一氣之下改用其他競品。但反過來想,如果我們固步自封,那么 React 將會落后于其他更新潮,更有創(chuàng)新性的產(chǎn)品。React 會像它的前輩們一樣,被后浪拍死在沙灘上。

龐大的用戶群體也讓我們在做出任何決定時都會收到反對的聲音。在你規(guī)模還很小的時候,你可以取悅?cè)魏稳耍坏┠阋?guī)模做大,滿足所有人就變成了不可能 的任務(wù)。這一現(xiàn)象并不僅局限于 OSS(開源軟件)。這就意味著,在準(zhǔn)備更新版本時,我們同樣需要仔細(xì)考慮我們的溝通策略。在 2018 年 10 月的 React 大會上公布 React Hooks 之前,我們特意避免公開發(fā)表任何 React Hooks 的消息。這是因為我們擔(dān)心在只有部分設(shè)計的情況下,可能會讓用戶錯誤理解我們的設(shè)計。于是我們在直到項目完善后才將它公布于世。一個項目越是受歡迎,就越難在不刺激到用戶的情況下實驗新想法。

當(dāng) React 還是個剛出生的小嬰兒時,大多數(shù)的用戶都是出于個人喜好選擇了它。而在它幾乎算是行業(yè)標(biāo)準(zhǔn)的現(xiàn)在,很多人用 React 是因為沒得選,可能是因為團(tuán)隊中有人在用,也可能是授課教授選擇了它,而這類用戶往往都并不了解 React 的獨特優(yōu)勢。因此,更多的新用戶都會帶著挑剔的眼光看待 React,期待著新的補(bǔ)丁出現(xiàn)。React 的用戶群之大,相關(guān)文章之多,讓新用戶(有時甚至?xí)欣嫌脩簦┰谡規(guī)椭鷷r都摸不清楚哪些資源才是可信的。當(dāng)然,所有資料的貢獻(xiàn)者都是好心的,但這并不能保證這些資源都是高質(zhì)量的。

很多公司都指望通過發(fā)布一個任何人都可貢獻(xiàn)代碼的開源軟件來吃紅利,但就據(jù)我所知,這種做法實際幾乎從未成功過。回應(yīng)問題,回答使用問題,仔細(xì)規(guī)劃新版本發(fā)布的時間線,這些都要花時間來做。哪怕是代碼貢獻(xiàn),這個被譽為能讓企業(yè)開源的決策收獲可觀回報的大獎,也總是盛名難副。新的貢獻(xiàn)者既不像核心團(tuán)隊一樣對現(xiàn)有代碼了如指掌,也不像他們那樣對項目的遠(yuǎn)大愿景有著清晰的認(rèn)知。外部貢獻(xiàn)者的代碼總要經(jīng)過修改才能使用,即使是一些較為優(yōu)秀的拉取請求也是要過幾輪審查的,對審查者而言,你永遠(yuǎn)無法確定貢獻(xiàn)者會不會更新,以及何時才會更新。這種情況下,通常還是自己寫程序比較快。

此外,絕大多數(shù)的拉取請求都只是順手做的貢獻(xiàn)。某人在做某項目時,發(fā)現(xiàn)了他們正在使用的某開源工具的一個 bug 或者限制,于是他們提交一個小補(bǔ)丁,覆蓋了他們所遇到的獨特情況。通常這類的貢獻(xiàn)者是不會做回頭客的,而肯回來幫忙的都是好人。在幫忙的過程中,他們會逐漸了解你,了解你項目版本間的微妙差異,他們對項目的可靠性和長期的成功有了個人的投入。在 React 中,我們對新的貢獻(xiàn)者總是很友善,希望他們或許會回來繼續(xù)幫忙。但無論我們對他們有多么歡迎,鮮少有人會有精力或意愿繼續(xù)貢獻(xiàn)代碼,這可以理解,每個人都有他們各自的生活,而有意義的貢獻(xiàn)是需要花費時間的。

以上提及的困難點都是成功項目才會遇到的,但開源項目難免會失敗。原因有很多,可能是這個項目解決的問題太過小眾、不常見,或者是它針對的問題已經(jīng)有了個更好的解決方案。開源項目的創(chuàng)建者也許無法證明自己項目的實用價值,或者是沒有提供足夠的文檔,尤其是沒有對新用戶的指引。項目可能需要復(fù)雜的設(shè)置或者前置基礎(chǔ)架構(gòu)環(huán)境,也可能是用某種小眾的編程語言寫的,或者是由于其他技術(shù)原因?qū)е铝瞬患嫒輪栴}。即使某個項目一開始看起來前途無量,但如果 bug 不斷或者面對一些常見問題沒有好的答案,人們也會無情地拋棄它。同樣,隨著時間的推移,項目負(fù)責(zé)方做出了一些重大的負(fù)面改動,或者其他有害項目的決策,人們也會對這個項目失去信任。忽略 OSS 社區(qū)也會讓項目受到影響:這里說的不重視可以小到問題管理,大到項目的未來方向。

誠然,項目的成功會帶來高昂的維護(hù)成本,失敗的可能性也不容小覷,但處理得當(dāng)?shù)拈_源項目也會帶來巨大的價值。

1. 開始之前

文檔以及代碼質(zhì)量

有些開源帶來的好處甚至在項目宣發(fā)之前就已經(jīng)體現(xiàn)出來了。準(zhǔn)備將某項目開源會迫使人們清理代碼、劃出清晰的 API 邊界、讓項目在現(xiàn)有環(huán)境和公司之外實際可用,這樣維護(hù)起來會更方便,日后如果需要重構(gòu)也會容易很多。開源同樣是個讓人認(rèn)真寫軟件運行文檔的好時機(jī),哪怕這個項目只是在公司內(nèi)部使用,好的文檔對新入職的員工而言也是個很好的資源。隨著使用項目的人增加,外部的人 也會開始幫忙寫入門指南。到后來,只要是軟件使用相關(guān),只有你想不到,沒有你找不到的問題和其解決方式,就像 React 的社區(qū)做到的一樣。

2. 擴(kuò)展之后

大多數(shù)開源軟件的好處會隨著項目的受歡迎程度擴(kuò)大而增長。成功的開源項目往往擁有多功能的基礎(chǔ)架構(gòu),和可以重復(fù)利用的核心構(gòu)件。項目越是不針對具體業(yè)務(wù),他人越會覺得這個項目有用,項目作者也就越不用擔(dān)心會泄露公司機(jī)密。

工程品牌

無論是名不見經(jīng)傳的小公司還是五百強(qiáng)科技公司,開源項目都可以提升工程部門的品牌聲譽。2013 年 Facebook 發(fā)布 React 時,很多人對此都不屑一顧,“Facebook 的工程建議?他們連自己在干什么都不知道!”。現(xiàn)在,隨著 React 和其他開源項目的出現(xiàn),F(xiàn)acebook 作為前端工程領(lǐng)域的領(lǐng)軍者已經(jīng)得到了廣泛的認(rèn)可。這在招聘方面是一大助力:在我任職期間,面試過的許多工程師應(yīng)試者都說過,他們想要加入 Facebook,是因為這里是 React 的發(fā)源地。無論公司規(guī)模大小,發(fā)布高質(zhì)量項目不僅可以炫技,還能吸引到新人加入。

提升可靠性

他人在使用你的軟件時會遇到 bug,遇到你沒見過的邊緣情況。多數(shù)情況下,這些 bug 被發(fā)現(xiàn)都是遲早的事,而隨著使用人數(shù)的增多,你也就有更多的機(jī)會發(fā)現(xiàn)并修復(fù)這些 bug(免費的質(zhì)量保證!)。即便 Facebook 擁有上千名使用 React Alpha 版的開發(fā)人員,并在每個新版本公開前發(fā)現(xiàn)了大多數(shù)的 bug,外部 bug 報告里仍然不斷有新的問題匯報進(jìn)來。

投資于員工

發(fā)布開源軟件的最大內(nèi)部擁躉之一,通常都是希望能回饋廣大編程社區(qū)的員工個人。他們借此得到了在日常工作中做公益的機(jī)會,也得以圍繞工作打出個人的招牌。開源項目也可以讓他們的工作更為充實,如果一個項目的受益人不僅是公司,那么人們就更容易發(fā)自內(nèi)心地關(guān)注它。

另外,項目得到推廣后,關(guān)于它的知識也會變得更有價值。公司內(nèi)使用開源項目的員工會收獲可轉(zhuǎn)移的技能,而不是針對專有系統(tǒng)的小眾技巧。擁有開源項目使用經(jīng)歷的員工在轉(zhuǎn)職后上崗會更快。和行業(yè)大眾割裂的專有基礎(chǔ)架構(gòu)只會變成負(fù)擔(dān),而開源則可以幫你避免這種情況。其他項目的同行們會在軟件兼容性上向你看齊,日后使用這些軟件時,集成工作也會大大減少。

技術(shù)上的自知之明

最后,開源中最重要的好處之一:將你的基礎(chǔ)架構(gòu)作為獨立項目發(fā)布,有助于你了解自己技術(shù)棧的真實水平。如果你的公司是以專有技術(shù)為基礎(chǔ),那么對自己程序的盲目自信更像是一種冒險,直接用另一款現(xiàn)有的替代品可能效果會更好。讓項目在公司之外憑借其自身優(yōu)點進(jìn)行競爭,會幫助你看到更現(xiàn)實的情況(亞馬遜 大概是這種策略在大規(guī)模背景下應(yīng)用的最著名的例子)。如果基礎(chǔ)架構(gòu)的某部分能夠憑借自身獲得成功,那這就說明你前進(jìn)的道路是正確的。

3. 值得嗎?

如果你所在公司搭建的某款軟件對業(yè)務(wù)有較強(qiáng)的針對性,那么將其開源的可能性就不會太高。事實上,如果潛在用戶看不到它的價值,那么這款軟件基本就是無用的。但如果開發(fā)的工具泛用性較高,即便它并不完美,開源也可以被列為認(rèn)真考量的事項。明確的維護(hù)承諾也很重要,如果你能夠保證長期維護(hù),用戶會感激不盡的。反之,如果只是一次性的代碼發(fā)布,雖然也會有幫助,但要記得提前告訴大家!

有了開放源碼,你就能得到你所投入的東西。它可以幫助推動行業(yè)發(fā)展,使你的公司受益,并激勵當(dāng)前和未來的員工——雖然這需要時間和努力。如果條件合適,它是值得的。

開放源碼會讓你的付出有所回報,會幫助推動行業(yè)發(fā)展,使你的公司受益,激勵當(dāng)前和未來的員工——盡管這些都需要付出時間和精力,但如果條件合適,你會發(fā)現(xiàn)這些付出都是值得的。

 

 

責(zé)任編輯:張燕妮 來源: 架構(gòu)頭條
相關(guān)推薦

2009-06-11 10:05:52

IT人職場程序員

2019-03-25 08:30:20

騰訊互聯(lián)網(wǎng)

2014-03-03 09:59:36

AWS亞馬遜Web服務(wù)

2020-12-07 10:52:44

開源安全漏洞惡意攻擊

2019-12-26 09:15:44

網(wǎng)絡(luò)IOLinux

2021-01-14 21:46:02

Vue.jsReact框架

2009-03-04 09:59:04

職場心情痛苦

2021-11-04 10:35:16

開源項目React

2020-03-13 09:38:45

離職創(chuàng)業(yè)感受

2024-12-26 07:00:00

2022-10-20 18:43:32

C語言golang安全

2010-01-22 20:51:44

以太網(wǎng)產(chǎn)品100G

2021-06-18 11:37:28

人工智能交互設(shè)計人機(jī)交互

2015-12-17 16:22:15

數(shù)據(jù)中心企業(yè)數(shù)據(jù)中心

2022-05-03 00:03:11

狀態(tài)管理前端開發(fā)

2024-08-30 08:53:24

2012-04-02 00:01:20

Android

2022-10-31 15:42:22

2022-07-06 08:30:36

vuereactvdom

2013-05-21 14:45:42

BYOD網(wǎng)絡(luò)管理員工自帶設(shè)備
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美日韩看片 | 视频一区在线播放 | 91看片在线观看 | 久久精品亚洲欧美日韩精品中文字幕 | 欧美日韩视频 | 综合国产 | 亚洲免费在线观看 | 成人亚洲 | 看亚洲a级一级毛片 | 免费国产一区二区 | 国产一区二区中文字幕 | 色综合99| 91精品国产自产精品男人的天堂 | 亚洲福利网站 | 亚洲国产成人精品一区二区 | 精品国产欧美一区二区 | 午夜精品久久久久久久久久久久 | 四虎永久免费地址 | 中文字幕在线观看成人 | 国产精品区二区三区日本 | 中文字幕一区二区三区乱码图片 | 国产97人人超碰caoprom | 91婷婷韩国欧美一区二区 | 中文字幕久久精品 | 天天天天操| 亚洲精品一区中文字幕乱码 | 亚洲一卡二卡 | 国产一区二区三区免费 | 日韩一区二区三区精品 | 在线视频一区二区 | 欧美日韩电影免费观看 | 欧美日韩精品一区 | www.日日干 | 久久tv在线观看 | 国产黄色网址在线观看 | 91久久国产综合久久 | 中文字幕亚洲视频 | 日韩欧美电影在线 | 欧美一区成人 | 午夜视频在线免费观看 | 国产成人精品一区二区三区在线 |