對絕大多數人來說,都是些老生常談的東西使他們噩夢連連:幽靈、蜘蛛,被戴著冰球面具的殺人狂追殺……但對另一些人來說,他們最害怕的東西就沒那麼常見了。

就拿軟體開發者舉例吧。如果你問他什麼才是最可怕的噩夢,那麼答案很可能跟女巫、黑貓沒什麼關係,真正的噩夢是關鍵的分號不起作用或者微軟的某個產品。在分析了各種各樣工程師關注的論壇之後,我們在此列舉出 13 種工程師們最苦惱的噩夢。

  • 1. 我能通過網路解決問題

Stack Exchange 一類的網​​站已成為軟體開發者的工具箱中至關重要的工具。當然也還有很多其他工程師們尋求幫助的論壇。工程師最頭疼的事,就是貌似無窮的知識來源中其實並沒有解決你問題的答案。

「在 Stackoverflow 網站看到有人發了同樣的問題,然而逛了半天也沒找到答案。」—— Jorge Irun

(漫畫由  伯樂在線  –  輕如紙張  翻譯,來自《吐槽編程問題的五張漫畫》)

「某論壇上點贊最多的答案毫無用處!」—— Ramchand Rajasekaran

  • 2. 鍵盤上最重要的按鍵壞了

不難想像,鍵盤對於開發人員有著不言而喻的重要性。但同樣地,在開發人員眼中並非所有按鍵都那麼重要。尤其是在一些編程語言中,某些按鍵比其他按鍵的使用頻率更高,例如 JavaScript、Perl 和 Objective-C 中的分號鍵。

為了節約時間和避免錯誤,開發人員愛用鍵盤的快捷方式,比起滑鼠,鍵盤的使用則更頻繁。若是軟體開發者夢到鍵盤上他最愛用的按鍵壞了甚至消失了,因而深更半夜裡冒著冷汗驚醒,你也不必覺得驚訝。

「我做過最糟糕的噩夢就是分號鍵壞了。」—— Ali Akbar

「敲了 n 行代碼後才發現 Control 鍵沒反應……」—— Nikesh Shetty

  • 3. 網絡連不上,或者掉線了

一種比較「小眾」的噩夢是,某一工具的論壇下線或是出於維護狀態從而不能解決問題,但更常見的是訪問網站時掉線,無法接入站點。因為畢竟除了訪問論壇這一目的意外,網絡更像一個巨大的象鼻,裡邊裝滿了有用的東西,比如代碼段、開源軟體。

如果網路突然掉線了,就會造成工程團隊間無法聯繫,你喜歡的在線音樂播放服務無法使用,更不用說接入遠程服務或是雲端有多困難……如果你想嚇唬嚇唬工程師,大喊一聲「沒有網絡」就夠了。記得,隨時準備好除顫器(AED)以便急救。

「如果某天網路和谷歌都消失了,那將倒退回與世隔絕、暗無天日的古代。遇到 bug 我們只能束手無策。」—— Thoriq Firdaus

  • 4. 無法再現的危險錯誤

為了修復一個漏洞,在這之前開發人員必須在開發或測試環境中重現導致錯誤的情境。如果你夠幸運的話,在開發環境部署前就能診斷、修復錯誤。許多開發人員害怕隨機出現又無法在受控環境中重現的漏洞。這類該死的漏洞會讓你在重要客戶的面前變得憂心忡忡,坐立不安。這絕對是工程師的噩夢。

「只在眾人或重要客戶面前演示時才出現的漏洞,簡直讓我……」 —— Jeremy Friesner

「在公司時『藍色當機螢幕』現像從不會出現第二次,然而一到客戶家裡就老出現。」 —— Joe Wezorek

  • 5. 缺失好的文檔,甚至沒有文檔

坐下來理解一段沒有良好文檔或註釋的已有代碼是很困難的。若是連文檔或註釋都沒有,那就更糟了。

這情況不僅適用於由承繼工程師的第三方編寫的代碼,還適用於同一個工程師在很久以前寫的缺少良好文檔的代碼。不管是誰切分的不帶說明文檔的代碼永遠是個噩夢。

「毫不誇張地說,維護沒有開發文檔的舊軟體對我而言就是個噩夢。」—— Sam Sartor

  • 6. 糟糕的老闆和主管

和其他人一樣,開發人員也會有愛管閒事又沒啥能力的上司。軟體開發者尤其討厭隨意干涉他們代碼的非技術管理層。

有些領導喜歡承諾我們無法做到的事,低估項目中切分代碼所需的時間。一想到這樣的領導和技術決策人,工程師即使在深夜的夢裡也會痛哭。

「對我而言最糟糕的非經理莫屬,比牙疼還糟糕。他們自視甚高,還期待我們能提早地滿足客戶的任何需求。這些所謂的經理還堅信,code 只是小事一樁,代碼就像浮在空氣中似的,可以信手拈來。」 —— Rachit Agrawal

  • 7. 他人清晰又漂亮的代碼

對大多數工程師來說,他們喜歡也必須在別人的代碼上繼續工作;但別忘了,不同的定時器代碼永遠不會一模一樣,不是嗎?甚至是一段有良好文檔的第三方代碼也會變成一件麻煩事。它要求你做調試,重構,或結構化,使代碼適應可能幾個月前就已切分好的代碼。這些工作會讓工程師們心跳異常。若沒有,真是謝天謝地。

  • 8. 項目裡的要求變更

無論何時,軟體開發者都青睞那些闡述清晰、不能變更的應用需求。在實踐中,很多需求都是匆忙制定的,有時候甚至已經成為了正式形式;要求變更的原因,一部分是有糟糕的項目經理,另一部分則是來自上級或客戶本身的抱怨和乾涉。

總之,不論什麼原因,對需求變更的恐懼——尤其是在最後一分鐘要求變更——永遠是開發者的心頭恨。

  • 9. 消失不見的代碼

無論開發者花了多長時間來調度軟體,如果代碼被意外清除了,一切努力都將付諸東流。代碼意外消失的原因有許多,最主要的是鬼使神差地忘記保存文件,或者未知的惡意漏洞導致無法保存。無論出於什麼原因,不管是不是考慮不周,工程師永遠都害怕花了大量時間精力才得出的算法和函數毀於一旦。

  • 10.IE 瀏覽器

工程師常常會對某些技術忍無可忍。舉個例子,Web 開發人員對用 IE 做開發感到萬分恐懼。儘管它仍是最受歡迎的瀏覽器之一,IE 對於 Web 開發者就是噩夢。

糟糕的是,比起現代、環保的新版本,舊版本的 IE 不友好、用戶多、還需要更多支持。如果說電影「13 號星期五」中殺人狂 Jason Vorhees 嚇倒了一眾 Web 開發者的話,他的面具恐怕就是 IE 圖騰。

  • 11. 身體不適

Coding 不是個體力活兒,但正如其他需要沒日沒夜地在計算機上切分數據的職業那樣,胳膊、手掌、指頭不靈便都很難完成這項工作。任何對視力、理性思考能力有消極影響的因素,都會成為大麻煩。

因此,軟體開發者的典型噩夢是:無法使用,甚至喪失了身體的某一或某些重要部位——個人傷害律師(Personal injury lawyer) Baca Raton 如是說。

  • 12. 我的漏洞傷害了他人

任何軟體開發者都會成為漏洞的製造者。但並非所有的漏洞都具有同等的災​​害性。其中一些漏洞討人厭但無害,另一些則會給公司或客戶帶來損失,負責開發的人員會被開除。不過最壞的情況是,漏洞造成了生理上的傷害,甚至危及他人的生命安全。

  • 13. 段錯誤

工程師中普遍害怕的噩夢還有遭遇段錯誤。這一錯誤由內存違法訪問而引發。也就是說,程式企圖訪問受限的內存,或者執行某個受限的行為。

一般而言,在這種情況下訪問內存單元將通知操作系統,進而反過來通知有問題的,大多數以掛馬程式為結束的進程。開發人員最頭痛的就是要找到引發這一問題的原因。因此,工程師的噩夢裡還有段錯誤。

(本文轉載自合作夥伴《伯樂在線》;圖片來源:dumbledad,CC Licensed;未經授權,不得轉載)