冷面閻羅

          低調(diào)做人&&高調(diào)做事
          隨筆 - 208, 文章 - 3, 評(píng)論 - 593, 引用 - 0
          數(shù)據(jù)加載中……

          [轉(zhuǎn)]程序設(shè)計(jì)中的感悟

          上午看了一個(gè)高手的blog,他上面寫到有關(guān)程序,我覺(jué)得寫的很不錯(cuò),貼上來(lái),大家一起勉勵(lì)一下
          ??????1. 學(xué)習(xí)應(yīng)該從基礎(chǔ)打起,不要一開(kāi)始就嘗試最高深的技術(shù)。

            2. 每看一本書,不要說(shuō)這章我以前學(xué)習(xí)過(guò)了,也掌握的很好,因此我可以跳過(guò)這一章看更重要的了。

            3. 對(duì)于作業(yè),遇到不會(huì)的盡量不要立刻向別人請(qǐng)教。如果實(shí)在解決不了的問(wèn)題,可以先完成你會(huì)的,然后把一些特別的難點(diǎn)提煉出來(lái),向高手請(qǐng)教。不要指望書本和行家能幫你解決一切問(wèn)題,因?yàn)椴⒉皇撬袉?wèn)題都能由別人教給你。

            4. 向別人請(qǐng)教問(wèn)題應(yīng)該把問(wèn)題說(shuō)明白。對(duì)于錯(cuò)誤提示信息應(yīng)該原樣提供出來(lái),不要按自己理解的信息提供。因?yàn)榧热荒阕约鹤霾涣耍f(shuō)明你理解一般都有問(wèn)題。

            5. 問(wèn)問(wèn)題最好能帶代碼。

            6. 不要說(shuō)“編譯通過(guò),可是運(yùn)行時(shí)...",因?yàn)榫幾g錯(cuò)誤和運(yùn)行錯(cuò)誤可能根本沒(méi)有關(guān)系。一般來(lái)說(shuō),編譯是語(yǔ)法問(wèn)題,而運(yùn)行是邏輯問(wèn)題。

            7. 書看千遍不如做程序一遍,應(yīng)該盡量嘗試去寫程序。

            8. 做程序千個(gè)不如做好程序一個(gè)。應(yīng)該盡量完善你現(xiàn)在做的程序,而不要不斷開(kāi)新的計(jì)劃,而每個(gè)計(jì)劃都虎頭蛇尾。

            9. 要想到你不是一個(gè)人寫程序,而是和大家一起寫程序。

            10. 高深的技巧雖然顯示了高深的本領(lǐng),但是對(duì)于合作往往是有害的,應(yīng)該盡量寫出簡(jiǎn)單易讀的代碼。

            11. 編制程序應(yīng)該盡量做到自注釋,即代碼本身一讀就懂,好象自己在說(shuō)明自己的邏輯一樣。

            12. 復(fù)雜的代碼如果實(shí)在做不到自注釋,應(yīng)該給出適量的注釋。

            13. 注釋在修改代碼的時(shí)候應(yīng)該相應(yīng)修改,不能用陳舊的注釋去誤導(dǎo)別人。

            14. 代碼應(yīng)該盡量可重用,相同功能的代碼應(yīng)該由相同的函數(shù)完成,重要函數(shù)應(yīng)該給出調(diào)試信息,以便調(diào)試時(shí)及早發(fā)現(xiàn)問(wèn)題。

            15. 應(yīng)該盡量寫小函數(shù),每個(gè)函數(shù)盡量不要超過(guò)40行或者更少。這樣不用滾動(dòng)屏幕也許就可以讀完整個(gè)函數(shù)。

           16. 對(duì)于switch語(yǔ)句,盡量不要有過(guò)多的分支,如果分支太多,可以考慮用跳轉(zhuǎn)表。

            17. 盡量少使用一些有爭(zhēng)議的語(yǔ)句,如goto和三目運(yùn)算符,既然有爭(zhēng)議,它肯定有一定的缺點(diǎn)。

            18. 對(duì)于goto,許多工程師技術(shù)高到可以合理使用,而不至于導(dǎo)致問(wèn)題。但是你的程序并不一定給你同水平的人看和修改,他們可不能保證合理的讀和修改這些相關(guān)代碼。

            19. 代碼編寫時(shí)應(yīng)該有一定的格式,其基本要求是對(duì)理解代碼有一定幫助。

            20. 如果數(shù)據(jù)是多個(gè)模塊共有的,應(yīng)該提供一個(gè)封裝的類來(lái)管理它,并提供一個(gè)合適的接口給各個(gè)模塊。這樣,如果數(shù)據(jù)內(nèi)容有重大修改,則只要接口不變,基本上可以保證程序不要很復(fù)雜的修改。

            21. 應(yīng)該盡量考慮到數(shù)據(jù)的并發(fā)控制。

            22. 數(shù)據(jù)的并發(fā)控制應(yīng)該封裝在接口內(nèi),而不要暴露給其他模塊,這樣可以減少因?yàn)椴l(fā)原因?qū)е碌某绦蛩梨i。

            23. 數(shù)據(jù)本身結(jié)構(gòu)不可以太復(fù)雜。應(yīng)該盡量把不相關(guān)的數(shù)據(jù)分割成為兩組數(shù)據(jù)。

            24. 對(duì)于數(shù)據(jù)量比較大的情況,應(yīng)該考慮數(shù)據(jù)庫(kù)。

            25. 數(shù)據(jù)庫(kù)接口應(yīng)該采用標(biāo)準(zhǔn)ODBC或者ADO接口,盡量不要根據(jù)實(shí)際數(shù)據(jù)庫(kù)DBMS提供的接口來(lái)處理,因?yàn)槟憧赡茉趯?shí)際使用中更換DBMS。

            26. 小的數(shù)據(jù)可以考慮文件,文件路徑應(yīng)該必須設(shè)計(jì)成相對(duì)路徑。

            27. 在一個(gè)函數(shù)中,應(yīng)該盡量打開(kāi)文件后使用完后立刻關(guān)閉,這樣其他程序可能使用文件。

            28. 不要嘗試把文件全部讀到內(nèi)存中,應(yīng)該分次處理大文件。

            29. 編寫程序應(yīng)該提供相關(guān)的測(cè)試程序,以提供測(cè)試手段。

            30. 應(yīng)該考慮代碼、函數(shù)的使用情況,不要超越函數(shù)可以使用的范圍使用之。


          Trackback:http://blog.csdn.net/hotsummerghost/archive/2005/07/03/411231.aspx

          posted on 2006-11-16 09:45 冷面閻羅 閱讀(512) 評(píng)論(2)  編輯  收藏 所屬分類: 其他

          評(píng)論

          # re: [轉(zhuǎn)]程序設(shè)計(jì)中的感悟   回復(fù)  更多評(píng)論   

          不要在首頁(yè)轉(zhuǎn)載文章!!
          2006-11-16 11:14 | dudu

          # re: [轉(zhuǎn)]程序設(shè)計(jì)中的感悟   回復(fù)  更多評(píng)論   

          第一條,“學(xué)習(xí)應(yīng)該從基礎(chǔ)打起,不要一開(kāi)始就嘗試最高深的技術(shù)”
          其實(shí),技術(shù)無(wú)所謂高深不高深,原理都是通的;“高深”的技術(shù)無(wú)非是能夠恰當(dāng)?shù)剡\(yùn)用這些原理。
          要知其所以然,不要被表面所迷惑,我想作者要表達(dá)的是層道理。
          2006-11-16 13:42 | SeamanWang
          主站蜘蛛池模板: 石林| 买车| 隆化县| 宁国市| 永仁县| 瓦房店市| 涿州市| 天水市| 玉门市| 会同县| 雷波县| 金秀| 海伦市| 高台县| 太谷县| 荆州市| 合阳县| 斗六市| 罗甸县| 绥阳县| 崇州市| 彭州市| 石渠县| 江永县| 东乌珠穆沁旗| 灌阳县| 盘锦市| 南充市| 麻城市| 尚义县| 潼关县| 富裕县| SHOW| 波密县| 逊克县| 赤壁市| 囊谦县| 饶阳县| 集贤县| 喜德县| 西畴县|