前端的黑客精神

waterwu發表於2016-01-28

  “全棧”這個詞之前炒得很熱,雖然之前我也寫過文章說全棧其實不太靠譜(全棧之難),但細想回來卻很能理解為什麼這個詞會呼聲那麼高。

  因為,不同的技術棧之間的溝通成本實在太高了。

  產品,設計,終端,前端,後臺,運維,測試……似乎攢齊了就能召喚神龍了,但實際可能的情況卻是人員之間相互扯皮的時間遠大於實際做事的時間。為什麼不能全部技術都由一個人解決,人力得到最有效地利用,哪裡有坑就把人填哪?

  有意思的是,這樣“什麼都懂點”的技術人員還真的有,就算可能這個人從來沒接觸過某個領域,但給他一點點時間上手下,似乎還真能拿出些“還算可以”的成果出來。然後,眾多leader發現,耶?這樣的人用起來真TM順手,而且讓人少操很多心,因為很多本來需要別的技術棧介入才能解決的問題他自己可以吭哧吭哧地先拿個可能比較粗糙的解決方案出來,整個專案就會感覺似乎加了雞血一樣很順利地得到推進。Facebook大概就是學到了這個甜頭,於是全公司推行如是策略,發現似乎還真能玩得轉。

  多而泛還是少而精大概大多數技術人員都有著自己的判斷,全棧的問題不討論先,但這樣的技術人員,就以我自己的感觸,我是不太喜歡被人稱為“全棧”的。比起全棧,我覺得用“黑客”來去定位其實更為合適。

 黑客精神是什麼?

  黑客究竟是什麼樣的人,我也難給出清晰的定位,《黑客與畫家》中有足夠多的討論,但其實也沒給出明確的定位。但至少,黑客有著一些許多其它普通技術人員所做不到的能力,其中我認為最核心的大概有兩個:

  • 高效解決問題:這個可能挺多團隊都會推崇,但具體實施時卻尤其困難,還是得看具體執行人員;
  • 單槍匹馬作戰:這個卻很有意思,很多團隊其實是牴觸這樣的員工的,認為畢竟術業有專攻,而且你做了別人的事總是不好的,而且還很容易鑽牛角尖,讓專案在某個單點上陷入焦油坑。

  所以,黑客大概挺多團隊是不太喜歡的,因為他們特立獨行難以駕馭;但很矛盾的是團隊卻希望能有全棧,能作為整個團隊的潤滑劑,在人員不足(常態)的情況下依然能讓專案得到持續推進。

  事實上一個團隊需不需要全棧?不見得需要;因為如果所有問題都能迎刃而解,誰管你是不是全棧呢?我想,這個才是全棧述求的本質。

 前端的黑客

  不知道其它人是否有同感,我總感覺“全棧”這個詞多少都會牽扯到前端。大概因為,從產品層面來看,前端真的處在一個很中樞的地位;而近幾年來,伺服器、效能、演算法等越來越往底層走,在計算越來越便宜的情況下,效能和演算法變得越來越不值錢,大可以堆計算解決很多問題,計算搞不定靠儲存和索引嘛,砸錢而已。

  但產品及其體驗卻不一樣,有了良好的設計有了足夠多的功能與效能,也都未必能造就一個良好的產品體驗,更不用說產品誕生之間各種不斷出現的細節問題,一個好的設計卻實現不了的話,沒有任何意義。這裡就體現出了前端的價值。

  在對設計側時,前端能否實現設計稿,並與設計師良好溝通對接?在對功能側時,前端能否針對實際情況做出各類的支援,並優化傳輸時的協議與方式?

  這些問題其實本身是可能在設計側或後臺側他們來直接解決的,但現實情況卻是通常是由前端來進行調整與妥協。畢竟,這種灰色地帶的事總得有人做,而似乎設計側不懂程式碼,而許多後臺側則認為前端來做更方便或是乾脆覺得這些不關他們事(比如傳輸,CDN,模板,資料處理等等)……

  就更別說,一個產品終於大致完成時,提交測試時,最多問題的大概一定是前端:相容性與體驗的各類細節無比繁複,不像設計側只需要管效果圖,後臺只需要搞定伺服器。

  這時後臺或是設計側想過來嘗試做“全棧”時就會發現,我擦坑那麼多,還是交給前端吧……而反過來,前端去嘗試設計側與後臺側時,卻會發現,咦?這個世界好單純,而且反正我不是專業的,弄個“夠用”的東西說到底還是不難的,何況業界有那麼多的素材庫、後臺框架、工具庫等等,似乎還真能做到一夫當關萬夫莫開。

  逐漸的,這個前端就成了所謂的全棧:

  • 設計資源的問題,沒關係,我直接拿別人的色彩或是素材補一下,不好看?再找設計師咯;
  • 遇到後臺問題,沒關係,我先弄點假資料撐一下,或者隨便弄臺機器node+mongodb直接做個可用DEMO,至於吞吐量,交給後臺人員。
  • 遇到運維問題,哦,看下別人的示例改下apache配置,偶爾vim改下別的什麼配置再restart一下,至於精細的東西就不關我事了

  但只要能做到這種程度,這位前端就已經成為一名黑客了:對與前端對接的其它領域的問題似乎他都能略懂並且能用自己的方式先扛著,單槍匹馬哦!
你真說像這樣的全棧是全棧?所以我沒這個底氣,也不太相信真有人能十字型發展,不僅前端牛逼而且後臺/設計/運維等等都老在行,這讓專業人士情何以堪?

  問題在於,如果這些別人領域的能力都是半桶水,又沒得到足夠的積累,會給旁人什麼感覺?大概就是上面所說的,大家就會覺得這貨鑽牛角尖,自己的事都沒做好就老想著做別人的事;而他自己也委曲:你們設計或是介面沒準備好,我這邊做前端也麻煩啊,這真是讓人左右不是人。然後結果當然是整個專案依然陷入焦油坑,各自推諉別人沒做好,自己這邊需要時間,整個團隊變成只有一個人的效率。

  其實,牛逼的人到哪都是牛逼的,黑客就像計算機/網際網路界的企業家,能上的時候要上,不能上的時候創造條件也要上,這大概就是黑客精神,而現在,似乎這個重任更多的壓在了前端童鞋們的身上。

相關文章