程序設計中的感悟

  1. 學習應該從基礎打起,不要一開始就嘗試最高深的技術。

  2. 每看一本書,不要說這章我以前學習過了,也掌握的很好,因此我可以跳過這一章看更重要的了。

  3. 對于作業,遇到不會的盡量不要立刻向別人請教。如果實在解決不了的問題,可以先完成你會的,然后把一些特別的難點提煉出來,向高手請教。不要指望書本和行家能幫你解決一切問題,因為并不是所有問題都能由別人教給你。

  4. 向別人請教問題應該把問題說明白。對于錯誤提示信息應該原樣提供出來,不要按自己理解的信息提供。因為既然你自己做不了,說明你理解一般都有問題。

  5. 問問題最好能帶代碼。

  6. 不要說“編譯通過,可是運行時...",因為編譯錯誤和運行錯誤可能根本沒有關系。一般來說,編譯是語法問題,而運行是邏輯問題。

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

  8. 做程序千個不如做好程序一個。應該盡量完善你現在做的程序,而不要不斷開新的計劃,而每個計劃都虎頭蛇尾。

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

  10. 高深的技巧雖然顯示了高深的本領,但是對于合作往往是有害的,應該盡量寫出簡單易讀的代碼。

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

  12. 復雜的代碼如果實在做不到自注釋,應該給出適量的注釋。

  13. 注釋在修改代碼的時候應該相應修改,不能用陳舊的注釋去誤導別人。

  14. 代碼應該盡量可重用,相同功能的代碼應該由相同的函數完成,重要函數應該給出調試信息,以便調試時及早發現問題。

  15. 應該盡量寫小函數,每個函數盡量不要超過40行或者更少。這樣不用滾動屏幕也許就可以讀完整個函數。

  16. 對于switch語句,盡量不要有過多的分支,如果分支太多,可以考慮用跳轉表。

  17. 盡量少使用一些有爭議的語句,如goto和三目運算符,既然有爭議,它肯定有一定的缺點。

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

  19. 代碼編寫時應該有一定的格式,其基本要求是對理解代碼有一定幫助。

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

  21. 應該盡量考慮到數據的并發控制。

  22. 數據的并發控制應該封裝在接口內,而不要暴露給其他模塊,這樣可以減少因為并發原因導致的程序死鎖。

  23. 數據本身結構不可以太復雜。應該盡量把不相關的數據分割成為兩組數據。

  24. 對于數據量比較大的情況,應該考慮數據庫。

  25. 數據庫接口應該采用標準ODBC或者ADO接口,盡量不要根據實際數據庫DBMS提供的接口來處理,因為你可能在實際使用中更換DBMS。

  26. 小的數據可以考慮文件,文件路徑應該必須設計成相對路徑。

  27. 在一個函數中,應該盡量打開文件后使用完后立刻關閉,這樣其他程序可能使用文件。

  28. 不要嘗試把文件全部讀到內存中,應該分次處理大文件。

  29. 編寫程序應該提供相關的測試程序,以提供測試手段。

  30. 應該考慮代碼、函數的使用情況,不要超越函數可以使用的范圍使用之。

轉載于:https://www.cnblogs.com/Dicky/archive/2005/06/07/169435.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276906.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276906.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276906.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(轉)用Java獲得當前性能信息

(轉)用Java獲得當前性能信息 http://www.blogjava.net/amigoxie/archive/2008/04/30/197564.html在Java中,可以獲得總的物理內存、剩余的物理內存、已使用的物理內存等信息,本例講解如何取得這些信息,并且獲得在Windows下的內存使…

docker wsl2啟動不了_Docker學習筆記

在筆記本上主要還是想以輕量、方便為主,所以采用的是在WSL2中使用docker的這么一個方案。WSL2我筆記本原來是預裝的是WIN10家庭版,需要先升級為專業版,并加入windows預覽體驗計劃。更新完之后,安裝WSL,我選擇的是Ubunt…

暑假集訓-8.06總結

學習內容: 搜索 今日完成題數(不包含多校):4 今日看書情況:15頁 今日心得: 今天學的是搜索,雖然以前學過,但書上講的更具體些, 比如說如何去優化搜索的次數等 英語題目好…

網易馬進:DDB從分布式數據庫到結構化數據中心的架構變遷

導語: 本文根據馬進老師在2018年5月10日【第九屆中國數據庫技術大會(DTCC)】現場演講內容整理而成。馬進 網易 DDB項目負責人來自網易杭研大數據平臺組,入職以來先后參與了分布式數據庫DDB,緩存NKV,網易數據運河NDC等項目&#xf…

element label動態賦值_淺析 vuerouter 源碼和動態路由權限分配

背景上月立過一個 flag,看完 vue-router 的源碼,可到后面逐漸發現 vue-router 的源碼并不是像很多總結的文章那么容易理解,閱讀過你就會發現里面的很多地方都會有多層的函數調用關系,還有大量的 this 指向問題,而且會有…

MessagePack Java 0.6.X List, Map 對象的序列化和反序列化

為了序列化原生的容器對象例如 List 和 Map 對象,你必須使用 Template。 Template 對象是 serializer 和 deserializer 的配對。例如,為了序列化一個 List 對象,在 List 對象中 Integer 對象為元素,你可以使用下面的方法來創建一…

世界領先的界面設計公司:The Skins Factory

該公司的網站: http://www.theskinsfactory.com/skinsfactory/ 該公司誕生于2000年,由一群狂熱的界面愛好者,帶著對GUI的熱情和大膽的洞察力創立。很快,皮膚工廠便成長為世界領先的、真正的、革命性界面解決方案提供商。 更多的精…

HDU 1253 勝利大逃亡 題解

勝利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 44540 Accepted Submission(s): 15483 Problem DescriptionIgnatius被魔王抓走了,有一天魔王出差去了,這可是Ignatius逃亡的好機會.魔王住在一個城堡…

lstm需要優化的參數_使用PyTorch手寫代碼從頭構建LSTM,更深入的理解其工作原理...

這是一個造輪子的過程,但是從頭構建LSTM能夠使我們對體系結構進行更加了解,并將我們的研究帶入下一個層次。LSTM單元是遞歸神經網絡深度學習研究領域中最有趣的結構之一:它不僅使模型能夠從長序列中學習,而且還為長、短期記憶創建…

有哪些漂亮的中國風 LOGO 設計?

提到中國風的logo,我覺得首先登場的應該是北京故宮博物院的logo,鐺!故宮博物院的logo,從顏色,到外形,到元素,無一例外,充滿了中國風的味道,可謂是中國風中的典型。同一風…

大家放松下,仿《大腕》經典對白

仿《大腕》經典對白: 一定要找那最流行的框架, 用功能最強大編輯器, 做就要做最復雜的系統, 輕量級的絕對不行, 框架最簡單也得是SPRING&…

MySQL-8.0.12源碼安裝實例

1、通過官網下載對應的版本后,通過FTP上傳至云服務器的/usr/local/src 目錄 2、解壓縮文件 [rootJSH-01 src]# ls mysql-boost-8.0.12.tar.gz [rootJSH-01 src]# tar zxvf mysql-boost-8.0.12.tar.gz [rootJSH-01 src]# ls mysql-8.0.12 mysql-boost-8.0.12.tar.gz…

python3常用模塊_Python3 常用模塊

一、time與datetime模塊 在Python中,通常有這幾種方式來表示時間: 時間戳(timestamp):通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。我們運行“type(time.time())”,返回的是float類型。 格式…

Windows下的HEAP溢出及其利用

Windows下的HEAP溢出及其利用 作者: isno 一、概述 前一段時間ASP的溢出鬧的沸沸揚揚,這個漏洞并不是普通的堆棧溢出,而是發生在HEAP中的溢出,這使大家重新認識到了Windows下的HEAP溢出的可利用性。其實WIN下的HEAP溢出比Linux和SOLARIS下面的…

地方政府不愿房價下跌 救市或化解房地產調控

地方政府不愿房價下跌 "救市"或化解房地產調控 2008年05月09日 07:29:38  來源:上海證券報 漫畫 劉道偉 由于房地產業與地方政府利益攸關,地方政府最不愿意看到房價下跌。中央房地產調控政策剛剛導致部分城市的房價步入調整,一些…

App移動端性能工具調研

使用GT的差異化場景平臺描述release版本development版本Android在Android平臺上,如果希望使用GT的高級功能,如“插樁”等,就必須將GT的SDK嵌入到被調測的應用的工程里,再配合安裝好的GT使用。支持AndroidiOS在iOS平臺上&#xff0…

UITabBar Contoller

。UITabBar中的UIViewController獲得控制權:在TabBar文件中添加:IBOutlet UITabBar *myTabBar; //在xib中連接tabBar;(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:      (UIViewControlle…

python3.5安裝pip_win10上python3.5.2第三方庫安裝(運用pip)

1 首先在python官網下載并安裝python。我這兒用的是python3.5.2,其自帶了pip。如果你選擇的版本沒有自帶pip,那么請查找其他的安裝教程。 2 python安裝好以后,我在其自帶的命令提示符窗口中輸入了pip,結果尷尬了,提示我…

C語言程序設計 練習題參考答案 第八章 文件(2)

/* 8.8從文件ex88_1.txt中取出成績,排序后,按降序存放EX88_2.TXT中 */ #include "stdio.h" #define N 10 struct student { int num; char name[20]; int score[3]; /*不能使用float*/ float average; }; void sort(struc…

語法上的小trick

語法上的小trick 構造函數 雖然不寫構造函數也是可以的,但是可能會開翻車,所以還是寫上吧。: 提供三種寫法: ? 使用的時候只用: 注意,這里的A[i]gg(3,3,3)的“gg”不能打括號,否則就是強制轉換…