大神工程師教你怎麼練就「coding 速度快、bug 數量少」的境界

當我們遇到我們(或其他人)給自己埋下的邏輯炸彈,寫程式會變得很困難。我們天天在編寫邏輯炸彈。它們就在地表下靜靜地待著,等著爆炸。一旦爆炸,通常就帶來不可預測的嚴重後果。
評論
評論

本文轉自合作媒體 伯樂在線 ,英文原出處 Quora

有網友在 Quora 提問,如何把自己訓練得「coding 速度快,Bug 數量少」?下面是 Glyn Williams 精彩的回覆。

三個工程師被要求穿過一片田地,到達另一側的房子。

菜鳥工程師目測了一下之間很短的距離,說:「不遠!我只要十分鐘。」

資深工程師看了一眼田地,想了一會,說:「我應該能在一天內過去。」菜鳥工程師很驚訝。

大神工程師看了一眼田地,說:「看起來要十分鐘,但我覺得十五分鐘應該夠了。」資深工程師冷笑了一聲。

菜鳥工程師出發了,但只過了一會,地雷爆炸了,炸出了巨大的洞。這下他必須偏移預定的路線,原路返回,反复嘗試穿過田地。最後他花了兩天到達目的地,到的時候顫顫發抖,還受了傷。

資深工程師一出發就匍匐前進,仔細地拍打地面,尋找地雷,只有在安全的時候才前進。他在一天的時間內小心謹慎地緩慢爬過了這片地,只觸發了幾個地雷。

大神工程師出發之後徑直穿過了田地,十分果斷。他只用了十分鐘就到了另一邊。

「你是怎麼做到的?」另外兩個人問道,「那些地雷怎麼沒有傷到你?」

「很簡單,」他回答道,「我最初就沒有埋地雷。」

當我們遇到我們(或其他人)給自己埋下的邏輯炸彈,寫程式會變得很困難。我們天天在編寫邏輯炸彈。它們就在地表下靜靜地待著,等著爆炸。一旦爆炸,通常就帶來不可預測的嚴重後果。

隨著新的程式模組被加入到專案中,專案的複雜度會上升。這種上升不是線性的,而是呈某種指數形式。

工程師的精力是一種有限的資源,所以這種爆炸式增長的複雜度最終會淹沒工程師。你的大腦最終會不堪重負,這是一個轉折點。

這就是炸彈開始爆炸的時刻。有各種各樣的炸彈:在遍歷時修改數組,數組下標偶爾變成負數,另一個線程在你的函數執行的起點和終點中間改變對象的狀態。轟,轟,轟……

我認為最快捷可靠的程式設計需要培養一種避免這些問題的風格。

編寫明確表達行為的程式。選擇有意義、準確、無歧義的符號名字。嚴格執行命名方案,不要用不同的單詞描述同一個事物。

如果有,採用最簡單的解決方案。不要為速度優化,而是為可讀性和透明度優化。

如果你在最初編寫程式時沒有註意可重用性,不要欺騙自己相信程式可以很神奇地被重用。相反,應該從一種情形著手,保持程式的具體性。如果值得修改程式讓它一般化,那麼應該做好徹底重寫的準備。

另外一種回答:

網友 William Emmanuel Yu 言簡意賅的寫了兩行,你懂的。

《延伸閱讀》

想提升工作效率嗎?聽聽 Facebook 高效能工程師怎麼說!

技術強者不一定對公司加分,我該怎麼找到最適合的工程師?

軟體工程師從優秀到卓越的進化之路

香港工程師看台灣 — 台灣的那些事

美國國安局的工程師有比 Facebook 或 Google 的工程師強嗎?

工程師,您也患有「冒牌者症候群」嗎?

投票結果出爐!對軟體工程師來說最困難的是

為何工程師完成最後 20% 的工作時間跟之前的 80% 一樣多?

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

網路服務領導者第一線 DYXnet,以優質資料中心及 BMS 方案成企業數位轉型最強助手

第一線作為大中華區領先的電信中立網路服務供應商,提供企業可靠、安全、靈活管理的 IDC 解決方案,包含 IDC 機房服務以及新型態雲服務─Bare Metal Service (BMS),在兼顧效能及成本效益之下,協助企業擁抱新世代商業型態。
評論
photo credit:第一線DYXnet
評論

近年 5G、AIoT、大數據及數位內容等服務蓬勃發展,企業也逐漸走向多雲、混合雲部署,同時因為疫情促使遠距會議、宅經濟及影視產業商機崛起,大幅提升企業對各類數據的應用,為因應雲端化及數位轉型而急速增加的跨國通訊傳輸,企業對於資料的妥善儲存和維護亦面臨極大的挑戰。

第一線作為大中華區領先的電信中立網路服務供應商,提供企業可靠、安全、靈活管理的 IDC(Internet Data Center)解決方案,包含 IDC 機房服務以及新型態雲服務─Bare Metal Service (BMS),在同時兼顧效能及成本效益之下,協助企業全力擁抱新世代商業型態,簡單迅速地佈局海外市場,在後疫情時代下取得先機,創造雙贏。

第一線提供全方位的 IDC 解決方案,解決企業快速拓展需求

第一線提供全方位的 IDC 機房服務,滿足企業對機房環境高坪效、高品質及高穩定度的要求,企業無須煩惱自建機房昂貴的成本及繁瑣的管理業務,即可享有營運商等級的基礎設施、全球串聯的便捷網路,以及安全可靠的設施環境。

第一線的 IDC 機房基礎設施包含強大的跨國際骨幹網路架構、電力備援系統、環境控制及防火保護,以符合國際電信機房的標準。另外 7X24X365 全天候的監控與技術支援服務,讓企業主可在安全的環境中,穩定快速地處理所有對內與對外的需求。

第一線的 IDC 機房基礎設施包含強大的 跨國際骨幹網路架構、電力備援系統、環境控制及防火保護,以符合國際電信機房的標準,提供企業專業的 IDC 服務。(本圖為示意,非第一線機房圖片) / photo credit:第一線DYXnet

第一線曾協助某大型雲端供應商,在 2019 年新加坡宣布暫停建置新資料中心後,透過自身強大的合作夥伴人脈,獨家取得獨立資料中心的樓層,完成建置逾 300 個機櫃的任務。第一線也針對客戶的需求,客製化整體電力、空調系統、機房隔間、門禁系統等,增設維運管理及人力外派,一條龍整合資源,一次購足免除客戶東奔西走的繁雜準備,更能專注於核心業務發展。

輕量彈性新選擇─Bare Metal Service 新型態雲服務

Bare Metal Service (BMS) 提供自媒體、串流平台及遠端應用等新型態商業模式公司,高彈性、高安全性、低營運成本、輕資產,快速部署的雲端資料中心解決方案,企業無須一次性支付大筆費用,以使用量彈性計費,讓每一分預算都能花在刀口上。

由第一線採購部署,縮短客戶採購建置週期,BMS 具有更高的靈活性及成本優勢,也大幅提升資料乘載,能支援大數據、高效能資料庫,更能應對遊戲及財務金融產業,高資料負載需求,讓每個用戶擁有專屬、靈活且高效能的服務。

第一線累積逾20年的服務經驗,為企業客戶提供標準化及客製方案多元選擇,並善用 BMS 的優勢,實現物理性阻隔獨佔使用資源,同時結合全球資料中心足跡與實體資源分隔,提升安全性,滿足複雜的安全與法規需求。

以第一線的電商客戶為例,電商產業淡旺季的資源需求有所不同,傳統的資料中心解決方案無法彈性應變,因此第一線結合紅帽 OpenShift 容器平台技術打造「一體化混合雲解決方案」,除了依照客戶的促銷週期,提供即時標準設備的短期服務及快速擴充,7x24 小時全天候遠端及現場的技術支援,迅速排除困難,在這次的合作中,第一線協助客戶靈活地佈建資源,貼心且可靠的技術團隊也成為客戶最有力的後盾。

選擇第一線 DYXnet,成為產業最前線

數位經濟浪潮加速來襲,身處瞬息萬變的網路世界和高度競爭的商業環境,高效、安全穩定的伺服器、資料庫及網路設備成為不可或缺的要素,有鑑於各國對於資料主權及落地權的要求愈來愈高,企業對於資料中心及跨境連線的重視程度也日益升高。

第一線專業、積極且到位的服務深受大中華地區企業口碑肯定,囊括 ISO 27001、ISO 20000、ISO 9001 認證,採取最嚴格的安全措施,以業界最佳標準作業提供服務。

此外,第一線自 2008 年以來,積極於東南亞佈局網路資料中心,深耕東南亞市場多年,豐富的人脈及合作經驗,也是企業發展新南向業務最為可靠的夥伴。第一線在海內外豐富的合作經驗,能有效提供各類型企業專業的 IDC 解決方案,更推出 BMS 全方位服務,滿足企業成本、安全性、服務品質等多重考量,協助企業在數位經濟下快速發展數位業務。

第一線(DYXnet)憑藉卓越的團隊領導及經營,優良的企業形象,及豐沛的專業素養,榮獲中華民國傑出企業管理人協會頒發的「第二十一屆金峰獎十大傑出企業」。 / photo credit: 中華民國傑出企業管理人協會

第一線 DYXnet