• <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>

            歲月流冰的技術(shù)博客--笨瑜

            No prepare is prepare to lose~~~~~~

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              15 隨筆 :: 0 文章 :: 8 評(píng)論 :: 0 Trackbacks

            #

            1. 所有的原則和原理都有其適用范圍。無論他們?nèi)绾握_,都只能在特定的場(chǎng)合發(fā)揮作用。
            2. 從簡(jiǎn)單開始,逐步求精,直至滿足為止。
            3. 不要只準(zhǔn)備1中解決手段應(yīng)付關(guān)鍵的工作。
            4. 如果某個(gè)方法無法奏效,則用有用的方法代替它。承認(rèn)錯(cuò)誤,從失敗中總結(jié)經(jīng)驗(yàn)教訓(xùn),避免下次再犯同樣的錯(cuò)誤。
            5. 如果某個(gè)方法奏效,則在今后的工作中善待這個(gè)方法。
            6. 不要重復(fù)犯錯(cuò),更不要簡(jiǎn)單重復(fù)。
            7. 不要固執(zhí)己見,要全面考慮各個(gè)方案的優(yōu)缺點(diǎn)。


            posted @ 2008-05-09 19:21 歲月流冰 閱讀(156) | 評(píng)論 (0)編輯 收藏

            做開發(fā)工作基本都要使用P4,VSS等版本控制工具來進(jìn)行代碼的維護(hù)。
            開發(fā)者需要修改某個(gè)文件得時(shí)候,需要使用P4等工具將文件添加到changelist里,并將文件由只讀改成可寫。當(dāng)開發(fā)者在完成一天的工作之后或需要更新文件時(shí),往往希望能夠?qū)⒋蜷_的文件做個(gè)備份。如果需要修改的文件較多,手動(dòng)備份是很麻煩的事情。

            文件備份工具 就是用來幫助大家備份屬性為可寫的文件的。使用這個(gè)工具,可以幫助你本分某個(gè)目錄下面的可寫文件到任意給定的目錄,并保持原來的目錄結(jié)構(gòu),而只讀文件則會(huì)忽略不進(jìn)行備份。這樣,就可以對(duì)開發(fā)者進(jìn)行修改的文件進(jìn)行備份。

            本工具使用C#進(jìn)行開發(fā)。





            源碼見鏈接
            /Files/jasson/FileBaker.zip

            posted @ 2007-12-13 14:23 歲月流冰 閱讀(456) | 評(píng)論 (1)編輯 收藏

            轉(zhuǎn)自:(很多網(wǎng)站都有...)
                    1.把C++當(dāng)成一門新的語言學(xué)習(xí)(和C沒啥關(guān)系!真的。);
              2.看《Thinking In C++》,不要看《C++變成死相》;
              3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因?yàn)樗麄兒茈y而我們自己是初學(xué)者所以就不看;
              4.不要被VC、BCB、BC、MC、TC等詞匯所迷惑——他們都是集成開發(fā)環(huán)境,而我們要學(xué)的是一門語言;
              5.不要放過任何一個(gè)看上去很簡(jiǎn)單的小編程問題——他們往往并不那么簡(jiǎn)單,或者可以引伸出很多知識(shí)點(diǎn);
              6.會(huì)用Visual C++,并不說明你會(huì)C++;
              7.學(xué)class并不難,template、STL、generic programming也不過如此——難的是長(zhǎng)期堅(jiān)持實(shí)踐和不遺余力的博覽群書;
              8.如果不是天才的話,想學(xué)編程就不要想玩游戲——你以為你做到了,其實(shí)你的C++水平并沒有和你通關(guān)的能力一起變高——其實(shí)可以時(shí)刻記住:學(xué)C++是為了編游戲的;
              9.看Visual C++的書,是學(xué)不了C++語言的;
              10.浮躁的人容易說:XX語言不行了,應(yīng)該學(xué)YY;——是你自己不行了吧!?
              11.浮躁的人容易問:我到底該學(xué)什么;——?jiǎng)e問,學(xué)就對(duì)了;
              12.浮躁的人容易問:XX有錢途嗎;——建議你去搶銀行;
              13.浮躁的人容易說:我要中文版!我英文不行!——不行?學(xué)呀!
              14.浮躁的人容易問:XX和YY哪個(gè)好;——告訴你吧,都好——只要你學(xué)就行;
              15.浮躁的人分兩種:a)只觀望而不學(xué)的人;b)只學(xué)而不堅(jiān)持的人;
              16.把時(shí)髦的技術(shù)掛在嘴邊,還不如把過時(shí)的技術(shù)記在心里;
              17.C++不僅僅是支持面向?qū)ο蟮某绦蛟O(shè)計(jì)語言;
              18.學(xué)習(xí)編程最好的方法之一就是閱讀源代碼;
              19.在任何時(shí)刻都不要認(rèn)為自己手中的書已經(jīng)足夠了;
              20.請(qǐng)閱讀《The Standard C++ Bible》(中文版:標(biāo)準(zhǔn)C++寶典),掌握C++標(biāo)準(zhǔn);
              21.看得懂的書,請(qǐng)仔細(xì)看;看不懂的書,請(qǐng)硬著頭皮看;
              22.別指望看第一遍書就能記住和掌握什么——請(qǐng)看第二遍、第三遍;
              23.請(qǐng)看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
              24.不要停留在集成開發(fā)環(huán)境的搖籃上,要學(xué)會(huì)控制集成開發(fā)環(huán)境,還要學(xué)會(huì)用命令行方式處理程序;
              25.和別人一起討論有意義的C++知識(shí)點(diǎn),而不是爭(zhēng)吵XX行不行或者YY與ZZ哪個(gè)好;
              26.請(qǐng)看《程序設(shè)計(jì)實(shí)踐》,并嚴(yán)格的按照其要求去做;
              27.不要因?yàn)镃和C++中有一些語法和關(guān)鍵字看上去相同,就認(rèn)為它們的意義和作用完全一樣;
              28.C++絕不是所謂的C的“擴(kuò)充”——如果C++一開始就起名叫Z語言,你一定不會(huì)把C和Z語言聯(lián)系得那么緊密;
              29.請(qǐng)不要認(rèn)為學(xué)過XX語言再改學(xué)C++會(huì)有什么問題——你只不過又在學(xué)一門全新的語言而已;
              30.讀完了《Inside The C++ Object Model》以后再來認(rèn)定自己是不是已經(jīng)學(xué)會(huì)了C++;
              31.學(xué)習(xí)編程的秘訣是:編程,編程,再編程;
              32.請(qǐng)留意下列書籍:《C++面向?qū)ο蟾咝Ь幊蹋–++ Effective Object-Oriented Software Construction)》《面向?qū)ο筌浖?gòu)造(Object-Oriented Software Construction)》《設(shè)計(jì)模式(Design Patterns)》《The Art of Computer Programming》;
              33.記住:面向?qū)ο蠹夹g(shù)不只是C++專有的;
              34.請(qǐng)把書上的程序例子親手輸入到電腦上實(shí)踐,即使配套光盤中有源代碼;
              35.把在書中看到的有意義的例子擴(kuò)充;
              36.請(qǐng)重視C++中的異常處理技術(shù),并將其切實(shí)的運(yùn)用到自己的程序中;
              37.經(jīng)常回顧自己以前寫過的程序,并嘗試重寫,把自己學(xué)到的新知識(shí)運(yùn)用進(jìn)去;
              38.不要漏掉書中任何一個(gè)練習(xí)題——請(qǐng)全部做完并記錄下解題思路;
              39.C++語言和C++的集成開發(fā)環(huán)境要同時(shí)學(xué)習(xí)和掌握;
              40.既然決定了學(xué)C++,就請(qǐng)堅(jiān)持學(xué)下去,因?yàn)閷W(xué)習(xí)程序設(shè)計(jì)語言的目的是掌握程序設(shè)計(jì)技術(shù),而程序設(shè)計(jì)技術(shù)是跨語言的;
              41.就讓C++語言的各種平臺(tái)和開發(fā)環(huán)境去激烈的競(jìng)爭(zhēng)吧,我們要以學(xué)習(xí)C++語言本身為主;
              42.當(dāng)你寫C++程序?qū)懙揭话雲(yún)s發(fā)現(xiàn)自己用的方法很拙劣時(shí),請(qǐng)不要馬上停手;請(qǐng)盡快將余下的部分粗略的完成以保證這個(gè)設(shè)計(jì)的完整性,然后分析自己的錯(cuò)誤并重新設(shè)計(jì)和編寫(參見43);
              43.別心急,設(shè)計(jì)C++的class確實(shí)不容易;自己程序中的class和自己的class設(shè)計(jì)水平是在不斷的編程實(shí)踐中完善和發(fā)展的;
              44.決不要因?yàn)槌绦?#8220;很小”就不遵循某些你不熟練的規(guī)則——好習(xí)慣是培養(yǎng)出來的,而不是一次記住的;
              45.每學(xué)到一個(gè)C++難點(diǎn)的時(shí)候,嘗試著對(duì)別人講解這個(gè)知識(shí)點(diǎn)并讓他理解——你能講清楚才說明你真的理解了;
              46.記錄下在和別人交流時(shí)發(fā)現(xiàn)的自己忽視或不理解的知識(shí)點(diǎn);
              47.請(qǐng)不斷的對(duì)自己寫的程序提出更高的要求,哪怕你的程序版本號(hào)會(huì)變成Version 100.XX;
              48.保存好你寫過的所有的程序——那是你最好的積累之一;
              49.請(qǐng)不要做浮躁的人;
              50.請(qǐng)熱愛C++!

            posted @ 2007-12-12 16:01 歲月流冰 閱讀(162) | 評(píng)論 (0)編輯 收藏

            最近遇到一個(gè)問題,在一個(gè)WinForm窗口中,按ALT+Z能夠?qū)崿F(xiàn)最小化到托盤及從托盤回復(fù)正常窗口。
            剛開始,試著在窗口的KeyPress事件中添加,但是當(dāng)窗口最小化到托盤后,焦點(diǎn)已經(jīng)不在窗口上了,因此將不能捕捉鍵盤按鍵按下的事件,因此不能從托盤彈出。經(jīng)測(cè)試,這種方法是錯(cuò)誤的。
            既然KeyPress事件不能解決問題,那么為什么不能添加熱鍵呢?
            添加熱鍵的方法是
            BOOL RegisterHotKey( 
              HWND hWnd, 
              
            int id, 
              UINT fsModifiers, 
              UINT vk 
            );
            其中參數(shù)hWnd是注冊(cè)熱鍵的窗口句柄,id是熱鍵的標(biāo)識(shí)符,fsModifiers是在創(chuàng)建WM_HOTKEY消息時(shí)必須跟用戶定義的按鍵一同按下的特殊組合鍵,他的值為:
            Value Description
            MOD_ALT Either ALT key must be held down.
            MOD_CONTROL Either CTRL key must be held down.
            MOD_KEYUP Both key up events and key down events generate a WM_HOTKEY message.
            MOD_SHIFT Either SHIFT key must be held down.
            MOD_WIN Either WINDOWS key was held down. These keys are labeled with the Microsoft Windows logo.
            我們可以使用這個(gè)函數(shù)注冊(cè)我們的熱鍵。
            在C#中使用這個(gè)函數(shù),我們必須從user32.dll中將此函數(shù)導(dǎo)入,而且必須重寫WndProc函數(shù)來捕捉熱鍵消息。
            以下為示例代碼:
            [DllImport("user32.dll")]
                    
            public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint control, Keys vk);
                    [DllImport(
            "user32.dll")]
                    
            public static extern bool UnregisterHotKey(IntPtr hWnd, int id); 

                    
            private void Form1_Load(object sender, EventArgs e)
                    
            {
                        RegisterHotKey(
            this.Handle, 8881, Keys.Z);
                        
            this.Hide();
                        
            this.ShowInTaskbar = true;
                        
            this.comboBox1.SelectedIndex = 0;
                    }


                    
            protected override void WndProc(ref Message m)
                    
            {
                        
            switch (m.Msg)
                        

                            
            case 0x0312:
                                
            if (m.WParam.ToString().CompareTo("888"== 0)
                                
            {
                                    
            if (bIsShowed)
                                    
            {
                                        
            this.Hide();
                                        
            this.ShowInTaskbar = true;
                                        
            this.WindowState = FormWindowState.Minimized;
                                        
            this.notifyIcon1.Visible = true;
                                        
            this.bIsShowed = false;
                                    }

                                    
            else
                                    
            {
                                        
            this.Visible = true;
                                        
            this.ShowInTaskbar = false;
                                        
            this.WindowState = FormWindowState.Normal;
                                        
            this.Activate();
                                        
            this.notifyIcon1.Visible = false;
                                        bIsShowed 
            = true;
                                    }

                                    UnregisterHotKey(
            this.Handle, 888);
                                    RegisterHotKey(
            this.Handle, 8881, Keys.Z);
                                }

                                
            break;
                            
            default:
                                
            break;
                        }


                        
            base.WndProc(ref m);
                    }
            posted @ 2007-12-10 09:37 歲月流冰 閱讀(1209) | 評(píng)論 (2)編輯 收藏

            今天讀了converse的文章《程序設(shè)計(jì)總結(jié)》,感觸良多,說出了很多程序員經(jīng)常遇到的問題,而像作者那種時(shí)常反思自己工作過程的習(xí)慣是值得我們學(xué)習(xí)的。
            (文章地址:http://www.shnenglu.com/converse/archive/2007/11/21/37107.html
            我進(jìn)入這個(gè)行業(yè)也有很長(zhǎng)一段時(shí)間了,也有一些很深的體會(huì),希望能夠跟大家分享。
             1.    在完成自己的工作之后,一定要double check自己的作品,確認(rèn)自己真的完成了任務(wù),而且采用的是最好的解決方案。
                    剛剛開始工作的時(shí)候,很喜歡追求所謂的effective,但是對(duì)effective的理解僅僅存留在了quick對(duì)層次上,對(duì)質(zhì)量則報(bào)了一種比較放任的態(tài)度。結(jié)果,自己經(jīng)常提交一些自己認(rèn)為已經(jīng)完成了的工作,結(jié)果往往會(huì)在被他人review的時(shí)候指出多處錯(cuò)誤,顏面盡失,而因?yàn)檫^于追求進(jìn)度,代碼質(zhì)量很差,經(jīng)常會(huì)寫出一些學(xué)生代碼。鑒于此,在submit你的工作之前還是務(wù)必認(rèn)真check一下,確認(rèn)自己真的很好的完成了工作。
             2.    把一個(gè)feature當(dāng)成一個(gè)完整的作品來做。
                    往往我們拿到的工作只是一個(gè)系統(tǒng)的一個(gè)feature,這樣我們會(huì)抱以一種這只是一個(gè)模塊,做得怎么樣都只是一個(gè)feature而已,在這種情況下,我們的提交往往都是災(zāi)難。所以,如果大家都把一個(gè)feature當(dāng)作一個(gè)完整的作品,一個(gè)真正由自己完成的作品,那么你就會(huì)真正把這個(gè)feature當(dāng)作自己的孩子一樣對(duì)待,仔細(xì)揣摩,認(rèn)真編碼,最終,我們完成的會(huì)是一個(gè)質(zhì)量很高的作品,而你也會(huì)為此自豪。
             3.    當(dāng)你不了解一個(gè)系統(tǒng)是如何運(yùn)行的時(shí)候,建議盡快進(jìn)入debug,而不只是鉆進(jìn)文檔的海洋。
                    通過debug,你會(huì)很清晰的把握住一個(gè)系統(tǒng)運(yùn)行的詳細(xì)過程,這將對(duì)你掌握這個(gè)系統(tǒng)很有幫助。
             4.    盡量使用基本的方法解決問題。
                    俗語說:簡(jiǎn)單就是美。雖然我們現(xiàn)在接觸的編程手段一般都是OOP,繼承,多態(tài)在很多人心里會(huì)是編程時(shí)的第一選擇,而為了表現(xiàn)自己技術(shù)的全面,往往還要加入設(shè)計(jì)模式show一下。其實(shí),最美的程序還是由基本的數(shù)據(jù)結(jié)構(gòu)+算法組成,繼承,多態(tài),設(shè)計(jì)模式只是在我們沒有其他方法可用的時(shí)候的一種妥協(xié)。
             5.    考慮問題盡量從大的方面開始,先把事情的骨架勾畫出來,再fresh out。
                    很多人在考慮一個(gè)問題的時(shí)候往往會(huì)鉆進(jìn)一個(gè)很小的角落,把所有精力集中于一個(gè)局部的問題上。其實(shí),在我們剛剛開始考慮一個(gè)解決方案的時(shí)候,最好的辦法還是先考慮High Level Design,然后才考慮一些局部的問題。對(duì)一個(gè)系統(tǒng)來說,設(shè)計(jì)才是最重要的。

            posted @ 2007-12-08 22:43 歲月流冰 閱讀(1382) | 評(píng)論 (4)編輯 收藏

            僅列出標(biāo)題
            共2頁: 1 2 
            国产毛片久久久久久国产毛片 | 久久久噜噜噜久久熟女AA片| 国内精品久久久久久久亚洲| 9久久9久久精品| 无码日韩人妻精品久久蜜桃 | 久久精品18| 99热都是精品久久久久久| 久久亚洲精品视频| 91精品国产91久久久久福利| 精品久久久久久久无码| 91久久精品91久久性色| 久久99精品国产99久久| 51久久夜色精品国产| 久久久久国色AV免费观看| 久久精品极品盛宴观看| 久久国语露脸国产精品电影| 久久婷婷国产剧情内射白浆| 国产美女亚洲精品久久久综合| 99久久精品国产一区二区| 成人久久精品一区二区三区| 久久福利青草精品资源站| 久久99精品久久久久久水蜜桃| 久久久久久免费视频| 蜜臀av性久久久久蜜臀aⅴ| 久久精品国产亚洲一区二区| 久久久久人妻一区精品 | 久久无码人妻一区二区三区| 99久久超碰中文字幕伊人 | 久久久久99精品成人片牛牛影视| 人人狠狠综合久久亚洲| 一本色道久久综合狠狠躁| 久久婷婷国产麻豆91天堂| 欧美日韩精品久久久久| 久久人人妻人人爽人人爽| 亚洲乱亚洲乱淫久久| 国内精品综合久久久40p| 日韩亚洲欧美久久久www综合网| 久久天天躁狠狠躁夜夜躁2014| 久久国产精品久久| 奇米影视7777久久精品| 日日狠狠久久偷偷色综合免费|