第一次寫部落格,有點緊張,但正如看到的其他大蝦說的一樣,部落格是方便我們交流,更重要的是自我提高,所以我也要努力學習學習,將平時工作中重要的事情記錄,以備日後的自己好好借鑒
在我們平時的程式編寫中,重複是很可怕的,會對程式的可靠性帶來直接的影響(那是悲劇的……),而且自身的效率都會大打折扣(直接用與重新寫的速度,不用想都知道了吧)
如何做到不重複編寫已經存在的程式呢?
書上已經有很多了,《代碼大全2》,《Write Solid Code》,《敏捷式軟體開發 (Agile Software Development)》,設計模式一大類的書,以及等等的好都有說到
實踐是檢驗真理的唯一標準,雖然自己也知道不要重複的重要性,但有時候,但你不知道你需要功能是否已經實現的時候,而且你又知道這個功能是很容易實現的,這個時候會安奈不住自己的野性,指尖一揮,任務完成。可日後當你需要維護一個類似的問題(產生bug,增加新特性)的時候,往往因為重複的代碼而使自己的工作量猛增,而且不知道時候已經改完,心理無底啊!
基於這樣的心情,每次我覺得能夠自己實現一個功能的時候,我都盡量、努力、強逼自己去思考:
這是一個很通常的方法嗎,程式裡面很多地方都需要用到嗎?
和這個功能相關的模組(地方)有檢查過了嗎?(也就是說,你需要在成萬甚至上百萬的代碼中找答案,這……(Regex幫你的忙了o(∩_∩)o 哈哈,儘管我自己也不是很熟,但懂了的話,肯定是非常有用的……),如何在代碼中找到自己需要的答案,這是一個非常艱辛的事情,往往也是我們重複寫出代碼的地方!這是我最近領悟到的)
你問了你的夥伴了嗎?
還有……(暫時想到這些)
當已經做過這些事的時候,發現還是沒有找到需要的功能,那麼就自己來吧……
當事情往往不是就這樣結束了……有一天,經理回來告訴了,你乾的地方又出問題了,而且他告訴你,與它相似的地方的東西確實運行得很好,這個時候就可能是重複代碼出現的位置了,通常也是進行重構的好時機了……(為什麼上面沒有知道這個相似的地方呢?可能是名字起得不好,可能是你尋找的時候漏了,可能是別人放置的位置零散,你沒有找哪裡,可能是……)
總之,當需要代碼的時候,不能一下子就想到自己來,不是說你不行,因為重複而產生的問題已經太多了,已經用的,就不要再增加了……