Web 開發者的十大噩夢


我是一名 Web 開發者,身邊有很多人以為我的工作很輕鬆。他們經常看到我坐在家裡敲著鍵盤,旁邊放著一杯熱騰騰的咖啡,但他們沒有看到我面前的這臺電腦裡都發生了什麼。 幾乎每個開發者都會面臨同樣的問題:糟糕的時候猶如噩夢般的恐怖,有時候碰到壞運氣,有時候會覺得“一定是有人對我開了個可怕的玩笑”,感覺從橋上縱身一躍比活著更容易。如果你也是一名經驗豐富的 Web 開發者,曾經與很多客戶合作過項目,那很可能也遇到過這樣的情況。

那些想成為 Web 或 App 開發者的人,他們很可能最後也會遇到以下這些情況。準備好面對它們吧,它們是 Web 開發者不得不面對的 10 個最恐怖的噩夢。

1. 修改別人的代碼

如果你剛加入一家新公司,很可能會發現自己處於這樣的一個境地:接手其他人留下的項目。項目的代碼可能很長,很複雜,難以讀懂,有很多 bug,而且已經上線了。當然,你有可能是那幸運的 5%,不需要去修改這些代碼,但真實的情況是,要你修改代碼的可能性更大。

開發者就像作家一樣,他們都有自己的編碼風格,於是問題就來了。這個時候,文檔成了救星。如果你一直討厭寫文檔(我們不都討厭嗎?),那麼這個時候你會意識到,對於那些需要修改你代碼的人來說,文檔就是救星。

如果沒有文檔,接盤的開發者必須逐行閱讀代碼,以便“參透”代碼原始作者的想法。也只有到了這個時候,我們才會希望有心靈感應這種東西。

2. 在最關鍵時候掉鏈子

經過幾個月的努力,在喝了無數杯咖啡之後,你終於發佈了 App。你非常興奮,終於可以看到隧道盡頭的曙光了。

然而,問題出現了。在演示過程中出現了一個致命的錯誤,或者引來了大量新用戶的抱怨。你認為完美的項目此刻崩潰了,但請等一下。

首先,這種情況可能發生在任何一個人身上,甚至是 Facebook 或 Twitter 那些最聰明的開發者。對於他們來說,這種情況有多麼令人沮喪。負面評論不斷出現,在客戶眼裡,你就像犯下了最嚴重的罪行,或者玷汙了組織的名聲。

你能做些什麼呢?保持冷靜,儘快修復錯誤。不要讓這些問題拖你太長時間,除非修復代碼會導致其他 bug 出現!

3. 修復舊 bug,出現新 bug

修復 bug 是一個無法逃脫的罪惡,它會讓你質疑為什麼當初想要成為一名開發者。每個開發者都經歷過。在敲了幾個小時的鍵盤之後,你把原來的錯誤修復了,卻發現又有了新的錯誤!

你可能更新了一個庫,因為它與正在使用的另一個庫不兼容,結果發現新庫與代碼是衝突的。與此同時,截止日期越來越近,而錯誤卻越來越多。

不要抓狂了,還是試著提前為這種情況做好準備吧。為了防止在未來的項目中發生類似的情況,可以使用 Git 來管理代碼,如果新代碼不能正常運行,可以很容易回滾到以前的版本。

另外,要仔細把每個修訂版本記錄下來。這是一項艱鉅的任務,但等事情到了緊要關頭,你會感謝自己這麼做了。

4. 項目依賴庫有 bug

你知道什麼樣的噩夢更可怕嗎?當你發現 bug 其實並不存在於你的代碼中,而是存在於項目依賴的庫中。在開發網站時,我們通常會依賴很多庫,一個庫也會被用於多個項目。

當你發現項目依賴的庫出現了 bug,該怎麼辦?這是一個兩難的選擇,不是嗎?看看我們可以做些什麼吧。

  • 你可能想要自己修復依賴庫的 bug,如果是這樣,你就要問問自己,你對依賴庫的代碼有多熟悉?
  • 自己修復不了?那麼是否應該請求依賴庫的開發者來修復?但這可能需要一些時間,他們沒有義務馬上為你修復 bug,因為現在是你在趕截止日期,不是他們。
  • 把依賴庫換掉?這樣可以把 bug 清除掉,但你可能需要重寫很多代碼。

這些都是可選項,不管你選擇了哪一種做法,都不容易。向編程之神祈禱吧,但願你就永遠不會遇到這種情況,也不會遇到下面這種情況。

5.“未知”錯誤

你花了好幾天時間,創建了好多個 Git 分支進行測試,但仍然找不到問題的根源。

你到 StackOverflow 上問問題,發現兩年前有人發過同樣的問題,卻沒有人回答。

它可能不是一個致命的錯誤,但它就像一個無法擺脫的瘙癢,一直在折磨你。你絞盡腦汁,不停地告訴自己,如果再花一個小時,或許就會找到問題的根源。

先歇一歇吧,問題的解決方法可能在山的另一面。合上你的電腦,歇一歇,歇上半天(或者一兩天)。此刻你正遭受精神疲勞的折磨,讓你無法“看到”或“發現”問題的根源。休息一下會讓你的腦力滿血復活。

有時候錯誤會自動“消失”,不再是個問題,根本不需要你做什麼。這種情況確實會發生,當你筋疲力盡的時候,根本不會想知道為什麼會這樣。

6. 數據丟失卻沒有備份

即使是非開發人員也會遭遇這個噩夢。數據丟了,然後你詛咒自己沒有花時間備份文件。如果這發生在你身上,你也只能怪自己了。

即使系統很穩定,硬盤也可能突然出問題,你的小孩有可能按了鍵盤上的刪除按鍵,或者你不小心把咖啡灑在了筆記本電腦上。與其埋怨打翻的咖啡,不如事先備份好文件,不至於讓你的血壓升高。要做到這一點其實並不難。

我個人有三種備份文件的辦法:Time Machine、Dropbox 和 OneDrive。OS X 用戶應該啟用 Time Machine,Windows 用戶可以從控制面板啟用備份和恢復功能。

7. 支持 IE6

由於某些原因,你的網站仍然要支持 IE6,因為一些客戶以及他們的用戶仍然在使用 IE6。如果你遇到了這種情況,那麼我可以明確地告訴你,支持 IE6 是多麼耗時、多麼痛苦。

開發者花在 IE6 代碼上的時間可能是 Chrome 或 Firefox 的三倍或更多。更令人沮喪的是,網站在 IE6 中運行不會像在新瀏覽器中那樣流暢。有些效果不生效,有些 bug 會一直困擾你,更不用提那些安全問題了。

這讓開發者的工作變得非常困難。如果說我有什麼建議,我會建議對那些想要支持 IE6 的項目收取雙倍甚至更高的費用,但即使是這樣,仍然不值得。

8. 少了分號

一些編程語言,比如 JavaScript 和 PHP,使用分號作為語句的結尾。

有很多錯誤是因為少了分號,所以你千萬要確保鍵盤上的分號按鍵不能壞掉。你可以考慮準備一個備用鍵盤,以便在緊急情況下使用。

9. 網絡或搜索引擎出問題了

如果你的工作或學習非常依賴搜索引擎,那麼你就應該知道,它對於開發者來說有多重要。作為 Web 開發者,我們使用搜索引擎來搜索代碼示例、查找 bug 解決方案、與同行協作,等等。

如果網絡和搜索引擎出了問題,我們就會陷入以前那種孤立無援的“至暗時刻”。一旦遇到某些問題,我們不知道該怎麼解決。在大多數時候,搜索引擎可以幫我們解決這些問題。所以,向那些在互聯網時代之前從事開發工作的開發者或程序員致敬吧。

10. 成為“無所不能”的專家

最後一點,你會發現成為“專家”有多麼的困難。


分享到:


相關文章: