1.分析清楚你要面對的項目。
這是進行全部工做的第一步,若是你在這個地方都犯錯了,那麼後續所作的一切努力都是白費。好比,你要完成圖書管理系統,那麼你就應該明白這個系統主要是用於解決圖書管理的問題。
2.考慮項目設計的方法。
在這個階段,你要根據這個項目的特色考慮設計的工具和語言。好比,對於圖書管理系統,它須要封裝性好,這樣有利於管理和維護。而這個系統開發週期較短,功能較簡單。因此,根據其特色,選擇Java做爲開發語言會是一個不錯的選擇。
3.收集完整的需求。
花時間整理清楚你的用戶羣的基本需求有哪些,而你的產品最終功能有哪些。清晰的思惟可以爲你節省大量的時間。
4.編寫全面的實施計劃(或模型)。
對於小型獨立的項目,這可能只是一個基本的流程圖或一個簡單的函數模型。
對於較大的項目,它有助於將工做分解成模塊,並做以下考慮:
* 每一個模塊的功能是什麼
* 模塊之間的數據如何傳遞
* 每一個模塊如何調用這些數據
雖然收集需求和編寫計劃比起寫代碼來得枯燥,甚至樂趣性比起花費幾小時進行Bug調試還不如。可是,花時間對程序的正確流程和結構進行預先計劃卻能確保後續的程序設計的高效率。
5.爲代碼添加註釋。
在你認爲須要爲代碼進行解釋說明的地方添加註釋。最多見的註釋會出如今函數說明,變量聲明和返回值上,它告訴人們這個東西有什麼用處以及爲何會這麼作。
6.採用統一的命名規則來爲變量命名。
它將幫助你跟蹤每種類型的變量,並弄清楚每種變量的表明的是什麼。比起簡單的x = a + b * c,使用命名規則的命名的變量可以使代碼更加易於維護和調試。最多見的命名規則爲匈牙利命名法,變量名的前綴包含了它的函數型。好比,爲整數變量命名的intRowCounter,以及爲字符串型命名的strUserName。無論你採用的命名規則是什麼,你必須確保命名規則的一致性,而且該規則可以對你的變量具備簡單描述性。
7.對代碼進行組織化編輯。
使用可視化的結構來表現代碼結構。好比,在條件語句(if,else)或者循環語句(for,while)的代碼塊進行代碼縮進。再好比,在變量和操做符中間加入空格。這樣作可以使代碼更直觀優雅,程序流程一目瞭然。
8.進行全面的測試。
首先,在每一個模塊中測試常見的數據值,看是否和預期結果同樣;再而後測試那些很是規的數據類型,用於排除隱藏的錯誤。測試是一門藝術,你可以在實踐中豐富本身的技巧和見地。編寫的測試用例一般會包含如下幾種情形:
極端值:包含極小值和超出預期的極大值,空字符串的文本值,每一個參數都爲空的情形等。
無心義的值:假定用戶會輸入一些與輸出要求無關的東西,看程序會對此有何反應。
不正確的值:好比把零做爲除數,把負數做爲平方根,或者是在輸入字符串的時候輸入了一個數字。
9.實踐,實踐,再實踐。
編程的工做是與時俱進的,你可以在實踐中學到不少新的知識,同時之前學過的舊知識也可以被從新溫習。
10.減少需求改變的風險。
在現實的工做環境中,需求的變化一直是一個使人頭痛但又不得不去面對的問題。可是,假如你可以在項目開始階段將需求和項目計劃愈加清楚地表現出來,那麼在後續由於溝通的誤解或理解力不夠而致使設計的結果與需求產生誤差的問題就會獲得有效的改善。 因此,在項目設計的階段,請在編寫代碼以前清楚的展現你的需求文檔和工做說明:系統須要什麼東西,你正打算作什麼,工做開展到了什麼地步。
11.學會由簡入繁。
假如你須要編程的東西很複雜,這樣作可以幫助你更加順利地開展工做。例如,有這樣一個項目,窗口上有一個任意形狀的圖形,須要設計一個程序可以根據按住鼠標滑動的方向和速度而改變它的形狀。
首先,你能夠設計完成一個正方形在按住鼠標滑動而產生形變的情形。換句話說,這一步主要是解決鼠標運動跟蹤的問題。
接着,將這個正方形的大小與鼠標的速度相關聯起來。換句話說,這一步是解決鼠標速度與自身的形狀的關聯問題。
最後,建立你想要的實際形狀,並把這三個組件鏈接在一塊兒。
這種方法有助於模塊化項目的代碼編寫,其中每一個組件都有它本身的獨立的塊。這對代碼重用是很是有用的(例如你想使用鼠標跟蹤新項目)並使得程序更容易調試和維護。