偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

開源 | 老板問我“按鈕”為什么被狗啃了?

開發(fā) 前端
12 月 25 日是圣誕節(jié),在這個(gè)節(jié)日氣氛濃厚的日子里,眾多國內(nèi)外前端開發(fā)者,卻因?yàn)橐粋€(gè)突如其來的意外而坐立不安。

12 月 25 日是圣誕節(jié),在這個(gè)節(jié)日氣氛濃厚的日子里,眾多國內(nèi)外前端開發(fā)者,卻因?yàn)橐粋€(gè)突如其來的意外而坐立不安。 

[[253576]]

本文首發(fā)于航通社,原創(chuàng)文章未經(jīng)授權(quán)禁止轉(zhuǎn)載。航通社 微信:lifeissohappy 微博:@航通社 

一覺醒來,他們發(fā)現(xiàn)由自己參與設(shè)計(jì)的網(wǎng)站、公司內(nèi)網(wǎng)、辦事系統(tǒng)等網(wǎng)頁上,有一些按鈕的上面多了一團(tuán)白色的“積雪”,在白背景下,看著有點(diǎn)像是被“咬掉”了一塊似的。

“老板問我按鈕為什么被狗啃了”,在代碼托管站點(diǎn) GitHub 上,有人這么說。

不僅如此,將鼠標(biāo)指向變化了的按鈕時(shí),原本設(shè)定好的文字說明也統(tǒng)一變成了“Ho ho ho”,這是“圣誕老人”標(biāo)志性的笑聲。

這毫無疑問是一個(gè)圣誕節(jié)的應(yīng)景“彩蛋”。源代碼顯示,只有在系統(tǒng)判斷是 12 月 25 日當(dāng)天,這個(gè)”彩蛋“才會(huì)出現(xiàn)。

不合時(shí)宜的”彩蛋“

在程序中植入“彩蛋”是程序員們?cè)诳菰锏木幊躺钪姓宫F(xiàn)樂趣,同時(shí)聲明版權(quán)的一個(gè)悠久傳統(tǒng)。

我們廣泛使用的 Windows、Android 等操作系統(tǒng),以及 Office 辦公軟件的多個(gè)版本都埋有“彩蛋”。

然而,“彩蛋”不屬于軟件功能的一部分,所以一般都是在不能直接顯現(xiàn)的源代碼等地,或者需要通過極其復(fù)雜的方式才能找到,就像打游戲一樣。

早期的雅虎網(wǎng)站首頁,在左上角”Yahoo!“標(biāo)志的感嘆號(hào)處,點(diǎn)擊那個(gè)小小的點(diǎn),就會(huì)有個(gè)人唱出”雅虎~“的聲音。如果不是有人告訴你,你可能永遠(yuǎn)也想不到這里是可以點(diǎn)的。 

正如張小龍?jiān)谖⑿?7.0 發(fā)布當(dāng)日引用的那句話:”你未看此花時(shí),此花與汝同歸于寂;你來看此花時(shí),則此花顏色一時(shí)明白起來。“一個(gè)優(yōu)秀的彩蛋,應(yīng)當(dāng)是只有在人們特意來看的時(shí)候,才顯現(xiàn)出來。

就算有時(shí)你想讓所有用戶都看到“彩蛋”,那么它所處的位置以及呈現(xiàn)的效果,也需要以不影響軟件功能正常實(shí)現(xiàn)為前提。

例如,谷歌和百度等都會(huì)在一些節(jié)日更改網(wǎng)站標(biāo)識(shí)(logo),雖然所有用戶都看得見,但這個(gè)位置的展示不會(huì)影響使用。

相比之下,在圣誕節(jié)當(dāng)天出現(xiàn)的這個(gè)“彩蛋”,對(duì)廣大前端開發(fā)者來說,就顯得相當(dāng)不合時(shí)宜。 

它不分場(chǎng)合地出現(xiàn)在一些機(jī)關(guān)、企事業(yè)單位的內(nèi)網(wǎng)界面,甚至據(jù)說,在不過圣誕節(jié)的中東國家也出現(xiàn)了。

只要想象一下,有一天你打開電腦,發(fā)現(xiàn)操作系統(tǒng)自作主張的給你換了皮膚,各種按鈕上也都”下雪“了,就能體會(huì)到這一事故給開發(fā)者、老板和客戶帶來的極大驚嚇。 

微博 @sss無常

微博 @這種名字也有人用嗎

一個(gè)生物科學(xué)類網(wǎng)站受到了影響: 

還有一個(gè)賣藏區(qū)產(chǎn)品的網(wǎng)站: 

甚至”湖南省發(fā)改委碳排放管理系統(tǒng)“都中招了: 

此外,還有留言說自己是”在伊朗工作的中國前端“的: 

還有說自己是某某委的,沒丟工作還得多虧了自己的小姨子: 

……

更重要的是,在它毫無預(yù)兆地呈現(xiàn)出來之前,使用這種按鈕的開發(fā)者們,沒有得到任何通知。

他們瘋狂地尋找到底是哪里出了問題,莫非是有黑客入侵,修改頁面做了個(gè)惡作劇?

最終,人們查明了問題:這些“中招”的開發(fā)者們,都在項(xiàng)目中使用了 Ant Design(簡稱 AntD),這是由支付寶母公司螞蟻金服設(shè)計(jì)團(tuán)隊(duì)制作的一套開源的前端框架。

受害者們涌入 GitHub 上的 AntD 項(xiàng)目主頁留言控訴。隨著管理員下午開始清理,你現(xiàn)在再過去看,恐怕已經(jīng)看不到什么了。

牽一發(fā)而動(dòng)全身

在當(dāng)代互聯(lián)網(wǎng)環(huán)境下,前端框架可以看作是20多年前拿光盤裝的“網(wǎng)頁素材庫“的繼承者。

早期網(wǎng)頁設(shè)計(jì)中,要想做出個(gè)性化的按鈕、滾動(dòng)條、下拉菜單、單選框、表單等網(wǎng)頁控件,要么需要完全自己重寫一遍,要么需要先在 PS 里面把網(wǎng)頁畫出來,再切圖,把圖片插入網(wǎng)頁。

此后,YUI、JQuery、Prototype 等由大公司或者開源社區(qū)貢獻(xiàn)出來的公用”素材庫“,逐漸成為業(yè)界的主流選擇。畢竟,有大公司已經(jīng)做好的組件在那兒,自己就沒必要”重新造輪子“。

以螞蟻金服的 AntD 為例,在網(wǎng)頁中引用它的一小段代碼之后,只需要在寫網(wǎng)頁時(shí)規(guī)定一個(gè)按鈕的位置、大小和顏色,你就能得到一個(gè)優(yōu)雅的,稍微有一點(diǎn)點(diǎn)圓角弧度的按鈕,鼠標(biāo)指向和按下按鈕時(shí),還會(huì)有凸起和凹陷的視覺效果。

如此一來,使用公用的前端框架可以大大節(jié)省開發(fā)者的時(shí)間和精力,讓他們把重心放在整體頁面的”謀篇布局“上,甚至為機(jī)器自動(dòng)生成網(wǎng)頁創(chuàng)造了條件。

AntD 不僅提供網(wǎng)頁組件的快捷引用,本身還是一種成體系的設(shè)計(jì)語言。因此,它已經(jīng)被大范圍應(yīng)用在支付寶這款軟件上,以及螞蟻金服內(nèi)部的數(shù)百個(gè)中后臺(tái)應(yīng)用。

通俗的說,只要正確使用 AntD,就會(huì)讓你做出的網(wǎng)頁產(chǎn)品或移動(dòng)端,在細(xì)節(jié)上和支付寶網(wǎng)站或 App 相一致。這或許不會(huì)體現(xiàn)設(shè)計(jì)師的個(gè)性,但至少不會(huì)讓你犯一些低級(jí)錯(cuò)誤。

AntD 的代碼托管于被微軟收購的代碼托管網(wǎng)站 GitHub 上,即使是中國境內(nèi)的開發(fā)者,目前也可以自由引用來自 GitHub 的代碼,而不用擔(dān)心訪問不了的問題。

據(jù)螞蟻金服設(shè)計(jì)團(tuán)隊(duì)今年 9 月的數(shù)據(jù),Ant Design 1.0 在發(fā)布之后的 8 個(gè)月中,就已經(jīng)在 GitHub 上收獲了 11686 個(gè)”星標(biāo)“。

這意味著至少有這些數(shù)量的程序員關(guān)注,并使用了 AntD 到自己的項(xiàng)目上:https://zhuanlan.zhihu.com/p/43593326

就是這一得到業(yè)界廣泛關(guān)注和使用的基礎(chǔ)組件,突然在毫無預(yù)警,也沒有功能開關(guān)的前提下,給所有使用者的按鈕控件”下了一場(chǎng)雪“——而且還是在”生產(chǎn)環(huán)境“中,也就是說,根本不給開發(fā)者后悔的機(jī)會(huì)。

這場(chǎng)”雪災(zāi)“也讓我們有機(jī)會(huì)看到該框架的應(yīng)用范圍之廣泛,以及破壞力之巨大。

AntD 犯了什么錯(cuò)

就像它的前輩 YUI 一樣,AntD 也是一個(gè)典型的”大公司的小產(chǎn)品“,是員工利用工作之余開發(fā)出來,并在工作之外仍能產(chǎn)生廣泛影響的產(chǎn)品。

YUI 當(dāng)年由盛極一時(shí)的雅虎前端程序員貢獻(xiàn)出來,經(jīng)過人們多年來不懈的努力,在雅虎本身幾經(jīng)易手之后,YUI 仍然能作為一個(gè)開源項(xiàng)目具有長久的生命力。

在本次”彩蛋“風(fēng)波之前,AntD 為前端提供了模仿谷歌 Material Design、JQuery 等有限幾套框架之外的新選擇。

它富有活力,又簡約大氣,所以確實(shí)受到業(yè)界的歡迎,也提升了螞蟻金服在開發(fā)者中的形象。

AntD 的主要維護(hù)人員 afc163(微博 @高端工程師 )早在今年 9 月的一次維護(hù)中,就默默地提交了這個(gè)”彩蛋“的相關(guān)代碼,可是在后來幾個(gè)月當(dāng)中,一直沒有人發(fā)現(xiàn)——也許如果事先告知了,就不叫”彩蛋“了吧。

這位維護(hù)人員一開始也沒有意識(shí)到問題的嚴(yán)重性。他先是說這么點(diǎn)小事,不值得在產(chǎn)品更新說明中體現(xiàn)出來。

然后又說”早就做好了被罵的準(zhǔn)備“:

他直到今天下午才發(fā)布官方聲明,道歉并撤銷了這個(gè)引起巨大震蕩的”彩蛋“,同時(shí),項(xiàng)目組負(fù)責(zé)人也保證不會(huì)在代碼庫中再加入與功能無關(guān)的代碼:

https://github.com/ant-design/ant-design/issues/13848

只不過,由這個(gè)自作主張的”彩蛋“引發(fā)的對(duì) AntD 整個(gè)項(xiàng)目的信任危機(jī),也許才剛剛開始。

典型的留言是:”今天你慶祝圣誕節(jié)下雪了,明天清明節(jié),按鈕上是不是還要加一個(gè)墓碑?“

不同于操作系統(tǒng)打補(bǔ)丁,官方做出的任何更改,都只能寄希望于使用它的開發(fā)者們自主更新到新版,并不能即時(shí)”推送“到每一個(gè)項(xiàng)目上。

有比較悲催的前端就說,他們老板看到之后大發(fā)雷霆,他建議發(fā)一個(gè)新版解決問題,然而老板說不能因?yàn)檫@個(gè)發(fā)布新版,所以無法補(bǔ)救。

afc163 承諾代碼中再也沒有其他任何這類”彩蛋“,盡管如此還是有人建議將官方代碼復(fù)制一個(gè)子版本出來(術(shù)語叫做 fork),并由熱心的社區(qū)繼續(xù)維護(hù)這一分叉,以免再出什么意外。

事件之后,自然有喜歡 AntD 的用戶跑上去安慰作者,說這就是無心之失;但恐怕由此引發(fā)的用戶流失,也就是不得不替換新框架(找新的”輪子“)的情況,可能會(huì)更多。

AntD 開發(fā)者并不需要為受到損失的使用者承擔(dān)任何責(zé)任,因?yàn)檫@是一個(gè)采用了 MIT 許可協(xié)議的開源項(xiàng)目。

大多數(shù)情況下,開源的意思是你可以任意使用我做的這個(gè)東西,不需要標(biāo)注版權(quán),不用付費(fèi),也可以隨意修改到爹都不認(rèn)識(shí);但與此同時(shí),我不會(huì)為你的任何潛在的損失承擔(dān)責(zé)任。這次也不例外。

既然做開源項(xiàng)目放到 GitHub 上就是賺個(gè)吆喝,不為盈利,也不承擔(dān)法律責(zé)任,那么很顯然,”信任“就是一個(gè)項(xiàng)目最為金貴的核心價(jià)值。

大家都是拿出業(yè)余時(shí)間無償參與到產(chǎn)品的改進(jìn)和貢獻(xiàn)中的,如果其中的信任缺失了,那么至少作為項(xiàng)目發(fā)起人本人來說,他辜負(fù)了其他參與者的熱情和努力,就必須面對(duì)自己在項(xiàng)目中”涼了“的前景。

開源的深層悖論

有一個(gè)經(jīng)典的比喻,說商業(yè)軟件的開發(fā),是一個(gè)自上而下的系統(tǒng)工程,就像建造一座”大教堂“。

而開源軟件的開發(fā)過程是一群級(jí)別平等的人,共同為某個(gè)事物貢獻(xiàn)自己的一點(diǎn)力量,聚沙成塔,資源互換,更像一座熱鬧的”集市“。

”大教堂與集市“的對(duì)比,讓堅(jiān)持開源路線的人們頗為自豪。中心化的商業(yè)軟件開發(fā)流程,容易受到防不勝防的外界侵襲,也不能對(duì)新涌現(xiàn)出來的需求做即時(shí),快速的反應(yīng),顯得步調(diào)遲緩笨拙。

相比之下,開源軟件的每一個(gè)細(xì)節(jié),都暴露在”陽光之下“,只要有心,人們都可以發(fā)現(xiàn),所以理論上任何一點(diǎn)想拿開源產(chǎn)品”圖謀不軌“的做法都不會(huì)得逞。

正如有人懷疑 AntD ”下次會(huì)不會(huì)直接用代碼挖礦“這樣的擔(dān)憂,就應(yīng)該是沒有必要的。

但是,今天這起事件的發(fā)生,又反映了什么?為什么理應(yīng)有人看到并監(jiān)督的問題,卻安靜地躺了兩個(gè)月都沒人發(fā)現(xiàn)?

航通社認(rèn)為,答案可能就出在大企業(yè)作為初始貢獻(xiàn)者,給用戶們帶來的這份”安心感“。

以”因?yàn)樾湃危园踩?ldquo;作為口號(hào)的支付寶,雖然一度曾經(jīng)做過”社交“的嘗試,但至少在管好我們廣大網(wǎng)民的錢袋子這個(gè)本職工作上,還能說是盡職盡責(zé),讓人放心的。

螞蟻金服開發(fā)的 AntD 也因?yàn)榍辶恋脑O(shè)計(jì)語言,以及嚴(yán)謹(jǐn),簡約的代碼寫作而受到程序員們的好評(píng),還是體現(xiàn)出了大企業(yè)規(guī)范的開發(fā)流程,和靠譜的開發(fā)人員的好處。

不過,可能恰好因?yàn)檫@一點(diǎn),使用 AntD 的人們會(huì)在不知不覺間,忘記這是一個(gè)開源軟件,而且它誕生的本意是支撐螞蟻金服內(nèi)部產(chǎn)品的前端設(shè)計(jì)。

在螞蟻金服內(nèi)部的工作環(huán)境里,員工們可能都喜歡過圣誕,都能讀出彩蛋背后的含義,并正確地理解它。

所以,一次性把所有按鈕都加上彩蛋,如果在螞蟻內(nèi)部的話,可以說無可厚非。

當(dāng) AntD 的適用范圍走出螞蟻內(nèi)部之后,開源社區(qū)本來應(yīng)該盡到代碼審查的義務(wù)。

在實(shí)際使用之前,每個(gè)單獨(dú)的用戶都要仔細(xì)看這個(gè)代碼的各部分是否已經(jīng)充分滿足了自身業(yè)務(wù)的需要,有什么不足或多余的地方,如果是能影響到很多人的問題——就比如”下雪“,就應(yīng)該及時(shí)反饋給初始開發(fā)者,讓他們改進(jìn)。

因?yàn)閷?duì)螞蟻?zhàn)鳛榇蠊镜?rdquo;信任“,這次應(yīng)用 AntD 并不幸中招的前端同學(xué)們,可以說都沒有再花心思去審查代碼。”最安全的地方“也就變成了”最危險(xiǎn)的地方“。

現(xiàn)在,大公司擁抱開源,將非核心業(yè)務(wù)甚至部分核心業(yè)務(wù)代碼開源,依靠訂閱服務(wù)而不是單獨(dú)產(chǎn)品賺錢,已經(jīng)成為一種通行做法,像微軟、IBM 這樣的大公司,其從商業(yè)”教堂“到開源”集市“的大轉(zhuǎn)彎更讓人瞠目結(jié)舌。

大多數(shù)時(shí)候,多些商業(yè)公司做開源,總是好事。代碼共享出來了,就會(huì)有更多人的精力被解放,不至于”重新造輪子“;而全球研發(fā)人員的智慧也能一定程度共享,依靠全球社區(qū)的力量,更能建造一座完美的”通天塔“。

只是,正如上面提到的一樣,這一切的基礎(chǔ),都應(yīng)該是基于”信任“這個(gè)核心價(jià)值。

不管是 AntD 這種”好心辦壞事“,還是早前 Facebook 曾針對(duì) React Native 設(shè)下的專利”陷阱“,都挫傷了社區(qū)對(duì)于項(xiàng)目的信任。

其結(jié)果,本來安心使用的客戶們倉皇出逃,尋找替代品,一切從頭再來,大量增加無效的重復(fù)建設(shè)的成本。

我們都說,現(xiàn)在你裝個(gè) App,連許可協(xié)議和隱私協(xié)議都懶得看,都是一路下一步的,那人家遞給你的現(xiàn)成品,你還要拆開看看它有沒有害你,是不是太神經(jīng)過敏了,也太強(qiáng)人所難了?

要想大家都舒服一點(diǎn),那除非所有自認(rèn)為擁抱開源的大公司,都更認(rèn)真的對(duì)待自己在社區(qū)的角色,通過更嚴(yán)格的自律和自我審查,才能讓大家繼續(xù)安心用著你的產(chǎn)品,真正的為開源做出貢獻(xiàn)。

責(zé)任編輯:龐桂玉 來源: 51CTO技術(shù)棧
相關(guān)推薦

2018-12-25 22:25:22

開發(fā)者技能命令

2021-11-15 12:45:44

協(xié)同過濾算法架構(gòu)

2021-11-23 10:50:29

關(guān)聯(lián)規(guī)則推薦推薦系統(tǒng)開發(fā)

2020-04-10 08:03:04

分布式鎖Redlock算法流行算法

2021-11-12 11:51:03

基于內(nèi)容的推薦查詢推薦

2020-12-04 09:11:50

CTOAPI網(wǎng)關(guān)

2020-10-15 09:35:27

亂碼UTF-8GBK

2023-10-28 00:02:55

2015-02-13 10:42:31

前端工具Dreamweaver

2021-12-14 07:40:07

企業(yè)內(nèi)部開源

2021-11-05 11:10:13

MyBatisSQL查詢

2015-02-12 09:26:07

2022-02-17 08:54:44

Service開發(fā)Mybatis

2020-03-30 17:20:54

B+樹SQL索引

2025-08-11 04:00:00

開源項(xiàng)目PR

2021-10-25 08:49:32

索引數(shù)據(jù)庫MySQL

2020-07-13 07:49:38

Kubernetes容器架構(gòu)

2009-10-28 09:14:43

員工分析軟件

2023-04-04 11:11:52

點(diǎn)贊
收藏

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