由屎色自行車棚引起的思考

有一天,我走在路上,看到了一個屎色的自行車棚。車棚顏色飽滿,讓我不由停下了腳步。在陽光的照射下甚至感受聞道了什麼莫名的味道。php

路邊走來一個老大爺,站到了個人旁邊,開始吐槽起來:「若是我是市長,必定不會批准人們使用這個顏色來建造自行車棚!簡直是太可惡啦!」html

我對着大爺笑了笑做爲迴應,而後轉身走開。前端

但心裏卻升起了疑問:「自行車棚到底應該使用什麼顏色?」編程

自行車棚應該使用什麼顏色?

簡短的回答是:你不須要關心這個問題。微信

長一點的解釋是:擁有建造一個自行車棚的能力並不表明你就要阻止別人建造一個色的自行車棚。編程語言

這個比喻是說:不能由於你懂,就要去針對每個細枝末節爭論不休。有人發現一個問題所引起的爭論會與問題的複雜度成反比。編輯器

這是什麼梗?

在上古世紀(約 1999 年左右),FreeBSD 開發社區在關於 sleep(1) 函數是否應該接受非整數參數(以精確到毫秒、微秒的級別)展開了一場曠日持久的爭論。函數

每一個人都能看懂這個問題,因而每一個人都開始發表本身的見解,致使當時的郵件列表裏充滿了關於這個問題的討論。this

當時 FreeBSD 的精神領袖 Poul Henning Kamp 在一封標題爲 [A bike shed (any colour will do) on greener grass...] 的郵件中引用了自行車棚 (Bikeshed) 這個說法:.net

The sleep(1) saga is the most blatant example of a bike shed discussion we have had ever in FreeBSD. The proposal was well thought out, we would gain compatibility with OpenBSD and NetBSD, and still be fully compatible with any code anyone ever wrote.

Yet so many objections, proposals and changes were raised and launched that one would think the change would have plugged all the holes in swiss cheese or changed the taste of Coca Cola or something similar serious.

"What is it about this bike shed ?" Some of you have asked me.

他說關於 sleep(1) 函數的討論是在 FreeBSD 社區內出現過的、自行車棚問題的典型表明。這個問題引起了那麼多的反對、建議以及變動,搞得好像是一旦作了這個調整,世界上全部瑞士奶酪上小孔都會被堵住、全部可口可樂都會變味同樣。

今後以後,在 FreeBSD 社區內,Bikeshed(自行車棚) 這個單詞就有了特殊的含義,一般用來指 某些簡單到全部人均可以發表觀點,而且幾乎全部人都會去發表觀點的問題

長此以往,隨着 FreeBSD 開發者當時在網上的影響力,Bikeshed(自行車棚) 這個說法逐漸傳播開來。

帕金森定理

Bikeshed (自行車棚) 究竟是從何提及的呢?

在 1957 年,英國做家 西里爾·諾斯古德·帕金森 提出了「帕金森瑣碎定理」,用來講明大型組織會花費大量時間在討論可有可無的雜事上,可是真正重大的決議反而能夠輕鬆過關這種現象。

帕金森描述了一個虛構的財政會議,其中有三個議題:第一項是搭建一個價值千萬英鎊的核反應堆,第二項是建一個價值 350 英鎊的員工自行車棚,第三項是每一年爲聯合福利議會咖啡店贊助 21 英鎊的提案。

關於這三個提案,帕金森分別作了描述:

  1. 一千萬英鎊的核反應堆在數額和技術含量上都高高在上、高不可攀,在 2.5 分鐘的討論以後便經過了。一名議會成員提出了徹底不一樣的計劃,然而沒有人願意放棄議會目前取得的進展因此響應寥寥,另外一位熟悉該議題的成員略有擔心,可是他以爲沒法向議會的其餘成員解釋清楚,最終做罷。

  2. 自行車棚的議題則處於全部人的理解範圍以內,並有豐富人生經驗予以支撐意見,議會成員 Softleigh 先生表示鋁製棚頂價格高昂,應使用石棉;Holdfast 先生提議使用鍍鋅鐵;Daring 先生則對是否有必要建自行車棚表示質疑;Holdfast 表示反對。辯論自此拉開帷幕...... 在通過 45 分鐘的討論,並得出有可能節省 50 英鎊的結果以後,議會成員們帶着完成使命的成就感紛紛坐回原位。

  3. 帕金森繼續描寫第三項議題:「也許有些成員沒法區分鋁製棚頂或石棉棚頂,可是全部人都瞭解咖啡:它是什麼,應該如何作,該在哪買,以及到底該不應買。這項議題將會佔用議會成員一小時十五分鐘的時間,然而因爲時間關係,會議結束時議員要求會議祕書提供更多信息,同時將此項議題的決定留待下次議會處理。」

當下的自行車棚問題

如今咱們知道 Bikeshed (自行車棚) 能夠用來表明一些可有可無但會引發大量爭論的問題,那麼咱們軟件開發行業當下的自行車棚問題有那些呢?

  • 世界上最好的編程語言是?(或許這個問題已無需爭論
  • React 和 Vue,哪一個更好?
  • 世界上最好的編輯器是哪一個?Emacs 仍是 Vim?
  • 代碼中的縮進應該用 Tab 仍是空格?
  • ......

相似的問題還有不少,而且一般爭論不休。與其參與到其中圖個嘴上痛快,不如踏踏實實地關注眼前的問題。願你可以辨別自行車棚問題、遠離自行車棚會議,充實地過好每分每秒。

還有更多關於自行車棚的資料,感興趣能夠繼續閱讀:


關注微信公衆號:創宇前端(KnownsecFED),碼上獲取更多優質乾貨!

相關文章
相關標籤/搜索