• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            CG@CPPBLOG

            /*=========================================*/
            隨筆 - 76, 文章 - 39, 評(píng)論 - 137, 引用 - 0
            數(shù)據(jù)加載中……

            誰(shuí)之過(guò)

            提高民眾辨別是非的素質(zhì),始終被認(rèn)為是很重要的。“有關(guān)部門”時(shí)刻提醒我們要廣泛學(xué)習(xí),要能夠識(shí)別假幣;能夠通過(guò)外包裝和IMEI串號(hào)等方式,辨認(rèn)假冒偽劣商品,包括水貨;要能分辨虛假?gòu)V告,要具備一定的科學(xué)知識(shí),對(duì)有毒的食品添加物能夠正確判斷,包括蘇丹紅、孔雀綠,以及像甲醛和苯類化合物;要冷靜分析,不要被一些居心叵測(cè)的人利用,防范諸如“掉錢包”、“問(wèn)路”等方式的欺詐;要注意犯罪分子利用短信來(lái)詐騙錢財(cái);在ATM柜員機(jī)取款要環(huán)顧四周,確保沒(méi)有可疑人員時(shí),快速操作,注意遮擋。等等等等。
             
            我們老百姓何時(shí)變得如此專業(yè)和機(jī)敏,怪不得網(wǎng)上稱中國(guó)遍地都是專家和特工。我們?cè)谌绱硕嗟念I(lǐng)域具有相當(dāng)專業(yè)的水平,且冷靜沉著,判斷準(zhǔn)確,意志堅(jiān)定,身手敏捷。這簡(jiǎn)直是一個(gè)擁有13億邦德的國(guó)度,還不讓美帝羨慕死。
             
            其實(shí)我們寫代碼時(shí),常常會(huì)面臨同樣的問(wèn)題。我認(rèn)為,如果一個(gè)設(shè)計(jì)依賴于其它設(shè)計(jì)的實(shí)現(xiàn),那一定是有問(wèn)題的。可是往往是這樣,我們需要了解太多的原理和實(shí)現(xiàn),只有廣泛的學(xué)習(xí),才能寫出一個(gè)能用的東西,即便是看起來(lái)不需要了解的部分,它一旦更改了實(shí)現(xiàn)(當(dāng)然它不會(huì)通知你),你就方寸大亂,到處出錯(cuò)。這時(shí)候你才知道,原來(lái)你是多么的脆弱,你多么需要它,需要學(xué)習(xí)。
             
            假如我們?cè)趨?shù)解包里存配置,而我不知道參數(shù)解包在高級(jí)中斷里,也不知道存配置里使用了信號(hào)量,更不知道在高級(jí)中斷里使用信號(hào)量會(huì)出錯(cuò)。天哪,出了問(wèn)題是誰(shuí)之過(guò)。
             
            就像我們不能責(zé)怪政府一樣,我們也不能責(zé)怪被調(diào)用函數(shù)的實(shí)現(xiàn)者,有時(shí)候我們確實(shí)想當(dāng)然的做了一些事情,也怪我們知識(shí)水平不夠。但我們真的希望我們可以傻傻的活著,因?yàn)楹?jiǎn)單就意味著少犯錯(cuò)誤。
             
            其實(shí)這一切歸根到底都是結(jié)構(gòu)的問(wèn)題,就像一個(gè)不好的體制會(huì)出現(xiàn)很多問(wèn)題一樣,一個(gè)有問(wèn)題的結(jié)構(gòu)也會(huì)出現(xiàn)相應(yīng)的問(wèn)題。
             
            但是好的體制在哪里,是美國(guó)式的民主嗎?
             
            沒(méi)有好的體制,任何體制都有其問(wèn)題。

            posted @ 2007-12-17 21:27 cuigang 閱讀(234) | 評(píng)論 (0)編輯 收藏

            憑什么!


             
            相信各位牛人都寫過(guò)多線程的程序(暈死,我們現(xiàn)在恐怕很少項(xiàng)目是單線程的,就算有,還有幾個(gè)中斷例程搗蛋,相當(dāng)于多線程),必定學(xué)過(guò)什么信號(hào)量呀、事件呀、同步呀、互斥呀、死鎖呀,研究過(guò)什么讀者寫者、生產(chǎn)者-消費(fèi)者、哲學(xué)家就餐之類之類的。
             
            好玩吧。
             
            兩個(gè)不同優(yōu)先級(jí)的線程搶占一個(gè)資源,高優(yōu)先級(jí)搶低優(yōu)先級(jí)的,喲,我鎖住。呵呵,把高的掛起,優(yōu)先級(jí)反轉(zhuǎn)。低優(yōu)先級(jí)剛拿到一個(gè)指針,高優(yōu)先級(jí)的就把它釋放了(汗!)。低優(yōu)先級(jí)的剛判斷了一個(gè)條件,高優(yōu)先級(jí)的立馬把狀態(tài)改變,于是低優(yōu)先級(jí)下面的動(dòng)作全錯(cuò)了。
             
            資源爭(zhēng)奪,系統(tǒng)分析員不可回避的問(wèn)題。但是我們往往都不夠重視這個(gè)問(wèn)題,而今,高端參數(shù)部分的一個(gè)硬傷就是。多個(gè)線程公用變量和狀態(tài),由此衍生了許多bug。那如何解決,終極之道不是如何協(xié)調(diào)各個(gè)線程,而是避免資源爭(zhēng)奪,減少資源公用。
             
            一個(gè)男人一個(gè)女人,那是和諧社會(huì);幾個(gè)男人一個(gè)女人,呃,那是光棍聚會(huì)??!!難免你爭(zhēng)我?jiàn)Z呀。
             
            記住這句話,這是我的,你要用,憑什么!
             
            ======
             
            ps,突然想到關(guān)于領(lǐng)導(dǎo)的問(wèn)題,假如有一個(gè)皇帝,見(jiàn)一民婦,貌甚美,預(yù)征用之,其夫忿,告之,乃我妻,望諒。帝曰,憲法云,普天之下,莫非王土,率土之濱,莫非王臣。刁民,還有什么是你的,都是我的,拿來(lái)吧你。
             
            一個(gè)號(hào)稱管理者的類往往手伸得很長(zhǎng),聚合在它之下的類往往沒(méi)什么私人家當(dāng),跟奴隸沒(méi)什么區(qū)別,“管理類”才不屑去調(diào)什么接口函數(shù),直接就拿了人家的內(nèi)部變量(雖然有時(shí)候被迫聲明為public)來(lái)用,你不服,呀喝,我把你new出來(lái)的,你被我管著,還由了你了。這樣的代碼不少見(jiàn)呀,當(dāng)然生活中更多。
             
            再多說(shuō)兩句:
            1 私人財(cái)產(chǎn)神圣不可侵犯。
            2 安得廣廈千萬(wàn)間,大庇天下寒士俱歡顏,一人一套(唉,房子呀)。

            posted @ 2007-12-17 21:26 cuigang 閱讀(240) | 評(píng)論 (0)編輯 收藏

            20070424備忘——仿函數(shù)

             1 
             2 class functor{
             3 public:
             4     void operator()(int x){
             5     cout<<x<<endl;
             6     }
             7 };
             8  
             9 int main()
            10 {
            11     functor func;
            12     func(5);
            13 }
            14  

            仿函數(shù)可以代替函數(shù)指針,而且它可以保存狀態(tài)(類里面含有成員變量),相當(dāng)于函數(shù)指針指向的函數(shù)有局部靜態(tài)變量,同時(shí)它可以同時(shí)存在多個(gè)實(shí)例。

            posted @ 2007-12-17 21:25 cuigang 閱讀(494) | 評(píng)論 (1)編輯 收藏

            20070419備忘——關(guān)于代碼審查


                  代碼審查除了顯而易見(jiàn)的對(duì)源碼本身正確性以及可維護(hù)性等方面的驗(yàn)證,交流和學(xué)習(xí)也應(yīng)該是其目的之一。和白盒測(cè)試相比,在很大程度上有共通之處,但側(cè)重點(diǎn)不同。代碼審查更偏重整體性,而白盒測(cè)試更偏重局部性。
                  代碼審查一般基于3種目的,包括審查代碼風(fēng)格,審查正確性以及是否與設(shè)計(jì)相符,還有特定目的的審查,比如效率、容錯(cuò)性、安全性等等。對(duì)于我們來(lái)說(shuō),對(duì)于不同部分的代碼,可能有不同的目的,有時(shí)候甚至多種目的結(jié)合起來(lái)審查。但是不論如何,每次代碼審查都應(yīng)該確定目的,有的放矢,否則可能很難控制時(shí)間和質(zhì)量。
                  形式上應(yīng)該是多樣的,針對(duì)審查對(duì)象,應(yīng)該有自查,互查,小組走讀等各種方式以區(qū)別對(duì)待,否則可能難以發(fā)現(xiàn)隱藏較深的問(wèn)題,或者因大量的討論和會(huì)議喪失效率。但是如何區(qū)別就成了一個(gè)問(wèn)題,對(duì)我們來(lái)說(shuō),什么樣的問(wèn)題才需要小組走讀,由誰(shuí)來(lái)判斷,如何判斷是需要明確的。
                  代碼審查的資源消耗是非常大的,這取決于審查的形式,審查的目的(涉及深度和廣度),以及審查的頻率。要認(rèn)識(shí)到成本收益比和邊際收益遞減的規(guī)律,當(dāng)然我們目前審查不足,增加審查力度的邊際收益應(yīng)該還是比較大的。還有一個(gè)問(wèn)題就是過(guò)程成本,或者說(shuō)管理成本,如何保證審查的有效性以及縮減組織審查造成的資源損耗,制度化、規(guī)范化應(yīng)該是一個(gè)辦法。
                  審查人員的素質(zhì)也是關(guān)鍵的。不是說(shuō)任何人都能成為審查人員,他必須在對(duì)象問(wèn)題上具有一定的權(quán)威性,否則審查錯(cuò)誤比不審查還要糟糕。而我們目前的情況是,所有具有一定資質(zhì)的人員,都肩負(fù)著管理任務(wù),大多數(shù)時(shí)間都消耗在公共、行政或者其它事務(wù)上,造成在審查力度上的不足,如何協(xié)調(diào)也是我們需要解決的一個(gè)問(wèn)題。
                  最后的一點(diǎn)是期望收益的問(wèn)題。如果我們希望審查發(fā)現(xiàn)所有問(wèn)題,或者實(shí)行對(duì)審查人員的問(wèn)責(zé)制,可能會(huì)造成大家都不愿意去審查代碼。審查只是一個(gè)保證手段,就好像測(cè)試一樣。如果一旦發(fā)現(xiàn)問(wèn)題,就責(zé)怪審查人員為什么沒(méi)有發(fā)現(xiàn),那是不可取的。


            posted @ 2007-12-17 21:24 cuigang 閱讀(328) | 評(píng)論 (0)編輯 收藏

            20070331備忘——單件模式

            1、
            1 char *pCh = new char(5); //構(gòu)造一個(gè)char變量,并賦值為5
            2 char *pCh_a = new char[5]; //構(gòu)造一個(gè)char數(shù)組,大小為5

             
            2、C++的異常處理是不可恢復(fù)的。
             
            3、用懶漢式的單件如下,可能產(chǎn)生線程不安全。
             1 class singleton{
             2     static singleton* _inst;
             3     singleton(){}
             4 public:
             5     static singleton* get_inst(){
             6          if(_inst == 0)
             7              _inst = new singleton;
             8          return _inst;
             9     }
            10 }

            首先,在判空時(shí)重入會(huì)被new兩次,其次,返回實(shí)例的指針,可能會(huì)被會(huì)被delete掉。

            posted @ 2007-12-17 21:23 cuigang 閱讀(295) | 評(píng)論 (0)編輯 收藏

            20070328備忘

            1、指向非靜態(tài)成員函數(shù)的指針不是普通的指針,要包含包括this指針等信息,具體取決于編譯器的實(shí)現(xiàn)。
            2、指向虛的非靜態(tài)的成員函數(shù)形成虛調(diào)用,指向基類的成員函數(shù)的指針可以產(chǎn)生對(duì)派生類重載函數(shù)的調(diào)用,可以實(shí)現(xiàn)C#中的委托。
            3、委托?反射?托管?

            posted @ 2007-12-17 21:21 cuigang 閱讀(304) | 評(píng)論 (0)編輯 收藏

            20070301備忘——每日自動(dòng)編譯

            1、研究了一下每日編譯的實(shí)現(xiàn),主要是vss和vs.net的命令行方式工作,一個(gè)簡(jiǎn)單的批處理如下:
             1 @echo off
             2 setlocal
             3 echo ***************************************************
             4 echo **       Daily compile
             5 echo **                   cuigang
             6 echo ***************************************************
             7 echo.
             8 echo set var
             9 path=%path%;%MsDevDir%/../vss/win32;%VS71COMNTOOLS%/../IDE;
            10 set SSUSER=cuigang
            11 set SSPWD=cuigang
            12 set SSDIR=\\vss2\VSS_Monitoring\Monitor_Software\6800SE_0609\
            13 set CURDATE=%DATE%
            14 set WORK_DIR="b.work"
            15 rem *****************************************************
            16 echo work dir
            17 if exist %WORK_DIR% rd %WORK_DIR% /s /q
            18 md %WORK_DIR%
            19 cd %WORK_DIR%
            20  
            21 rem *****************************************************
            22 echo get lastest version
            23 rem ss Label  $/03.code/b.work -C -L"%CURDATE%" -i-y
            24 ss GET   $/03.code/b.work -r -w  -i-
            25 rem *****************************************************
            26 echo compiling by VS.net
            27 echo "%CURDATE%.txt"
            28 devenv pc_prj/6800.vcproj /rebuild debug /out "../%CURDATE%.txt"
            29 rem *****************************************************
            30 if "%1"=="shutdown" shutdown -s -f -c "Daily compile completed." -t 10
            31 endlocal
            32 pause


            posted @ 2007-12-17 21:20 cuigang 閱讀(365) | 評(píng)論 (0)編輯 收藏

            20070206備忘

            究竟如何評(píng)估軟件成本(工作量)?COCOMOII太復(fù)雜,其它的計(jì)算方法并不適用我們,Deiphi?我們?nèi)鄙僬嬲膶<摇H僅從需求頁(yè)數(shù)、代碼行數(shù)、人月生產(chǎn)率、千行故障率、bug消除率、測(cè)試用例數(shù)、等等是否能夠估算出我們的工作量?我們的歷史數(shù)據(jù)是否足以代表我們的真實(shí)狀況?我們還要考慮到人員無(wú)法100%投入,在線問(wèn)題的維護(hù)、部門或公司公共事務(wù)的處理,到底我們能投入百分之幾?太多的變數(shù),讓這成為一個(gè)無(wú)法求解的方程式。
            或許,只能慢慢地試,讓這個(gè)公式逐步求精,要接受失敗。

            posted @ 2007-12-17 21:17 cuigang 閱讀(255) | 評(píng)論 (0)編輯 收藏

            20070104/05/06 備忘

            MOI——激勵(lì)、組織、創(chuàng)意
            MOTIVATION(激勵(lì))、ORGANIZATION(組織)、IDEAS/INNOVATION(想法/創(chuàng)意)
            作為管理者,首先應(yīng)該能激發(fā)下屬的工作激情,樹(shù)立他的自信心;然后能夠組織和協(xié)調(diào)整個(gè)團(tuán)隊(duì),在發(fā)生沖突,或者出現(xiàn)障礙時(shí),能夠提出好的見(jiàn)解,雖然可能不是解決方案。

            處理復(fù)雜問(wèn)題的方法
            鑒于人能處理復(fù)雜問(wèn)題的規(guī)模,我們?cè)诮鉀Q一個(gè)復(fù)雜問(wèn)題時(shí),首要要想到的就是“分而治之”,而這一切的前提是,確定問(wèn)題的范圍,沒(méi)有范圍的問(wèn)題,是無(wú)法分割的,這就是規(guī)約的作用。

            軟件風(fēng)險(xiǎn)管理
            沒(méi)有任何一個(gè)軟件是沒(méi)有風(fēng)險(xiǎn)的,隱藏風(fēng)險(xiǎn)不如正視它,把風(fēng)險(xiǎn)列舉出來(lái),在項(xiàng)目早期去規(guī)避它或者為它做準(zhǔn)備,臨危不亂,可能更有效。但要注意的是,這一切的根本是如何識(shí)別風(fēng)險(xiǎn),這需要領(lǐng)導(dǎo)者具有豐富的經(jīng)驗(yàn)和敏銳的觀察力。

            posted @ 2007-12-17 21:16 cuigang 閱讀(232) | 評(píng)論 (0)編輯 收藏

            20060815備忘——調(diào)用堆棧的獲得

            調(diào)用堆棧的獲得:
                 54:進(jìn)入函數(shù)時(shí),會(huì)調(diào)用 link a6 指令,將A6壓棧,再將棧頂指針存入A6,退出函數(shù)做相反操作。
                 VC(debug):進(jìn)入函數(shù)時(shí),會(huì)調(diào)用 push ebp ;mov ebp, esp,同54原理。退出函數(shù)做相反操作。
                 以 VC 為例,說(shuō)明調(diào)用堆棧的獲得。
                 ebp-+     +--------------------+
                     |     |    . . . . . .     |
                     |     +--------------------+
                     +---  |         sp1        |---+
                           +--------------------+   |
                           |         pc1        |   |
                           +--------------------+   |
                           |    . . . . . .     |   |
                           +--------------------+   |
                      +--- |         sp2        |---+
                      |    +--------------------+
                      |    |         pc2        |
                      |    +--------------------+
                      |    |    . . . . . .     |
             
                    獲得 pc 指針的操作:
             1                 void GetCallStack()
             2                 {
             3                     unsigned int reg_bp;
             4                     unsigned int pc;
             5                     __asm{
             6                         mov [reg_bp],ebp
             7                     };
             8                     unsigned int *pbp = (unsigned int *)reg_bp;
             9                     printf("Call stack:\n");
            10                     do{
            11                         pbp = (unsigned int *)(*pbp);
            12                         pc = *(pbp+1);
            13                         printf("\t 0x%08x\n",pc);
            14                     }while(pc);
            15                 }

                      若想得到函數(shù)名需要反查調(diào)試信息表。

            posted @ 2007-12-17 21:14 cuigang 閱讀(536) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共8頁(yè): 1 2 3 4 5 6 7 8 
            久久人做人爽一区二区三区| 亚洲国产另类久久久精品黑人| 久久ww精品w免费人成| 亚洲中文字幕无码一久久区| 精品国产乱码久久久久久呢| 久久99精品国产自在现线小黄鸭| 97久久精品国产精品青草| 久久99精品久久久久久野外| 久久久久久久97| 国产三级观看久久| 77777亚洲午夜久久多喷| 天天爽天天爽天天片a久久网| 久久综合成人网| 69久久精品无码一区二区| 久久精品国产欧美日韩99热| 久久精品国产亚洲综合色| 久久亚洲熟女cc98cm| 国产精品一区二区久久精品无码| 久久天天躁狠狠躁夜夜不卡| 激情综合色综合久久综合| 69久久夜色精品国产69| 久久久久久久波多野结衣高潮| 国产精品欧美久久久久无广告| 色综合久久久久无码专区| 无码乱码观看精品久久| 成人a毛片久久免费播放| 午夜精品久久久久久99热| 99久久这里只精品国产免费| 国产精品美女久久久久av爽| 99久久精品国产高清一区二区| 久久乐国产综合亚洲精品| 色欲综合久久躁天天躁| 亚洲国产成人久久精品影视| 久久青草国产精品一区| 久久久久久久99精品免费观看| 欧洲成人午夜精品无码区久久| 久久99热这里只频精品6| 久久久艹| 中文精品99久久国产 | 无码国内精品久久综合88| 亚洲国产成人久久一区久久 |