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

            Codejie's C++ Space

            Using C++

            LingosHook:編碼“瘋”格--“代碼潔癖”及其“代價”有感


                咋說呢,我不是一個完美的人,這個我非常肯定;我寫的代碼也不是完美的代碼,這個我也非常肯定,但,我是一個追求把代碼寫的完美的人。。。
                
                ‘完美’的定義是跟每個人的‘審美觀’相關的。隨便段代碼來‘展示’一下我的‘審美觀’。。。
            #include <string>

            typedef 
            int DictID;

            int GetDictID(const wstring& str)
            {
                DictID tmp;
                tmp 
            = .
                
            return tmp;
            }

                下面是‘完美’后的代碼:

            #include <string>

            class CDictConvObject
            {
            public:
                typedef 
            int DictID;


            public:
                
            int GetIDByTitle(const std::wstring& title, DictID& id) const
                
            {
                    id 
            = 
                    
            if(id == DICTID_INVALID)
                        
            return -1;
                    
            return 0;
                }

                
            }
            ;

                這里我不解釋、不評論為什么做這樣‘完美’修改,展示上面代碼的目的只有一個--“完美的代價”。
                心目中“易懂”、“遵規(guī)”、“開放”、“靈活”、“分離”(也許還有等等)的代碼才是好的代碼,因此在寫代碼時,盡量做的是“完美”些,再“完美”些。。。所以一般來說,我完成一段代碼或者程序的時間分配為:
                            40%思考-20%編碼-15%調試-25%重構!
                看出來了嗎?完美的巨大代價--時間的消耗!當然消耗應該還有體力的消耗--一段代碼可能會被寫來改去,直至重寫很多次。往往一個簡單的功能,我會用一個或多個函數,甚至對象去實現,只是為了“完美”。。。這就是我寫代碼的“瘋”格~~  我也知道自己有這方面的“偏執(zhí)”癥,簡單說應該算是有較嚴重的“代碼潔癖”。。。因此我盡量花費更多的時間去“思考”,以減少后期“重構”的時間。
                扯了這么多,就是想說,我又要重寫LingosHook的一大大段代碼。。。。為了讓LingosHook擺脫Dict的限制,我在HTML解析的代碼中增加了相應的直接HTML方式的Dict支持,一切都OK了,但。。。但重看代碼時,我怎么都覺得根據Dict解析結果,和根據HTML解析Dict(不了解代碼,這里是有點暈。。)應該是兩個獨立平等的對象,Dict結果解析時的不應該涉及HTML詞典解析,兩種需求(功能)不應該交叉的。。。于是,我添加了兩個對象:SpecialDictParser和HtmlDictParser,獨立存在與HTML解析過程中。。。唉,本來只是添加了不到100行代碼且已經OK的功能,現在不僅要全新添加兩對象的代碼,還要修改原有HTML解析對象中的60%左右代碼。。。瘋了。。。幸運的是,由于原有詞典結果解析的流程和模塊設計比較合理,各個詞典(Vicon,Langdao,Fundset)這次完全不用動,省去了一半的時間。。。
                所以,總的來說,要想“完美”而又沒有“代價”,需要在動手前,更加“開放”、“周全”的“思考”。。。。



            <---頭暈的分割線--->
                我知道上面的根本就看不懂,寫的很混亂,那是因為--添加了新的SpecialDictParser和HtmlDictParser對象以后,想到需要重寫的代碼時,我瘋了。。。
               

            posted on 2010-06-09 18:31 codejie 閱讀(609) 評論(2)  編輯 收藏 引用 所屬分類: C++隨筆而已LingosHook

            評論

            # re: LingosHook:編碼“瘋”格--“代碼潔癖”及其“代價”有感 2010-06-15 16:54

            呵呵,已經取得了不少進步了啊,你做的已經很好了!
            其實不必把代碼寫得太完美,只要把注釋寫明白了,相信不會給后來者造成很大困難的。  回復  更多評論   

            # re: LingosHook:編碼“瘋”格--“代碼潔癖”及其“代價”有感[未登錄] 2010-06-15 19:39 codejie

            @康
            。。。完蛋,我代碼的注釋一直都很少,因為我一直覺得代碼如果寫的很‘人性’易懂的話,代碼比注釋來的更直接和清晰。當然了,真實的原因應該是--懶。。。  回復  更多評論   

            公告

            Using C++

            導航

            統計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            国产日韩久久免费影院| 精品久久久久久国产潘金莲| 久久精品国产亚洲一区二区三区| 亚洲国产日韩综合久久精品| 精品久久久久久国产91| 久久只这里是精品66| 久久WWW免费人成一看片| 久久久亚洲精品蜜桃臀| 99久久人人爽亚洲精品美女| 精品久久无码中文字幕| 97精品国产91久久久久久| 色8激情欧美成人久久综合电| 99久久成人国产精品免费| 久久高清一级毛片| 久久91这里精品国产2020| 亚洲人成精品久久久久| 精品国产乱码久久久久久1区2区| 国产激情久久久久影院| 久久久噜噜噜www成人网| 久久婷婷五月综合97色一本一本 | 国产高清美女一级a毛片久久w | 波多野结衣AV无码久久一区| 久久精品99无色码中文字幕| 精品国产乱码久久久久久1区2区 | 久久国产精品成人免费| 久久av无码专区亚洲av桃花岛| 亚洲国产成人乱码精品女人久久久不卡 | 2021精品国产综合久久| 久久亚洲sm情趣捆绑调教| 久久精品中文无码资源站| 国产成人精品久久一区二区三区av| 无码国产69精品久久久久网站| 亚洲国产成人久久综合野外| 伊人色综合久久天天人守人婷| 久久综合久久鬼色| 亚洲人成无码网站久久99热国产| 韩国三级中文字幕hd久久精品 | 久久精品中文无码资源站| 久久久久亚洲av成人网人人软件| 亚洲国产精品无码久久久久久曰| 一本色综合久久|