成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

程序員:請不要輕視我們的過去

開發(fā) 前端
今天一個偶然的機會打開了自己以前寫的舊程序,時間大概是上世紀90年代后期(96-99年左右),代碼是用C語言寫的,運行在Windows 3.1或Windows 95環(huán)境下。看到它們,有一種看上學時照片的感覺,感覺是那么的青澀。拿出一段曬曬

這是當年開發(fā)的一個煤炭安全監(jiān)控軟件里增加新測點的函數(shù)。如果在當年看這段代碼,感覺這應該是一段挺不錯的代碼,比如:注釋很多,幾乎每行都有注釋;匈牙利命名法,使用像lp、w這樣的前綴;結構、數(shù)組、宏定義,看起來都是有板有眼。

  1. //-----------------------------------------------------------------------------  
  2. // 函數(shù):NewPoint  
  3. // 功能:分配一個測點定義緩沖區(qū)。  
  4. // 入口參數(shù):  
  5. //    lpPNum    測點號指針。  
  6. // 出口參數(shù):  
  7. //    如成功,返回在測點定義表中的偏移;如失敗,返回0xffff。  
  8. //-----------------------------------------------------------------------------  
  9. WORD NewPoint(LPCSTR lpPNum)  
  10. {  
  11.     WORD i;  
  12.     LPTPOINT lpTmpPt;  
  13.  
  14.     // 在測點定義表中找空的緩沖區(qū)  
  15.     for (i=0;i<PtTab.wCount;i++) if (PtTab.lpPt[i].tpDel) break;  
  16.     if (i==PtTab.wCount) {  
  17.         // 如未找到,則判斷測點數(shù)是否已到***值,如已到,則返回失敗  
  18.         if (PtTab.wCount+1>MAXPOINT) return(0xffff);  
  19.         // 如未找到***值,則測點總數(shù)加1。即在測點定義表的***追加一個緩沖區(qū)  
  20.         PtTab.wCount++;  
  21.     }  
  22.     // 初始化緩沖區(qū)  
  23.     lpTmpPt=&PtTab.lpPt[i];  
  24.     // 將刪除標志(即緩沖區(qū)空標志)置1,作為后面具體定義時區(qū)分增加與修改的標志,  
  25.     // 如是修改,則此標志必為0  
  26.     lpTmpPt->tpDel=1;  
  27.     // 拷貝測點號到緩沖區(qū)  
  28.     lstrcpy(lpTmpPt->tpNum,lpPNum);  
  29.     // 將前一此操作測點的定義復制到緩沖區(qū)  
  30.     lstrcpy(lpTmpPt->tpName,HistPt.tpName);  
  31.     lpTmpPt->tpType=HistPt.tpType;  
  32.     lpTmpPt->tpOp=HistPt.tpOp;  
  33.     // 賦缺省的狀態(tài)與數(shù)值  
  34.     lpTmpPt->tpState=PS_SUSP;  
  35.     lpTmpPt->tpRValue=0;  
  36.     lpTmpPt->tpDValue=0;  
  37.     // 置缺省的狀態(tài)變化時間為當前時間  
  38.     _fmemcpy(&lpTmpPt->tpTime,&Time,sizeof(SYSTIME));  
  39.     // 將偏移值返回  
  40.     return(i);  
  41. }  
  42.   

時間已經過去十幾年了,計算機系統(tǒng)、開發(fā)語言、設計思想都有了很大轉變,現(xiàn)在要寫一段同樣功能的代碼,可能完全不同了。

***的變化應該是面向對象技術的應用,測點和測點表都會從struct變?yōu)閏lass,測點數(shù)組可能會用std::vector或std::list代替,并且用new來動態(tài)分配,宏定義也會換成常量或枚舉。而上面這個創(chuàng)建新測點的函數(shù),也會被封裝到測點表這個類中。面向對象技術改變了我們思考和實踐的方式,而且這個改變作用是巨大的。

再有就是一些設計思想的轉變,比如對注釋的看法。以前,注釋多可能意味著可讀性強。但《重構》一書中說:“你看到一段代碼有著長長的注釋,然后發(fā)現(xiàn),這些注釋之所以存在乃是因為代碼很糟糕。”再看看上面這段代碼,前半段,其實是查找一個空的測點位置,完全可以用Extract Method(提煉函數(shù))重構方法將其移入另外一個函數(shù),并給其一個準確的命名,而不需要注釋。后半段,“代碼已經清楚說明了一切,注釋已經變得多余了。”

匈牙利命名法,已成為爭議***的命名法,其類型冗余常常大于它所帶來的收益。它來自微軟的一名匈牙利程序員,但現(xiàn)在微軟的.Net和它的編程語言中,微軟更換了這一法則,在C#中以駱駝命名法和帕斯卡命名法居多。

計算機系統(tǒng)的提升也改變著程序。早年16位OS上編程需要區(qū)分遠指針和近指針,但現(xiàn)在32位環(huán)境下,C++指針變量前綴一般都是p,很少見到lp。

技術在進步,編程思想在轉變,人的思維也在不斷更新。也許再過十幾年,現(xiàn)在聽都沒有聽說過的新技術會大行其道,你回頭再看看現(xiàn)在的代碼,可能也會有像我今天的感覺。但無論怎樣,請不要輕視我們的過去,因為沒有過去的積累,就沒有今天的進步。
 

原文鏈接:http://www.cnblogs.com/wanghui9072229/archive/2011/04/25/2028793.html

【編輯推薦】

  1. 想成為更好的程序員嗎?學習Prolog語言吧
  2. 15件事造就有理想的程序員
  3. 程序員發(fā)現(xiàn)蘋果史上最嚴重的隱私侵犯行為
  4. 老程序員10年技術生涯的思考 從C++到Java
  5. 程序員如何在"小公司成長"和"大公司學習"
責任編輯:陳貽新 來源: wanghui的博客
相關推薦

2011-12-20 09:01:25

.NET

2014-12-05 10:06:44

程序員

2020-12-21 06:15:15

程序員互聯(lián)網(wǎng)年齡

2011-06-02 11:26:24

程序員

2015-01-04 14:18:21

程序員

2014-08-15 11:07:09

程序員

2015-04-01 13:35:33

程序員

2014-06-24 15:38:25

2020-12-15 08:05:02

redis單線程多線程

2011-11-02 09:57:28

程序員

2015-02-12 09:48:09

程序員

2012-09-10 09:16:54

2019-12-18 14:14:40

程序員存儲程序

2015-02-12 09:29:48

2023-07-17 10:28:00

C/C++編程接口

2019-11-18 10:16:37

工程師開發(fā)網(wǎng)絡

2019-11-18 10:05:43

程序員技能開發(fā)者

2011-08-11 14:52:59

2009-02-17 10:12:10

ASP面試技術

2015-12-07 11:44:31

程序員厭倦工作
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人免费激情视频 | 欧美黄色片在线观看 | 青青久视频 | 国产区在线观看 | 欧美亚洲国产一区 | 一区二区三区免费在线观看 | 国产高清在线 | 美女在线观看av | 成人免费一区二区三区视频网站 | 亚洲最大的黄色网址 | 国产欧美一区二区精品忘忧草 | 自拍偷拍一区二区三区 | 天天操天天天 | 日韩在线视频一区二区三区 | 成人区精品一区二区婷婷 | 日本久久视频 | 亚洲精品视频免费观看 | 毛片免费观看 | 国产久| 国产亚洲精品精品国产亚洲综合 | 老司机久久 | 亚洲国产一区二区视频 | www.伊人.com | 日产精品久久久一区二区福利 | 亚洲欧美一区二区三区国产精品 | 国产毛片在线看 | 亚洲91精品| 国产露脸国语对白在线 | 日韩视频 中文字幕 | 黄视频网址 | 国产精品久久九九 | 黄色在线免费观看视频 | 一区二区三区四区不卡视频 | 在线成人福利 | 成人在线视频网 | 91精品一区二区三区久久久久久 | 国产美女精品视频免费观看 | 国产精品久久久久久久 | 免费看爱爱视频 | 91免费观看 | 欧美啊v在线观看 |