• <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 閱讀(599) 評論(2)  編輯 收藏 引用 所屬分類: C++隨筆而已LingosHook

            評論

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

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

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

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

            公告

            Using C++

            導航

            統計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            精品久久久久中文字幕日本| 精品免费久久久久久久| 无码国内精品久久综合88| 久久精品无码一区二区WWW| 99久久精品毛片免费播放| 亚洲国产成人久久综合一区77| 亚洲女久久久噜噜噜熟女| 久久久噜噜噜久久| 99久久这里只有精品| 色妞色综合久久夜夜| 国产成人精品综合久久久| 久久国产色AV免费观看| 久久久久久久91精品免费观看| 91性高湖久久久久| 久久久精品人妻一区二区三区蜜桃 | 思思久久99热只有频精品66| 久久精品国产99国产电影网| 麻豆av久久av盛宴av| 久久久久亚洲精品男人的天堂| 久久久久亚洲Av无码专| 久久91精品国产91| 久久无码人妻精品一区二区三区 | 一本久久久久久久| 午夜人妻久久久久久久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 999久久久国产精品| 99久久这里只有精品| 久久精品国产99久久久| 久久久久成人精品无码中文字幕| 久久久久久久97| 久久久久久久久久久精品尤物| 久久精品极品盛宴观看| 亚洲&#228;v永久无码精品天堂久久 | 一本色道久久88精品综合| 亚洲国产精品无码久久久久久曰| 国产精品综合久久第一页| A级毛片无码久久精品免费| 国产精品嫩草影院久久| 久久se这里只有精品| 日本精品久久久久影院日本| 久久受www免费人成_看片中文|