天天看點

程式設計王道,唯“慢”不破

  我爸常跟我說的一句話是,慢一點碼,才能快點把程式寫完。

  我在舊金山很多家網際網路公司工作過,現在已經 52 歲了,對于程式猿這個職業來說,我的年齡算偏大的。我寫代碼的速度近乎龜速,事實上,我更像是一個會寫代碼的設計師。

  以前有一次,我和一些比較年輕的程式猿一起工作,他們信奉的程式設計宗旨是“速度快、更疊少”。我們在同一個 codebase 裡合作,就像在共同煮一大鍋湯一樣。如果我們每個人都持續不間斷的貢獻代碼的話,未來這個工程應該就會很美很壯觀的呈現出來。

  但是并沒有。

程式設計王道,唯“慢”不破

  事實不是這樣的。程式設計從來就不應該是拿工具來減少軟體開發的時間的。

  程式設計應該是一項有節奏感有韻律的運動。我傾向于把工程依照不同的規模和時間度量分成不同的塗層,每一個塗層再從探索、實驗、error、臨時變量這些細小的東西開始做起。有點像建設腳手架的形式。每一個塗層最終完成的時候是一段可以部署和擴充的 implementation-ready 代碼。這種開發過程有點像是從政策到設計方案最後到完成一棟真正的建築。

  有時候當這棟建築完成之後,我還會推倒重來一遍,因為我覺得我有更好的建築方法。這種新的方法有時候是對的,有時候是錯的,事實上除非真正去再做一遍,不然你永遠無法知道究竟哪一種方法更好。

程式設計王道,唯“慢”不破

  回到最初那鍋湯的問題:在軟體開發生态圈裡,關于對整個設計流程産生推動與支援的混合思考是很重要的,沒有這一部分的工作,再快的程式猿又能做出多好的設計?很多神經系統科學家相信神經元資訊的流動在大腦的傳導過程中會有一個短暫的堵塞和混響,這對思維和感覺會有很重要的作用。程式設計的設計也應該是這樣,需要時間。

  另一個問題在于,人們對科技越來越詭異的迷戀,以及開發人員對工具異常的狂熱。大家總在說,為什麼有的軟體和應用做得這麼爛?沒錯,确實很爛。爛的原因在于,太多一味求快的程式猿在忙着建設工具,然後用這個工具去支援和适配另一個他們建好的工具,然後再用這個工具去支援和适配另另一個他們建好的工具,然後再用這個工具幫他們寫出更快的代碼。

  這就是我為什麼覺得軟體開發需要更多的“人”,而不是“工具”的原因。并且,這些人不僅僅隻是幫忙做做外面的 UI 藝術之類的而已,應該要有更多的人深入軟體開發的内部——確定軟體更多的與人文産生共鳴和回響。

  程式設計不是打字。

  在電腦前噼裡啪啦、彈指揮間的感覺确實很爽,這種鍵盤上啪啪啪的快感卻很容易讓人忘記程式設計是一項腦力活動,而不是體力勞動。程式設計的真正奧義在于,把人類的思維、設計、語言、邏輯和精神創造以一種計算機可以識别和儲存的方式記錄下來。

程式設計王道,唯“慢”不破

  我妻子有時會跑到院子裡問我,你在程式設計嗎?我說,對,我在程式設計。事實上我可能正拿着鉗子修剪花盆裡的花草,或者做做施化肥之類的事情。

  植物、土壤、鉗子,這些都是程式設計的好工具,正如鍵盤、滑鼠和雙螢幕一樣。

  目前,我們正在經曆一個經濟産業的轉型期,從新興到可持續發展之間的一次過渡。新的軟體産品和商業模式是需要發展,但為了網際網路行業發展的可持續性,這種速度應該降下來一些了。撸代碼不僅僅隻是在撸當下使用者的需求,撸的更是未來某個行業領域的架構基礎。代碼應該在程式員的關愛下慢慢的、茁壯的成長。Like good wine. Like a baby.

本文轉自jiahuafu部落格園部落格,原文連結http://www.cnblogs.com/jiahuafu/p/4643429.html如需轉載請自行聯系原作者

jiahuafu

繼續閱讀