軟件開發項目老是不段的延期,延期,再延期……固然,有項目經理的問題,也許還有客戶的問題……做爲最直接的開發人員,仍是應該先檢查下本身的問題,想一想咋個提升下效率呢?
1. 程序員的工做重點是編碼麼?不,是思考。
Programmer常常也被稱做Coder,編碼是程序員花時間最多的工做之一,但要說要工做重點,彷佛應該是——
思考。 每一個程序員都不是編碼機器,除了編碼以外,還須要要思考:這段代碼是要幹什麼,須要哪些輸入,須要進行什麼樣的驗證,要通過什麼樣的計算流程,最終須要輸 出什麼,以及,哪些地方可能出現錯誤,而這些錯誤又該如何去處理……甚至,有時候還須要考慮用什麼樣的技術手段更爲合適。
是的,這不是一個Coder的工做,可是,Programmer的確不是Coder,中國沒有純粹的Coder。有人說程序員就是一個翻譯工做 者,這不假。程序員所作的事情就是把一個思惟中的、抽象的東西,翻譯成代碼,而後通過編譯器/解釋器的再次翻譯和操做系統的組織,讓CPU搞明白,照樣執 行。
因此,不要由於任何緣由放棄慎密的思考。多數狀況下,程序員會爲了趕時間一邊寫代碼一邊思考,但這種思考每每沒有通過慎密的邏輯推敲,最終形成 代碼一而再,再而三的被修改、打補丁……當補丁多到必定程度的時候,代碼堆不免會坍塌,即便沒有,也經常是風雨飄搖了。不知道每當這個時候,看到連本身都 不想再改動的代碼是種什麼樣的心情,會不會後悔沒有在開始編碼以前好好的思考呢?
2. 拆除補丁,學會重構。
見過盡是補丁、補丁挨補丁、補丁重補丁的衣服麼?很舒服很溫暖麼?那是文學家說的。若是誰穿過,那他必定知道,這不舒服。若是想舒服,當補丁多到必定程度的時候,就應該把這些補丁拆下來,換一塊完整的大補丁。
一樣,要想程序跑得愉快,少出現錯誤,也毫不是持續地修改錯誤就能實現的。修正錯誤的過程,須要
不斷的重構。 相信多數程序員都有這種感受——補丁加補丁的程序遇到新的錯誤時老是讓人以爲難如下手,而對於新接手的程序員來講,改這樣的代碼,還不如從新寫一個更容易 些。表面上看起來,重構的時間會比直接修改錯誤的時間花得更多一些,可是重構會爲下一次修改作好準備,它會使下一次修改仍然處於一個清晰明瞭的狀態。
除了讓程序結構保持清晰,重構還有一個好處是會促使程序員去思考。修正錯誤時的思考仍然處於一個很是重要的地位。若是在修正錯誤的時候只看到了眼前的錯誤,那很危險,由於你不知道你所作的事情,
究竟是改正錯誤,仍是隱藏錯誤。因此改錯以前,必須思考,必須對錯誤反覆慎密地邏輯推敲,必要的時候甚至要從總體框架去探尋錯誤的緣由。
3. 程序須要練習打字麼?固然!
你見過像小學生同樣一筆一劃寫字的做家麼?也許有,但至少我沒見過。寫做的時候,文字應該緊隨思想的步伐,如行雲流水般地涌現出來,只有這樣,思惟纔不會被文字阻礙,一時閃現的靈感纔不會被白白的放走。一樣,
若是寫代碼的速度跟不上思惟,那思惟就會常常斷線。
程序員不是打字員,不須要專業的打字速度,可是打字的確是一項基本技能,它是保證思惟流暢的基本條件之一。是的,只是之一,由於打字的速度永遠 跟不上思惟的速度,咱們還須要別的東西——工具,這是後面要說的內容。那麼,若是打字速度不夠快,寫程序之餘不妨玩玩打字遊戲……或者聊聊QQ。
4. 每一個人都會用工具,可是真的用好了嗎?
對於程序員來講,最經常使用的工具就是IDE。不過IDE能夠用來作什麼呢?編寫代碼和編譯調試,這些只是它的基本功能而已。對於編碼來講,一個好 的Editor能夠大大的提升編寫代碼的效率。固然,一個好的IDE裏面必定少不了一個好的Editor,但除了IDE以外,好的Editor也爲數不 少。
什麼樣的Editor最好,沒有定論,只能說,沒有最好的,只有最合適的。對於編碼來講,一個好的Editor應該有些什麼樣的功能呢?若是你想代碼清晰可讀,那麼這個Editor最好能有
語法高亮功能,若是有
代碼摺疊功能就更好啦;若是Editor有
高亮當前行的功能,就不用隨時去滿世界找插入點在哪裏;若是有
智能縮進和
格式化代碼的功能,那[Space Key]會很是感謝它的;若是有
矩形選區功能,在某些須要批量修改代碼的時候就不須要不斷的上下左右了——這裏有一個很是重要的功能,那就是
自動完成。打字速度還跟不上思惟麼?那自動完成能夠很好的幫助你提升錄入速度——固然前提是熟練掌握對Editor自動完成功能的使用,這一般利益於設置一個方便的快捷鍵。
說到
快捷鍵,它是一個幾乎每一個Editor都有的功能,卻經常會被會忽略。拷貝粘貼要用鼠標點菜單麼?自動 完成要等待200ms時間彈出麼?選擇單詞是用鼠標拖選、雙擊仍是Shift+方向鍵呢?移動到某個位置是否是要按方向鍵按到手痛……?爲何不試試快捷 鍵?!幾乎每一個Editor都定義了一套方便快捷的快捷鍵,用於快速處理編輯指令,有些Editor甚至考慮到用戶習慣爲用戶提供了自定義快捷鍵的功能。 Ctrl+X、Ctrl+C、Ctrl+V這套剪貼板快捷鍵在Windows下幾乎每一個軟件都是一樣的定義;移動光標除了上下左右及Home、End外, 不妨嘗試一下Ctrl+這些鍵;多數狀況下,若是在移動光標的時候按住Shift,那光標通過的文字就會被選中……固然,快捷鍵遠不止這些,當你以爲某項 操做不方便或者太花時間的時候,你就應該去軟件的Help裏面找找關於這個功能的快捷鍵定義了。多用用,熟悉了,效率就上去了。
IDE、Editor都是開發所必須的工具,但它們不是開發工具的所有。Word、Excel除了用於辦公,也能夠用於一些代碼和數據的臨時整 理,由於它們是專業的文字處理工具和數據處理工具。固然,好用的工具遠不止這些,當你發現了,留個意,說不定哪天就能頓悟——這東西能幫助我處理代碼。除 了工具以外,還有技術,使用工具固然是技術活,再好的工具不會用也是白搭。順便提一下,
正則表達式這個東西,在查找替換的時候真不錯,雖然學習起來須要花點成本,但它值得。
5. 寫程序的時候能夠用中文麼?爲何不!
若是你的公司規定了程序必須用英文來寫,那這一部分你能夠跳過。其實不論英文仍是中文,都是用於表達意思的符號。系統早就Unicode了,數據庫幾乎都支持各類字符集,多數語言都支持中文變量名……在程序中使用中文,早已不存在環境的限制。
程序員們都知道變量名、方法名要有意義。寫英文麼?英文畢竟不是本土語言。你知道正確的單詞該如何寫麼?就算知道,想這個英文名字每每也會想破 頭。一段10行的代碼就花了10分鐘去糾結變量名,哪裏還能有效率?寫註釋就更不用說了,有時間去想一段英文註釋怎麼寫,中文註釋都寫了好幾段了。因此,
若是想用中文,就用吧。哦——前提是,肯定你的程序中使用中文不會有問題,而且,你打漢字的速度真的比較快。
6. 今天你熬夜了麼?熬夜不是好習慣,但我確實熬夜了。
熬夜的程序員必定不是少數,加班的程序員更不可能少。那麼熬夜和加班能有效提升效率麼?短時間內,也許會。可是久而久之,
失去的的不只有效率,還有健康。
做爲腦力勞動者,大腦是最須要保護的部分。保護大腦的最好方式,除了合適的溫度和溼度以外,還有很重要的一點,就是休息。並且,大腦「不是一我的在戰鬥」,它須要身體其它各部分提供各類各樣的服務,因此足量的休息和充分按時的睡眠是必不可少的。
看過《人體使用手冊》嗎?這是一本很火的關於健康的書。這本書就提到了爲何人們須要在10點左右進入睡眠狀態。若是長期熬夜,就不能讓血液得 到充足的補充,就不能讓身體獲得充分的修復。人生不像WOW,不是一瓶紅藥水就能解決問題的,人須要養分和休息來保證大腦及身體其它部分的健康。健康的大 腦纔會思惟敏捷,響應迅速。思惟敏捷的大腦才能提升工做效率,而遲鈍的大腦只會讓程序出現更多的錯誤。
不過,不熬夜不行啊,要否則我爲何會在這個時候仍然在寫博客呢?緣由不少的,好比夜深人靜才能靜心思考;又好比,白天太忙,晚上纔有時間跟朋友們同行們交流;再好比,一到白天就想睡覺,只要晚上纔會神采飛揚……
若是須要安靜的環境,其實22點睡覺5點起牀和1點睡覺8點起牀有一樣多睡眠時間和環境安靜的時間,不過22點睡覺你能夠獲得很好的休息和修 復,但1點睡覺你就錯過了造血的黃金時間。也許你的朋友們會在22點到1點這段時間找你討論一些問題,那你爲何不勸勸你們都22點睡覺,早晨5點再起牀 精力充沛的討論呢?至於黑白顛倒的朋友們,建議大家花些時間好好調整,由於這已是健康在報警了。
至於我爲何如今還不睡覺……我不是在寫這篇博客但願你們都早一點睡覺麼?人多力量大,你們一塊兒來倒倒時差吧!
本文出自 「邊城客棧 學海無涯」 博客,請務必保留此出處http://jamesfancy.blog.51cto.com/2516291/670812正則表達式