LingosHook:編碼“瘋”格--“代碼潔癖”及其“代價”有感
咋說呢,我不是一個完美的人,這個我非常肯定;我寫的代碼也不是完美的代碼,這個我也非常肯定,但,我是一個追求把代碼寫的完美的人。。。
‘完美’的定義是跟每個人的‘審美觀’相關的。隨便段代碼來‘展示’一下我的‘審美觀’。。。













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

























這里我不解釋、不評論為什么做這樣‘完美’修改,展示上面代碼的目的只有一個--“完美的代價”。
心目中“易懂”、“遵規(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