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

            歲月流冰的技術博客--笨瑜

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

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              15 隨筆 :: 0 文章 :: 8 評論 :: 0 Trackbacks

            #

            1. 所有的原則和原理都有其適用范圍。無論他們如何正確,都只能在特定的場合發揮作用。
            2. 從簡單開始,逐步求精,直至滿足為止。
            3. 不要只準備1中解決手段應付關鍵的工作。
            4. 如果某個方法無法奏效,則用有用的方法代替它。承認錯誤,從失敗中總結經驗教訓,避免下次再犯同樣的錯誤。
            5. 如果某個方法奏效,則在今后的工作中善待這個方法。
            6. 不要重復犯錯,更不要簡單重復。
            7. 不要固執己見,要全面考慮各個方案的優缺點。


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

            做開發工作基本都要使用P4,VSS等版本控制工具來進行代碼的維護。
            開發者需要修改某個文件得時候,需要使用P4等工具將文件添加到changelist里,并將文件由只讀改成可寫。當開發者在完成一天的工作之后或需要更新文件時,往往希望能夠將打開的文件做個備份。如果需要修改的文件較多,手動備份是很麻煩的事情。

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

            本工具使用C#進行開發。





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

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

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

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

            最近遇到一個問題,在一個WinForm窗口中,按ALT+Z能夠實現最小化到托盤及從托盤回復正常窗口。
            剛開始,試著在窗口的KeyPress事件中添加,但是當窗口最小化到托盤后,焦點已經不在窗口上了,因此將不能捕捉鍵盤按鍵按下的事件,因此不能從托盤彈出。經測試,這種方法是錯誤的。
            既然KeyPress事件不能解決問題,那么為什么不能添加熱鍵呢?
            添加熱鍵的方法是
            BOOL RegisterHotKey( 
              HWND hWnd, 
              
            int id, 
              UINT fsModifiers, 
              UINT vk 
            );
            其中參數hWnd是注冊熱鍵的窗口句柄,id是熱鍵的標識符,fsModifiers是在創建WM_HOTKEY消息時必須跟用戶定義的按鍵一同按下的特殊組合鍵,他的值為:
            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.
            我們可以使用這個函數注冊我們的熱鍵。
            在C#中使用這個函數,我們必須從user32.dll中將此函數導入,而且必須重寫WndProc函數來捕捉熱鍵消息。
            以下為示例代碼:
            [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 歲月流冰 閱讀(1214) | 評論 (2)編輯 收藏

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

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

            僅列出標題
            共2頁: 1 2 
            久久一区二区免费播放| 久久国产精品成人片免费| 狠狠色噜噜色狠狠狠综合久久| 久久综合丁香激情久久| 国产99久久精品一区二区| 久久无码人妻一区二区三区午夜| 欧美伊人久久大香线蕉综合| 伊人色综合九久久天天蜜桃| 久久伊人五月天论坛| 亚洲精品无码久久不卡| 亚洲国产日韩欧美综合久久| 亚洲?V乱码久久精品蜜桃 | 97超级碰碰碰碰久久久久| 久久精品毛片免费观看| …久久精品99久久香蕉国产| jizzjizz国产精品久久| 精品国产乱码久久久久久浪潮 | 超级碰久久免费公开视频| 国产精品伊人久久伊人电影| 久久午夜综合久久| 伊人久久大香线蕉av不变影院| 久久久久人妻精品一区| 夜夜亚洲天天久久| 久久中文字幕精品| 97久久精品无码一区二区天美| 99热热久久这里只有精品68| 四虎影视久久久免费观看| av色综合久久天堂av色综合在| 国产亚洲婷婷香蕉久久精品| 久久久精品国产亚洲成人满18免费网站| 亚洲国产婷婷香蕉久久久久久| 亚洲精品乱码久久久久久| 久久青青草原国产精品免费| 亚洲国产成人久久综合一区77| 久久九九兔免费精品6| 青青热久久综合网伊人| 久久99热这里只有精品66| 欧美激情精品久久久久| 久久99精品国产麻豆宅宅| 国产69精品久久久久99尤物| 亚洲女久久久噜噜噜熟女|