亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1003 | 回復(fù): 0
打印 上一主題 下一主題

編程修養(yǎng) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2006-07-07 15:14 |只看該作者 |倒序瀏覽
這是陳皓Blog上的文章
http://blog.csdn.net/haoel/
編程修養(yǎng)
――――――――――――――――――――――――――――
什么是好的程序員?是不是懂得很多技術(shù)細節(jié)?還是懂底層編程?還是編程速度比較快?我覺得都不是。對于一些技術(shù)細節(jié)來說和底層的技術(shù),只要看幫助,查資料就能找到,對于速度快,只要編得多也就熟能生巧了。
我認(rèn)為好的程序員應(yīng)該有以下幾方面的素質(zhì):
  1、有專研精神,勤學(xué)善問、舉一反三。
  2、積極向上的態(tài)度,有創(chuàng)造性思維。
  3、與人積極交流溝通的能力,有團隊精神。
  4、謙虛謹(jǐn)慎,戒驕戒燥。
  5、寫出的代碼質(zhì)量高。包括:代碼的穩(wěn)定、易讀、規(guī)范、易維護、專業(yè)。
這些都是程序員的修養(yǎng),這里我想談?wù)劇熬幊绦摒B(yǎng)”,也就是上述中的第5點。我覺得,如果我要了解一個作者,我會看他所寫的小說,如果我要了解一個畫家,我會看他所畫的圖畫,如果我要了解一個工人,我會看他所做出來的產(chǎn)品,同樣,如果我要了解一個程序員,我想首先我最想看的就是他的程序代碼,程序代碼可以看出一個程序員的素質(zhì)和修養(yǎng),程序就像一個作品,有素質(zhì)有修養(yǎng)的程序員的作品必然是一圖精美的圖畫,一首美妙的歌曲,一本賞心悅目的小說。
我看過許多程序,沒有注釋,沒有縮進,胡亂命名的變量名,等等,等等,我把這種人統(tǒng)稱為沒有修養(yǎng)的程序,這種程序員,是在做創(chuàng)造性的工作嗎?不,完全就是在搞破壞,他們與其說是在編程,還不如說是在對源程序進行“加密”,這種程序員,見一個就應(yīng)該開除一個,因為他編的程序所創(chuàng)造的價值,遠遠小于需要在上面進行維護的價值。
程序員應(yīng)該有程序員的修養(yǎng),那怕再累,再沒時間,也要對自己的程序負責(zé)。我寧可要那種動作慢,技術(shù)一般,但有良好的寫程序風(fēng)格的程序員,也不要那種技術(shù)強、動作快的“搞破壞”的程序員。有句話叫“字如其人”,我想從程序上也能看出一個程序員的優(yōu)劣。因為,程序是程序員的作品,作品的好壞直截關(guān)系到程序員的聲譽和素質(zhì)。而“修養(yǎng)”好的程序員一定能做出好的程序和軟件。
有個成語叫“獨具匠心”,意思是做什么都要做得很專業(yè),很用心,如果你要做一個“匠”,也就是造詣高深的人,那么,從一件很簡單的作品上就能看出你有沒有“匠”的特性,我覺得做一個程序員不難,但要做一個“程序匠”就不簡單了。編程序很簡單,但編出有質(zhì)量的程序就難了。
我在這里不討論過深的技術(shù),我只想在一些容易讓人忽略的東西上說一說,雖然這些東西可能很細微,但如果你不注意這些細微之處的話,那么他將會極大的影響你的整個軟件質(zhì)量,以及整個軟件程的實施,所謂“千里之堤,毀于蟻穴”。
“細微之處見真功”,真正能體現(xiàn)一個程序的功底恰恰在這些細微之處。這就是程序員的——編程修養(yǎng)。我總結(jié)了在用C/C++語言(主要是C語言)進行程序?qū)懽魃系娜䝼“修養(yǎng)”,通過這些,你可以寫出質(zhì)量高的程序,同時也會讓看你程序的人漬漬稱道,那些看過你程序的人一定會說:“這個人的編程修養(yǎng)不錯”。
    ————————————————————————
        
        01、版權(quán)和版本
        02、縮進、空格、換行、空行、對齊
        03、程序注釋
        04、函數(shù)的[in][out]參數(shù)
        05、對系統(tǒng)調(diào)用的返回進行判斷
        06、if 語句對出錯的處理
        07、頭文件中的#ifndef
        08、在堆上分配內(nèi)存
        09、變量的初始化
        10、h和c文件的使用
        11、出錯信息的處理
        12、常用函數(shù)和循環(huán)語句中的被計算量
        13、函數(shù)名和變量名的命名
        14、函數(shù)的傳值和傳指針
        15、修改別人程序的修養(yǎng)
        16、把相同或近乎相同的代碼形成函數(shù)和宏
        17、表達式中的括號
        18、函數(shù)參數(shù)中的const
        19、函數(shù)的參數(shù)個數(shù)
        20、函數(shù)的返回類型,不要省略
        21、goto語句的使用
        22、宏的使用
        23、static的使用
        24、函數(shù)中的代碼尺寸
        25、typedef的使用
        26、為常量聲明宏
        27、不要為宏定義加分號
        28、||和&&的語句執(zhí)行順序
        29、盡量用for而不是while做循環(huán)
        30、請sizeof類型而不是變量
        31、不要忽略Warning
        32、書寫Debug版和Release版的程序
1、版權(quán)和版本
———————
好的程序員會給自己的每個函數(shù),每個文件,都注上版權(quán)和版本。
對于C/C++的文件,文件頭應(yīng)該有類似這樣的注釋:
/************************************************
*
*   文件名:network.c
*
*   文件描述:網(wǎng)絡(luò)通訊函數(shù)集
*
*   創(chuàng)建人: Hao Chen, 2003年2月3日
*
*   版本號:1.0
*
*   修改記錄:
*
**************************************************/
而對于函數(shù)來說,應(yīng)該也有類似于這樣的注釋:
/*==========================================================
*
* 函 數(shù) 名:XXX
*
* 參    數(shù):
*
*        type name [IN] : descripts
*
* 功能描述:
*
*        ..............
*
* 返 回 值:成功TRUE,失敗FALSE
*
* 拋出異常:
*
* 作    者:ChenHao 2003/4/2
*
================================================================*/
這樣的描述可以讓人對一個函數(shù),一個文件有一個總體的認(rèn)識,對代碼的易讀性和易維護性有很大的好處。這是好的作品產(chǎn)生的開始。
2、縮進、空格、換行、空行、對齊
————————————————
i) 縮進應(yīng)該是每個程序都會做的,只要學(xué)程序過程序就應(yīng)該知道這個,但是我仍然看過不縮進的程序,或是亂縮進的程序,如果你的公司還有寫程序不縮進的程序員,請毫不猶豫的開除他吧,并以破壞源碼罪起訴他,還要他賠償讀過他程序的人的精神損失費?s進,這是不成文規(guī)矩,我再重提一下吧,一個縮進一般是一個TAB鍵或是4個空格。(最好用4個空格)size;
    ha = ( ha * 128 + *key++ ) % tabPtr->size;
    有空格和沒有空格的感覺不一樣吧。一般來說,語句中要在各個操作符間加空格,函數(shù)調(diào)用時,要以各個參數(shù)間加空格。如下面這種加空格的和不加的:
     
if ((hProc=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid))==NULL){
}
if ( ( hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid) ) == NULL ){
}
iii) 換行。不要把語句都寫在一行上,這樣很不好。如:
    for(i=0;i'9')&&(a'z')) break;
   
    我拷,這種即無空格,又無換行的程序在寫什么?加上空格和換行吧。   
   
    for ( i=0; i '9' ) &&
             ( a  'z' ) ) {
            break;
        }
    }
    好多了吧?有時候,函數(shù)參數(shù)多的時候,最好也換行,如:
    CreateProcess(
                  NULL,
                  cmdbuf,
                  NULL,
                  NULL,
                  bInhH,
                  dwCrtFlags,
                  envbuf,
                  NULL,
                  &siStartInfo,
                  &prInfo
                 );
    條件語句也應(yīng)該在必要時換行:
   
    if ( ch >= '0' || ch = 'a' || ch = 'A' || ch

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/12308/showart_137658.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP