給你一個任務,限定5天內完成,如果你實際用了6天,可以說是開發效率不高,或者同樣的一個任務,你花了6天,而你的同事卻只用了4天,也可以說是你的開發效率不高,影響開發效率的因素有很多,下面就我個人的理解來談談怎樣提高開發效率.
工具
俗話說,工欲善其事必先利其器,使用得心應手的工具必然會提高開發效率,做微軟平台開發的肯定離不開VS,就VS本身來說,除了常用功能外一些常用的快捷鍵一定要能熟練運用,例如下面是我認為比較有用的幾個快捷鍵:
- 注釋: Ctrl + K + C
- 取消注釋: Ctrl + K + U
- 全屏: Shift + Alt + Ente
- 設置標簽: CTRL + K, CTRL + K
- 下一個、上一個標簽: CTRL + K, CTRL + P 、CTRL + K, CTRL + P
- 列出成員: Ctrl + J
- 顯示參數信息: Ctrl + Shift + Space
- 轉到定義后返回: Ctrl + -
熟練使用快捷鍵對於代碼編寫的速率和跟蹤代碼的速率會有大大的提高。 有時候開發工具自身的功能受到了限制,這是就需要使用插件來豐富功能,這里推薦兩款插件,VS中的ReSharper和SqlServer中的SQL prompt5,ReSharper是功能很強大的一個VS插件,但會拖慢VS的速度,就看怎么去權衡了,我在之前的博文《強大的VS插件—Resharper》做過簡單介紹。SQL prompt5是SqlServer的一個插件,功能也非常強大,有很強的智能提示功能,所提供的SQL Search功能可以對數據庫對象進行快速查找,還提供代碼片段功能,在我之前的博文《SqlServer開發利器—SQL Prompt5》中也做過介紹。 除了我們每天都離不開的VS和SqlServer之外還有一些輔助的開發工具也可以來幫助我們來提高效率,我經常使用的有以下幾種:
- SqlDbx:很小巧的一款數據庫管理工具,但功能非常強大,支持多種數據庫,經常使用他的智能提示和生成腳本等功能,但也有缺點,對中文支持的不是很好;
- Aptana:該工具可以說是做Web開發的利器了,我有時寫JS會用到該工具,有一個亮點之處是智能提示能夠顯示不同瀏覽器是否支持;
- Free Javascript Editor:可以很方便的寫一些簡單的HTML和JS代碼並運行,可以直接選擇JS的代碼片段進行執行,對JS的調試也很方便。
還有一些其他的工具也非常有用,比如我在平時的工作中會經常用到Total Commander和Everything:
- Total Commander:資源管理器的代替工具,支持多標簽,可以很方便的對文件進行操作;
- Everything:一款搜索工具,速度奇快,以前也做過介紹《軟件推薦:磁盤搜索軟件Everything》。
代碼沉淀
有點規模的軟件公司都會有自己的開發框架,這些框架都是多少年積累的產物,目的就是為了提高開發效率,作為一個開發人員平時對於一些常用的代碼也應該有自己的沉淀,不光自己沉淀,在組內也應互相分享,記錄這些沉淀的代碼就可以根據自己的喜好了,記事本、Word、Excel、OneNote等都可以。沉淀的代碼還可以使用VS的代碼片段功能來進行管理,VS2010中對代碼片段支持的很好,上面提到的SqlServer的插件SQL Prompt5也提供了數據庫中的代碼片段功能。 VS中給我們提供了很多現成的代碼片段,要使用自定義的代碼片段最方便的就是使用代碼片段制作工具,工具點擊此處下載,當然也可以自己創建代碼片段文件,然后在VS中導入即可,代碼片段文件其實就是一個xml格式的文件,后綴為snippet。
代碼質量
代碼質量好了,產生的bug就少,和測試的交互也就少了,也就不會因為前面產生的bug而影響后面的進度,效率自然就高了。代碼質量可以分三個方面來看: 1 代碼出錯少,能夠正常的運行;
- 主動學習,提升自我的編程技能;
- 勤思考,對干過的錯要經常總結,一些規范性的原則要牢記,這些常常會出現一些低級錯誤;
- 一個任務做完后需要進行充分的自測。
2 代碼的運行效率高,在大數據、高並發的時候能夠高效運行;
- 高性能的開發得從點滴做起,不放過每一個細節,可能一個小的細節點就是一個性能的瓶頸;
- 要有重構代碼的習慣,好的代碼是重構出來的,高性能的代碼也是重構出來的;
- 多學習一些原理性的知識,不光要知其然還是知其所以然,基礎扎實了,一些性能的問題就知道怎么去優化了;
- 之前翻譯過幾篇關於C#代碼簡化的博文,參見《C#/Net代碼精簡優化技巧(1)》、《C#/Net代碼精簡優化技巧(2)》、《C#/Net代碼精簡優化技巧(3)》
3 代碼最后的運行結果要和客戶的要求一致;
- 做需求之前把自己的理解跟需求分析進行溝通看是否能達成一致,如果是直接和客戶進行溝通可以先做出小Demo,然后給客戶演示,根據反饋不斷改進;
- 在做的過程中如果遇到有疑問的地方一定要和需求或客戶進行溝通,不要根據自己的想法想當然的去進行代碼編寫;
- 必要的時候可以引導客戶,我們的主要目的能以最有效的方式幫客戶解決問題,不能盲目的按照客戶的要求來,有時客戶說需要一雙雨鞋,可能一把傘就可以解決問題。同樣對於需求分析寫的文檔,開發也需要有質疑的精神。
業務知識學習
做任何的系統都避免不了有業務背景,熟練的了解業務知識可以使我們更清楚的知道我們是在做什么。很多的開發人員可能只喜歡鑽研技術,對業務往往沒什么興趣,代碼寫完了,可能還不知道做出的模塊時做什么用的,這樣寫出來的代碼的質量就可想而知了。
- 學習業務可能很枯燥,但卻是一勞永逸的事情,所以不管是否有興趣,還是應該硬着頭皮啃下來;
- 小組內可以成立興趣小組,探討的方式來進行學習,互相分享各自的學習內容,關鍵是組內的氛圍要搞起來;
- 如果是直接跟客戶溝通,需要用客戶能聽懂的語言,比如圖文配合或是一些小Demo,否則當開發術語碰上領域術語就可能都是在對牛彈琴了。
總之,作為一名開發人員,要時刻想着怎樣來提高開發效率,開發效率的提高是你在工作中一個良性循環的開始。如果您有好的方法和建議,歡迎一起分享。