閱讀屋>就業前景> .net程式設計師的就業前景

.net程式設計師的就業前景

.net程式設計師的就業前景

眾所周知,打從.Net誕生那一天起,業界就瀰漫著一股貶低.Net的空氣。許多公司排斥.Net,因為.Net低效的名聲,加之怕被微軟綁架的擔心。許多C++程式設計師有偏見,看不起.Net程式設計師,認為那些人比較菜,才學入門級的語言。Java程式設計師對.Net也不待見,我們會Spring,Hibernate等一大堆框架,你們除了用類庫還會什麼?

這些看法有些確實是偏見,我們大可以有力地回擊。有些看法卻也不無道理,跨平臺性.Net確實不如Java,主要是沒有官方的多平臺支援;論執行效率也確實與Native C++有天生的差距。然而很大一部分責任,要歸疚我們.Net程式設計師。

其實每個開發平臺,每種程式語言都有優勢和劣勢。做為.Net程式設計師,我們需要更專業一點,熟悉.Net的長短之處,最大化的利用和迴避。

我們要熟悉常用的設計模式,懂得DRY、SHY等程式設計原則,專業的運用Framework,寫專業的程式碼。工作幾年了,不要讓人一看就是菜鳥。

要有專業的程式碼風格,使用專業的命名。不要寫幾百行的方法,幾千幾萬行的類,裡面動輒十幾層的花括號。我所見過的這種程式碼,一半以上都是水分。

要知道要儘可能少地建立新物件,儘可能地減少IO和反射操作,尤其避免在迴圈中使用。

要知道對客戶輸入作驗證,要會正則表示式,要懂得如何儘可能避免型別轉換,要會高效的型別轉換方式。

要明白一些基本Framework常識,比如List、Dictionary等集合類不是執行緒安全的,知道如何保證執行緒安全。

不要再寫Request.QueryString[id].ToString()和ConfigurationManager.AppSettings[key].ToString()這樣的可笑程式碼了(我實在納悶為什麼一多半人都這麼寫),不要到處畫蛇添足的Trim和Try…Catch了。當看到這種程式碼,連自己為身為.Net程式設計師群體一員感到羞慚。也就難怪其它語言的程式設計師看不起我們,以菜鳥的眼光看待我們了(參考《做Java開發這一年》),因為我們就是如此。

其實,本來.Net雖然記憶體消耗大點,但執行速度總體並不比C++差,這點許多人已經實驗證明過了。可以參考C#的效能到底有多差 、編寫高效的C影象處理程式。我們要了解.Net,支援.Net,反射機制和異常處理等本是.Net的先進特性,不要把它們變成效能殺手,為攻擊.Net的陣營製造磨刀送箭,反過來砍向.Net。如果你就是在迴圈中一次次進行IO和反射操作,硬要int.Parse+try catch來進行型別轉換,甚至都懶得用StringBuilder的話,我們真該好好問問,C#不可忍受之慢,誰是罪魁禍首?

我不清楚造成.Net程式設計師群體這種現狀的原因。我完全是自學入門的,當然開始時寫了許多爛程式碼,現在可能也在寫,但至少自己在不斷提高。而很多的.Net程式設計師,不上論壇,不看部落格,頂多案頭放著一本一千多頁的《.Net高階程式設計》(其實是低階程式設計,內容MSDN上全有)備查。

我估計,不止是.Net,多數C++/Java程式設計師也不是一天到晚學習和提高,大家需要多樣的生活。但至少,在工作中可以不斷提高吧,工作幾年了犯初學者的錯誤實在是說不過去,只能歸結為態度問題。可能是.Net比其他語言平臺都容易入門得多,許多生性浮躁的初學者選擇了它。甚至在有些人眼裡,程式設計就是來混飯的,只要執行出結果,其他不關我的事。平庸的程式設計師只會產生消極的生產力(為什麼新人不會程式設計)。當我每次為維護專案,花一整天甚至更久解決一個Bug時,我真想把開發者再抓回來,讓他們自己dogfood。

在此的同仁們,你們是否曾有過類似的感受呢?相信大家既然能來部落格園,能看到這篇文章,應該都是有志於不斷學習提高而來。大家是程式設計師中最努力的群體,至少從程式碼風格上看,也跟平日接觸的.Net程式設計師不是一個檔次。不過現實中,不少人既追求專業,而對一些不太專業的用法習以為常。

比如今天看到一篇隨筆如何寫健壯的程式碼,道法同學先展示一段程式碼,然後提出了許多改進思路,這種追求每個細節的`做法很值得學習,然而改進後的程式碼仍有幾個問題:

如果要最嚴格的規範命名的話,parsedArgs不是改為_isArgsParsed,而是標準的Camel方式:argsParsed;還有隻比較字串相等與否,應該用Equals而不是CompareTo方法;最不應該的是出現了goto語句,這是不得已情況才用的。最後丟擲異常時,應該拋一個具體的異常,在任何情況下都不應該丟擲Exception異常。

在此,我向大家強烈推薦,如果沒有讀過,一定要讀讀《.NET設計規範》這本書,如果你之前一本書也沒看過,那也應該先看看它。它是設計.NET Framework的大師們的智慧結晶,作為開發高質量.Net程式的規範指南,還有什麼它更權威的呢?看過這本書,幾乎可以避免所有常見的規範性問題,包括在上段提出的那幾條。

園子裡有好幾個人寫的程式碼是我們的榜樣,像老趙,裝配腦袋等人。還有一個人不得不提下,就是吉日嘎啦。作為一個半路學.Net的老程式設計師,十年來,不斷思考並重構許可權管理系統程式碼,大家可以看看DotNet.Common名稱空間的來源說明,真實地說明了統一規範的好處。雖然大家可能因為他的商業行為不喜歡他,可誰也不能否認,至少在專業及對專業的追求方面,吉日值得敬佩。

最後,我想對園子的.Net程式設計師同仁們說,也是對自己說,專業不是來自有沒有證,而是來自我們的內心。我們要堅持自己的追求,堅持自己的風格,要有自信,堅決同不專業進行鬥爭。正價值的軟體,一定出自追求專業的開發人員,我們決不會寫出讓火車追尾的排程程式的。

【.net程式設計師的就業前景】相關文章: