程式員的素質之編程修養

來源:互聯網
上載者:User

什麼是好的程式員?是不是懂得很多技術細節?還是懂底層編程?還是編程速度比較快?

  我覺得都不是。對於一些技術細節來說和底層的技術,只要看協助,查資料就能找到,對於速度快,只要編得多也就熟能生巧了。

  我認為好的程式員應該有以下幾方面的素質:

  1、有專研精神,勤學善問、舉一反三。

  2、積極向上的態度,有創造性思維。

  3、與人積極交流溝通的能力,有團隊精神。

  4、謙虛謹慎,戒驕戒燥。

  5、寫出的代碼品質高。包括:代碼的穩定、易讀、規範、易維護、專業。

  這些都是程式員的修養,這裡我想談談“編程修養”,也就是上述中的第5點。我覺得,如果我要瞭解一個作者,我會看他所寫的小說,如果我要瞭解一個畫家,我會看他所畫的圖畫,如果我要瞭解一個工人,我會看他所做出來的產品,同樣,如果我要瞭解一個程式員,我想首先我最想看的就是他的程式碼,程式碼可以看出一個程式員的素質和修養,程式就像一個作品,有素質有修養的程式員的作品必然是一圖精美的圖畫,一首美妙的歌曲,一本賞心悅目的小說。

  我看過許多程式,沒有注釋,沒有縮排,胡亂命名的變數名,等等,等等,我把這種人統稱為沒有修養的程式,這種程式員,是在做創造性的工作嗎?不,完全就是在搞破壞,他們與其說是在編程,還不如說是在對來源程式進行“加密”,這種程式員,見一個就應該開除一個,因為他編的程式所創造的價值,遠遠小於需要在上面進行維護的價值。

  程式員應該有程式員的修養,那怕再累,再沒時間,也要對自己的程式負責。我寧可要那種動作慢,技術一般,但有良好的寫程式風格的程式員,也不要那種技術強、動作快的“搞破壞”的程式員。有句話叫“字如其人”,我想從程式上也能看出一個程式員的優劣。

  因為,程式是程式員的作品,作品的好壞直截關係到程式員的聲譽和素質。而“修養”好的程式員一定能做出好的程式和軟體。

  有個成語叫“獨具匠心”,意思是做什麼都要做得很專業,很用心,如果你要做一個“匠”,也就是造詣高深的人,那麼,從一件很簡單的作品上就能看出你有沒有“匠”的特性,我覺得做一個程式員不難,但要做一個“程式匠”就不簡單了。編程式很簡單,但編出有品質的程式就難了。

  我在這裡不討論過深的技術,我只想在一些容易讓人忽略的東西上說一說,雖然這些東西可能很細微,但如果你不注意這些細微之處的話,那麼他將會極大的影響你的整個軟體品質,以及整個軟體程的實施,所謂“千裡之堤,毀於蟻穴”。

  “細微之處見真功”,真正能體現一個程式的功底恰恰在這些細微之處。

  這就是程式員的——編程修養。我總結了在用C/C++語言(主要是C語言)進行程式寫作上的三十二個“修養”,通過這些,你可以寫出品質高的程式,同時也會讓看你程式的人漬漬稱道,那些看過你程式的人一定會說:“這個人的編程修養不錯”。

  ————————————————————————

  01、著作權和版本

  02、縮排、空格、換行、空行、對齊

  03、程式注釋

  04、函數的[in][out]參數

  05、對系統調用的返回進行判斷

  06、if 語句對出錯的處理

  07、標頭檔中的#ifndef

  08、在堆上分配記憶體

  09、變數的初始化

  10、h和c檔案的使用

  11、出錯資訊的處理

  12、常用函數和迴圈語句中的被計算量

  13、函數名和變數名的命名

  14、函數的傳值和傳指標

  15、修改別人程式的修養

  16、把相同或近乎相同的代碼形成函數和宏

  17、運算式中的括弧

  18、函數參數中的const

  19、函數的參數個數

  20、函數的傳回型別,不要省略

  21、goto語句的使用

  22、宏的使用

  23、static的使用

  24、函數中的代碼尺寸

  25、typedef的使用

  26、為常量聲明宏

  27、不要為宏定義加分號

  28、||和&&的語句執行順序

  29、盡量用for而不是while做迴圈

  30、請sizeof類型而不是變數

  31、不要忽略Warning

  32、書寫Debug版和Release版的程式

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.