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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

另外一種回答:

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

《延伸閱讀》

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

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

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

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

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

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

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

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

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

好友人數

AWS Dev Day 開發者大會來了!業界大神集結線上開講,開發你的技術潛能

2021 AWS Dev Day 開發者大會將於 10 月 8 日線上舉行。
評論
Photo Credit:AWS
評論

2021 AWS Dev Day 開發者大會將於 10 月 8 日線上舉行,聚焦全球現代開發者需求,針對不同領域的開發者設計對應的多元議程,許多知名的業界大神也將集結在此、線上開講,豐富的技術資源與知識寶藏等你挖掘▶立即手刀報名

各領域開發者的年度重頭大戲,AWS Dev Day 聚焦 6 大主題

本次開發者大會的主軸,旨在幫助開發者走過實戰應用,以及加強深度運用 AWS 各種服務,不只要提升個人技術能力,更可作為主導開發的基礎墊腳石。聚焦 6 大活動主題,包括:

  • 人工智慧與機器學習 (AI/ML)
  • 現代開發 (Modern Development)
  • 開發營運 (DevOps)
  • 數據分析 (Data & Analytics)
  • 架構設計 (Architecture)
  • 前端開發 (Front-end Development)

身在雲端技術帶動產業高速發展的時代,AWS Dev Day 當帶領參加者用技術突圍、提高決策驅動力,激發潛能之際,更要開拓雲端之旅的可能性,備戰即將到來的多元時代。

線上盛會無遠弗屆,全天技術專題收穫滿滿

Photo Credit:AWS

這一場 AWS Dev Day 是專屬於開發者的年度技術盛會。不只集結業界重量級講師親身分享,帶來第一手的實戰經驗與最新資訊,也會針對不同領域開發者設計對應多元議程,讓企業新創技術團隊一起共同學習。此外,也精選深度高階的技術內容,有意自我加值、技術進階的開發者更不可錯過。更棒的是,本場盛會採全天線上舉行,不受地域限制,還可與專業技術團隊即時線上交流,不只學技術,更是發展人脈好機會。

備戰未來,就是現在!AWS Dev Day 為開發者開拓雲端之旅

無論是前端、後端、DevOps 工程師,IT人員、解決方案架構師、開發者、資料科學家、數據分析師,工程師或系統管理員,只要想暸解 AWS 的熱門雲端技術、客戶案例、平台與服務,都能在豐富的 AWS Dev Day 議程中找到適合的內容。

▶即刻報名 2021 AWS Dev Day 開發者大會