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

                
            }
            ;

                這里我不解釋、不評論為什么做這樣‘完美’修改,展示上面代碼的目的只有一個--“完美的代價”。
                心目中“易懂”、“遵規”、“開放”、“靈活”、“分離”(也許還有等等)的代碼才是好的代碼,因此在寫代碼時,盡量做的是“完美”些,再“完美”些。。。所以一般來說,我完成一段代碼或者程序的時間分配為:
                            40%思考-20%編碼-15%調試-25%重構!
                看出來了嗎?完美的巨大代價--時間的消耗!當然消耗應該還有體力的消耗--一段代碼可能會被寫來改去,直至重寫很多次。往往一個簡單的功能,我會用一個或多個函數,甚至對象去實現,只是為了“完美”。。。這就是我寫代碼的“瘋”格~~  我也知道自己有這方面的“偏執”癥,簡單說應該算是有較嚴重的“代碼潔癖”。。。因此我盡量花費更多的時間去“思考”,以減少后期“重構”的時間。
                扯了這么多,就是想說,我又要重寫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 閱讀(605) 評論(2)  編輯 收藏 引用 所屬分類: C++隨筆而已LingosHook

            評論

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

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

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

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

            公告

            Using C++

            導航

            統計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久丫精品国产亚洲av| 婷婷综合久久中文字幕| 青青草原综合久久大伊人| 日本欧美久久久久免费播放网 | 精品久久久无码中文字幕天天| 久久人人爽人人爽人人片AV东京热| 久久婷婷五月综合成人D啪| 久久精品亚洲精品国产色婷| 久久久久久亚洲精品不卡| 亚洲AV无码一区东京热久久| 久久国产成人精品国产成人亚洲| 久久婷婷国产剧情内射白浆| 久久国产综合精品五月天| 亚洲精品无码久久久久| 久久综合成人网| 免费观看成人久久网免费观看| 色偷偷91久久综合噜噜噜噜| 国产精品女同一区二区久久| 久久精品人人做人人爽电影| 久久久久久久波多野结衣高潮 | 香蕉久久夜色精品国产2020| 九九精品99久久久香蕉| 久久久久久久波多野结衣高潮 | 国产精品久久久久影视不卡| 久久久久久久波多野结衣高潮| 久久亚洲中文字幕精品一区| 久久精品无码一区二区三区| 久久精品亚洲日本波多野结衣| 亚洲精品乱码久久久久久按摩| 香蕉99久久国产综合精品宅男自 | 久久激情五月丁香伊人| 91亚洲国产成人久久精品| 国产一久久香蕉国产线看观看| 亚洲国产精品18久久久久久| 久久久国产视频| 精品多毛少妇人妻AV免费久久| 欧美午夜精品久久久久久浪潮| 久久久久九九精品影院| 亚洲国产成人久久一区久久| 久久久久久亚洲精品不卡| 伊人久久国产免费观看视频 |