Kata07:給你一段過去的代碼,看看那時我們的幼稚

Kata07地址

一般我是晚上做Kata,第二天早晨寫文章記錄。不過今天這個Kata比較簡單,我又比較閑,做完干脆就把文章寫了。

經(jīng)歷過一段(10行的)算法訓(xùn)練之后,我們又可以偷懶——哦不是,我們又可以進(jìn)行思維訓(xùn)練了。

這次的任務(wù)很簡單,找到一段自己一年前寫的代碼,幾百行左右,然后閱讀三遍,每遍角度不同。

  • 第一遍把代碼作者看作大牛,找他寫的好的地方
  • 第二遍把代碼作者看作新手,找他寫的爛的地方
  • 第三遍把代碼作者看作二逼,找他出BUG的地方

我之前的代碼在GitHub上,所以直接找了一段看,那個項目的名稱叫worldline,感興趣的可以去看看,雖然我覺得肯定沒人看,哈哈。

那個項目大概是兩年前寫的,當(dāng)時用了canvas,工作量主要在前端。印象中實現(xiàn)功能的時候遇到了很多坑,比如jQuery的animation并發(fā)的時候必須手動stop之前的動作什么的。說起來似乎也算不上是坑,只是自己不理解jQuery罷了,不過當(dāng)時很是痛苦了一段時間。

功能實現(xiàn)之后代碼爛到自己也看不下去了,就認(rèn)真地重構(gòu)了一下——當(dāng)然,是基于我兩年前的實力進(jìn)行重構(gòu)——當(dāng)時自己還感覺挺叼的,提取了好多公共函數(shù),重構(gòu)之后大概減少了40%代碼,一直以此為榮,雖然從來沒告訴過別人。

這次打開這段代碼一看,果然,就像看自己一年前的QQ空間一樣,圖樣圖森破。當(dāng)然,幸運的是比兩年前的QQ空間好點,兩年前就不是幼稚了,是SB,恨不得穿越回去抽丫幾嘴巴子。

具體代碼我就不貼了,直接說結(jié)論:

寫的好的地方主要是提取了公共函數(shù),用canvas畫圖時候方便了許多

寫的爛的地方主要有三點:

  1. 代碼沒有格式化。當(dāng)時的我可能還不知道有自動格式化插件,所以代碼亂七八糟的。
  2. 抽象程度不夠。只是提取公共函數(shù),其實代碼仍然很亂,應(yīng)該用類或者原型繼承方式重構(gòu)的。這次切實體會到了類的重要性,類看起來比較有調(diào)理,從init開始一步一步深入。函數(shù)的話只能一大片代碼慢慢往下看,很難建立整體的邏輯關(guān)系。
  3. 細(xì)節(jié)做得不好。具體來說就是命名不規(guī)范,很多函數(shù)直接就叫a、b,還有就是賦值不恰當(dāng),應(yīng)該加var的地方?jīng)]有加,可能會污染全局空間。

這個練習(xí)就像“好好學(xué)習(xí)天天向上”一樣,說起來簡單做起來難。做起來難的原因很簡單——自以為是,覺得沒必要做,其實錯過了許多提高的機(jī)會。

以后有機(jī)會的話要經(jīng)常溫故而知新,最后把CodeKata作者的一句話送給大家:

Moving Forward By Looking Back

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容