一個好程序員的標準

Tip 1 要方法而不是記憶
我的一個程序員朋友常跟我說記住超過200個C++函數是多麼的有幫助。“我從來不必去查找函數的定義,因此我可以比其他程序員編程快上50%。”他自豪的說。可結果是什麼?難道他不知道編譯器的代碼自動完成功能可以節約大量查找函數及輸入函數的時間嗎,另外當C#發佈出來後,他在記憶函數上面的努力就白費了。當然,編程中對函數的熟記是一件必需的事情,但是你應當花費更多的時間在學習做事的方法上,比如說創建一個數據庫連接,如何產生RSS源等,然後是關注於代碼是如何實現的。學習做事的正確方法遠比死記硬背重要。
Tip 2 建立屬於你自己的資源庫
我們都會有因爲這樣或者那樣原因而不得不建立的代碼集。我從來不記得連接數據庫的準確代碼語句,所以我每次都不得不在代碼集中花10分鐘去查詢它。爲了解決這個問題,我創建了一個用於記錄代碼片段的Word文檔,以幫助我記憶和查找。我的一個同事建了個記錄鏈接的書籤,另外一個同事在他的郵件中存儲了這些內容。無論你的方法是什麼,都是一種可以使你方便查找到文件或內容的好習慣。當你建立你的知識庫後,你會發現它將極大的幫助你去把代碼寫得更好和更快。
Tip 3 知道做什麼而不是怎樣做
很多初級程序員問我“我怎樣做這個,或者我怎樣做那個?”我總是會跟他們說“你想做什麼呢?”聽聞此言後,他們會死盯着我,就好像我跟他們的媽媽約會了一樣。這就是我的下一個觀點,絕不要在知道你想做什麼之前去學習怎樣做,比如一個程序員想要搜索一個文本文件中是否存在的某個特定的詞彙。下面是用C#來實現該目的:
  1. string fileContent;   
  2. System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);   
  3. System.IO.StreamReader myStreamReader = new StreamReader(myStream);    
  4. fileContent = myStreamReader.ReadToEnd();   
  5. myStreamReader.Close();   
  6. int idx = fileContent.   
  7. IndexOf("string");    
  8. if (idx)   
  9. {   
  10. return true  
  11. }  
現在我給他這些代碼去做這件事,但是更重要的是理解自己正在試着做的是什麼。在這個例子中我們想做的是: 1. 打開一個文件 2. 讀其中的內容 3. 關閉文件 4. 搜索字串 5. 如果找到了則輸出結果用這個方法來解決事情產生了以下結果: 1. 它使語言無關 2. 使你的精力集中在需要做什麼上 3. 使你的代碼更易讀和有效知道要做什麼將使你的代碼更有目的性。現在在C++、PHP、VB.NET、Ruby on Rails中編寫上述代碼是很容易的事情了,因爲你理解了要做什麼而不是怎樣去做。
Tip 4 創建適合你的註釋風格
每一個程序員都討厭註釋,但是爲了寫出更有質量和易讀的代碼,我們需要註釋。問題是大多數程序員常被告知如何註釋,一些公司希望每一行代碼都有註釋,另外一些則想要在每個函數前面有一段註釋,還有的規定在不同的代碼塊前註釋。我並不同意這種強制性的規定,只要代碼是可用的、易讀的和有效的,那麼程序員應當可以用其個人喜好的格式來註釋。對我來說在每一行都註釋將破壞代碼的節奏,我更喜歡在函數的前面註釋,羅列我接下來一步步將要做什麼,然後在函數中參考註釋中所寫的步驟進行編程。這是適合我的模式,這樣可以在我編程前幫助我組織設計,也保持了我的節奏,使我不會因爲需要註釋而在編程時中斷,也有助於其他人閱讀我的代碼。下面是我怎樣註釋的例子:
  1. /* 1. Open File*   
  2. 2. Read file into string*   
  3. 3. Close file*   
  4. 4. Search for key word*   
  5. 5. If fond return true;  
  6. */  
  7. string fileContent;   
  8. //1.   
  9. System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);   
  10. System.IO.StreamReader myStreamReader = new StreamReader(myStream);   
  11. //2.   
  12. fileContent = myStreamReader.ReadToEnd();   
  13. //3.   
  14. myStreamReader.Close();    
  15. //4.   
  16. int idx = fileContent.IndexOf("string");   
  17. if (idx)   
  18. {   
  19. //5.   
  20. return true;   
  21. }  
這種註釋風格使我和大多數程序員可以容易的閱讀它。那麼,找一個適合你的註釋風格吧。
Tip 5 精通one,學習another,關注next
有時有程序員發email問我他應該學習什麼語言,什麼是最好的編程語言等等。你至少應該精通一門編程語言,可以相當好的去編寫代碼,然後再去學習掌握另外一門,逐漸的成長。以我自己爲例,我精通C#,擅長PHP,並且已經開始使用Ruby on Rails大概有一兩個月了。爲什麼呢?精通一門語言可以使你進步,在進步中寫更好的代碼,找到完成任務更好的方法等。進步也是我作爲一個程序員年復一年的工作,卻仍沒有覺得枯燥的原因。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章