樓豬之前的某一個項目完成的還算順利,在測試通過之後,眼見大局已定,就又駕輕就熟地開始了自己的娛樂八卦生涯,這樣持續了幾天。一領導見樓豬每天正襟危坐,每次經過樓豬所在工位,樓豬都若無其事熟練迅捷地切換傳統型程式,終於開始有所警覺。終於,在一個毫無徵兆的上午,某領導從側後方悄無聲息地蹦到樓豬面前,意志堅定地說要額外分配給樓豬一個光榮的任務,讓樓豬維護完善他人系統中一段web用戶端指令碼。按照樓豬的脾氣,在最最滋潤的時候,背後突然挨了一刀,勢必是要反抗一番的。可是,看眼前形勢,推脫幾乎毫無可能,分配的任務又好像是樓豬比較擅長的領域,而且一貫的勤勉、自信和過分的自以為是讓樓豬失去警惕,最終還是答應了下來。
等樓豬拿到代碼開始剖析器,眼前突然一黑,傻了:密密麻麻的指令碼標籤和指令碼引用,惡劣的代碼風格,毫無意義的命名,全域變數橫行,莫名奇妙的function層層堆疊,只有寥寥數語的毫無必要的函數功能說明,暈,第一次生理上都微微感到了不適。老實說,這種糟糕的代碼很不入樓豬法眼。令樓豬感到匪夷所思大吃一驚的是,此程式竟然成功上線很久並且情緒很穩定。稍微鎮定一下,繼續分析,發現他把jQuery包給引用了,但是代碼裡很多都是直接使用javascript的文法,只有一處使用了一個熟悉的美刀$符號。更要命的是很多事件函數他直接寫在具體的html標籤元素上,當時樓豬心裡就說,這種程式瀏覽器安全色性肯定有問題,因為這種直白的寫法就等於直接忽略了jQuery大神的存在。然後,試運行了一下程式。還好,ie7和8下大概正常,幾個事件馬馬虎虎也能正確工作(雖然記憶體明顯吃了不少),但還是被樓豬的火眼金睛發現了一個非常明顯的錯誤,是的,令人驚愕的錯誤。接著又開啟了Firefox,再一試程式,果然,FF在天朝就鐵定是後媽生的,使用者不待見,開發人員也不待見,辛辛苦苦逐一點擊試了一下,這個邋遢猥瑣的web程式竟然一個函數事件都不起作用。
樓豬工作這幾年來,所寫的代碼沒有十萬行也有八萬行了吧。雖不是什麼骨幹中進階開發人才,但是維護這種莫名其妙不負責任的程式實在使人惱火。本來樓豬的指令碼編寫能力也不是很強,不論是全用javascript或者jQuery或者二者兼具或者使用其他什麼流行的javascript庫,用哪個寫都無所謂,但是對於這種明顯違背基本開發常識和編碼規範的代碼,實在是讓樓豬痛苦的無以複加。javascript是多麼流行而磅礴的開發語言,jQuery是多麼成熟而強大的指令碼庫,你沒有熟悉掌握使用過這兩個主流的開發工具,你都不好意思跟人打招呼說你是做web開發的。可是偏偏又有這麼一些人,不會用,亂用,濫用,毫無文法地用......套用一句流行的話說,真是惹火的語言工具,敗火的程式設計和實現。想來自己也真是可悲,從畢業開始工作到現在竟然老是碰到並且付諸實踐維護改進這種讓人苦不堪言的程式碼,實在是欲哭無淚。
這裡,樓豬要勉勵自己,今後不管開發什麼項目,不管使用何種語言做開發,都要遵循合理的程式規範,寫優秀的可維護易維護的代碼,繼續修鍊自己的浩然正氣。沒有優秀的程式設計規範,再牛的開發在後續維護的時候也免不了挨罵。一言以蔽之,不作惡,你好我好大家好。