程式設計師的 13 種噩夢,你遇到過哪些?

胡西瓜發表於2015-08-31

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

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

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

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

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

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

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

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

不難想象,鍵盤對於開發人員有著不言而喻的重要性。但同樣地,在開發人員眼中並非所有按鍵都那麼重要。尤其是在一些程式語言中,某些按鍵比其他按鍵的使用頻率更高,例如 JavaScript、Perl 和 Objective-C 中的分號鍵。為了節約時間和避免錯誤,開發人員愛用鍵盤的快捷方式,比起滑鼠,鍵盤的使用則更頻繁。若是軟體開發者夢到鍵盤上他最愛用的按鍵壞了甚至消失了,就深更半夜裡冒著冷汗驚醒,你也不必覺得驚訝。

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

敲了 n 行程式碼後才發現 Control 鍵沒反應……”—— Nikesh Shetty

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

一種比較“小眾”的噩夢是,某一工具的論壇下線或是出於維護狀態從而不能解決問題,但更常見的是訪問網際網路時掉線,無法接入站點。因為畢竟除了訪問論壇這一目的意外,網路更像一個巨大的象鼻,裡邊裝滿了有用的東西,比如程式碼段、開源軟體。如果網際網路突然掉線了,就會造成程式設計團隊間無法聯絡,你喜歡的線上音樂播放服務無法使用,更不用說接入遠端服務或是雲端有多困難……如果你想嚇唬嚇唬程式設計師,大喊一聲“沒有網路”就夠了。記得,隨時準備好除顫器以便急救。

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

4.無法再現的危險錯誤

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

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

“在公司時藍屏現象從不會出現第二次,然而一到客戶家裡就老出現。” —— Joe Wezorek

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

坐下來理解一段沒有良好文件或註釋的已有程式碼是很困難的。若是連文件或註釋都沒有,那就更糟了。這情況不僅適用於由承繼程式設計師的第三方編寫的程式碼,還適用於同一個程式設計師在很久以前寫的缺少良好文件的程式碼。不管是誰切分的不帶說明文件的程式碼永遠是個噩夢。

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

6.糟糕的老闆和主管

和其他人一樣,開發人員也會有愛管閒事又沒啥能力的上司。軟體開發者尤其討厭隨意干涉他們程式碼的非技術管理層。有些領導喜歡承諾我們無法做到的事,低估專案中切分程式碼所需的時間。一想到這樣的領導和技術決策人,程式設計師即使在深夜的夢裡也會痛哭。

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

7.他人清晰又漂亮的程式碼

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

8.專案裡的要求變更

無論何時,軟體開發者都青睞那些闡述清晰、不能變更的應用需求。在實踐中,很多需求都是匆忙制定的,有時候甚至已經成為了正式形式;要求變更的原因,一部分是有糟糕的專案經理,另一部分則是來自上級或客戶本身的抱怨和干涉。總之,不論什麼原因,對需求變更的恐懼——尤其是在最後一分鐘要求變更——永遠是開發者的心頭恨。

9.消失不見的程式碼

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

10.IE 瀏覽器

程式設計師常常會對某些技術忍無可忍。舉個例子,Web 開發人員對用 IE 做開發感到萬分恐懼。儘管它仍是最受歡迎的瀏覽器之一,IE 對於Web 開發者就是噩夢。糟糕的是,比起現代、環保的新版本,舊版本的 IE 不友好,使用者多,還需要更多支援。如果說電影“13號星期五”中殺人狂 Jason Vorhees 嚇倒了一眾Web 開發者的話,他的面具恐怕就是 IE 圖騰。

11.身體不適

程式設計不是個體力活兒,但正如其他需要沒日沒夜地在計算機上切分資料的職業那樣,胳膊、手掌、指頭不靈便都很難完成這項工作。任何對視力、理性思考能力有消極影響的因素,都會成為大麻煩。因此,軟體開發者的典型噩夢是:無法使用,甚至喪失了身體的某一或某些重要部位——個人傷害律師(Personal injury lawyer) Baca Raton 如是說。

伯樂線上推薦閱讀:《程式設計師的常見健康問題

12.我的漏洞傷害了他人

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

伯樂線上推薦閱讀:《軟體Bug引發的十次嚴重後果

13.段錯誤

程式設計師中普遍害怕的噩夢還有遭遇段錯誤。這一錯誤由記憶體違法訪問而引發。也就是說,程式企圖訪問受限的記憶體,或者執行某個受限的行為。一般而言,在這種情況下訪問記憶體單元將通知作業系統,進而反過來通知有問題的,大多數以掛馬程式為結束的程式。開發人員最頭痛的就是要找到引發這一問題的原因。因此,程式設計師的噩夢裡還有段錯誤。

相關文章