当我们的代码遇到问题的时候....;要想不遇到问题,写代码的时候要.....
當我們的代碼遇到問題的時候:
1,不要怨天怨地。出了問題,當然有可能是系統的bug,API的問題,但是那些幾率往往比你犯低級錯誤的幾率要低多了,先從自己身上找原因,是不是自己寫錯了。
?
2,要掌握工具。最低限度你要會寫Log,最好是Log和調試器結合。好 的工具可以大大的提高效率。以前有人跟我說,Dll不能調試,我發現可以;有人說多線程不能調試,我發現可以;有人說COM不能調試,我發現可以;有人說 IE插件不能調試,我發現可以;有人說OE插件不能調試,我發現也可以。
?
3,分析問題要有邏輯。遇到問題可以先把所有的可能性都列出來,然后一個一個分析,肯定能找到原因的。
?
4,要學會隔離問題。問題涉及到的代碼越多,越難以理解,問題越難以解決。遇到這樣的情況,可以利用Log或者調試器,一行代碼一行代碼的給它們洗清嫌疑,這樣很快你就可以找到出問題的地方。如果代碼特別長,程序特別復雜,可以用二分法來做,效率很高。
?
5,千萬不要懶惰,不要事事求別人。一次復雜的調試過程就像一部偵探劇,如果你有非常好的邏輯 性,那這部劇的主角就是福爾摩斯,劇情一定非常精彩。我說這個是有巨大風險的,說真的我幫人調東西挺上癮的,很有意思。但是我還是要告訴大家,一次高難度 的調試之后,你的滿足感絕對不亞于寫了一個偉大的程序。
?
?
要想不遇到問題,寫代碼的時候:
1,要對寫出來的代碼負責。我很佩服那些寫代碼寫100行都不執行一次的高手,如果他們最后不被低級錯誤困擾的話我就更加的佩服了。我寫程序幾乎是寫一行兩行就要執行一次,每句話我都要確保執行效果跟我的預期一致。沒錯這樣寫 的時候 可能慢一些,但是調試的時候很輕松,我可以很簡單的確定哪些代碼絕對沒有問題。所以我寫代碼整體速度比一般人高。很多人學習新東西的時候喜歡把例子抄一遍,運行一下,改改,再運行。我喜歡一句一句的抄例子,抄一句兩句執行一次,這樣可以把例子透徹的理解,而且很難會遇到出現了問題找不到原因的時候。?
?
2,函數體功能塊不要過長。我認為我的智商并不高,我很難接受一個程序的一個函數體或者一 個功能塊超越3屏(當然邏輯真的有那么復雜除外,你會發現越是簡單的邏輯越是容易被人寫的冗長)。很多人對面向對象耳熟能詳,對封裝繼承看起來駕輕就熟。 但是動不動就寫出來個函數體超長的程序。這是我對基礎教育的微詞所在,他們連教會學生寫函數都沒教會,雖然表面上他們連面向對象這么高深的東西都教。
?
3,縮進要對。這點很重要,雖然大部分語言不是像Python那樣用縮進來決定邏輯塊的位 置,但是人看到縮進的時候,總是會以為這些縮進位置跟邏輯相關。尤其是在有大量的ifelse或者for循環等等的嵌套邏輯的時候,如果縮進錯了,可能會 直接讓人把程序的邏輯讀錯。所以我拿到別人的代碼,第一件事情就是整理縮進。我見過一些比較優秀的頁面工程師,他們會在div結束的位置用注釋寫上這個 div的id,這樣層級關系就一目了然了。
?
4,不斷重構。隨著程序的不斷修改,有些部分會不斷的增長,原來看著清晰的架構可能因為問 題的復雜而慢慢模糊,也可能被修正bug的權宜之計弄的面目全非。不信你找一個經過多次修改的程序看看,是不是滿目瘡痍,是不是都很難認出是你自己的作品 了。這在多人參與的項目中更加嚴重,每個人有不同的代碼風格,經過多次雜交后,你肯定認不出你的代碼是騾子是馬,還是四不像了。隨著程序的慢慢成長,原來 有些函數體會慢慢膨脹,需要拆分;有些原來簡單的功能塊四處都需要,應該被提煉成函數或者方法,等等。現在不重構,未來等到代碼復雜到無法控制的時候,重 構的工作就會變得更加困難。
?
? 講得很有道理,很有深度,所以轉過來,勤勉之!
?
?
?
轉載于:https://www.cnblogs.com/repository/archive/2010/08/18/1802895.html
總結
以上是生活随笔為你收集整理的当我们的代码遇到问题的时候....;要想不遇到问题,写代码的时候要.....的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多项式相加链表
- 下一篇: Javascript高级程序设计第二版第