• EN
香港:(852)3749 9734
廣州: (020) 3808 3267
[email protected]

新聞資料

怎樣寫出完美的代碼?首先你要學會減少bug

  每次你寫代碼,你就會寫bug。這是一個真理。不管你多麽高級,不管你多麽優秀,不管什麽,不管怎麽樣,你無法寫出完美的代碼。這是人性的一個特點,所以你不能避免寫出bug,但是你可以明智地減少bug:

  1.注釋

  在代碼中注釋的目的不是爲了解釋代碼做什麽——可以讀取代碼!注釋目的是爲了解釋當你寫代碼的時候是如何思考的。

  爲什麽你認爲代碼做到這一點很重要?其它地方發生了什麽事使之變得有必要?在這種情況發生後其他人要小心什麽後效?代碼有沒有按照你喜歡的方式做事情,亦或是用一種讓你擔心的方式?你爲什麽選擇這種方式?還有什麽其他的方法可供你選擇?也許其他方法中有更好的?當時你在想什麽?

  在寫完代碼的半年後,你可能已經不記得上述任何問題的答案,哪怕是你自己的代碼。所以,要寫下來。這是無價的,當你試圖弄清楚有些事情爲什麽壞了的時候。

  2.測試優先

  你可以編寫測試的代碼以確保其他代碼可正常工作。這樣做出人意料的重要,但我們大多數人往往在這方面做得很糟糕,因爲我們總會去做其他的事情。所以先要寫測試。這是知道確保寫測試的唯一途徑。

  3.生活更輕松

  計算機速度很快,沒錯吧?並且正在變得越來越快。你的大腦卻沒有越來越快。所以不要挑選那些使計算機更輕松的優化工具——挑選爲人類而制造的工具。

  C語言就是一個很好的例子。它被設計得不易用來工作,它被設計成更適合實現在40年前的機器上。因此,用C語言寫代碼意味著你要將所有的時間用于思考執行機制,而不是針對于你需要解決的問題:how,而不是what或why。停止使用C語言的日子好像已經過去了10年。這些天,我大多用的是Python,這更能幫助你去好好思考what和why,而不是how。

  有些純粹主義者會跳出來說“但是Python比C語言慢!”——他們一點也沒錯——但在2016年,95%的世界已經對此不在意了。電腦是如此之快以致于可以彌補Python的低效率,並且在大部分時間中做到足夠快。像Python這樣的面向優化開發性能,而不是處理器性能的語言,才是正確的權衡。

  4.解決方案而不是寫代碼

  寫代碼比解決問題更容易。

  代碼往往具有良好定義的輸入和輸出,一種可預測如何使用的方式,以及一個你可以說你已經完成了寫代碼這一任務的時間。問題就混亂得多,會涉及到個人和組織,並且有真實世界的約束,例如讓人們實際使用你已經建立的東西。

  解決問題比編寫代碼更重要。人們很容易忘記這一點,所以要謹記這一點。

  5.不要放棄

  軟件正在日新月異地變化和發展。你永遠不可能掌握所有。事實上,直到你准備放棄的那一刻,你依然沒有資格說你已經懂得夠多。不斷學習,不斷拓寬你的視野,保持睜大你的眼睛。

  這個世界上總有一個地方,會讓人們低下頭來專注于一個小小的領域,但在我的經驗中,有更多的地方值得人們去貪婪地學習並致力于解決碰到的任何問題。

  總而言之,移動你的手指來改變世界意味著嚴肅的大腦延伸和新信息的不停湧入。但是盡管如此,它是如此致命的酷。