謀篇佈局:高效形成代碼的心得

  背字詞句和寫文章不同。在我們中國,一名學生需要經過十幾年時間的練習,來實現從字詞句到文章之間的跨越。類似的差距和迭代同樣存在於學習開發的過程中。以完成代碼段爲目標和以完成項目爲目標,二者之間存在着的巨大差別,直觀地表現爲開發者的效率。

  “開發者效率”,或多或少都和開發者主觀能動性有關,很多專家的書籍都系統地探討了這個問題。通常認爲,單純依靠量化方法來評估開發者的效率不靠譜。以筆者作爲一名普通碼農的心得而言,覺得效率很大程度受限於自身習慣。在初步具有“謀篇佈局”能力之後,效率有了一個明顯的提升。

  謀篇佈局,方能理順局部和整體的關係。一方面,有助於理解局部怎樣作用於整體,以至於達成在設計的後期階段,用線性疊加的方式解決多元化的複雜問題。另一方面與之相對,掌握了整體對局部的要求,形成了一系列指南性質的東西,實現了一套基本完整覆蓋編碼全過程的工具鏈,並且能夠從工具鏈上獲得效率的提升。最終能夠以更加集中的注意力處理局部的細節,使可能間斷的工作可以確保有效的積累。


縱向剖析,做到結構上胸有成竹。

  理清“接口——測試——僞代碼——GTD編程”這樣(或與之相近的)一條工作路線。

  無論怎麼強調“面向接口編程”都不爲過。其實這也就是老生常談的“模塊化編程”,接口的提法偏向於測試。只要測試確定了,就可以針對測試寫好每一小塊能夠工作的代碼,做到有的放矢。

  僞代碼有點接近“提綱”意思。用僞代碼進行編程有一個潛在的好處,那就是保持了一個相對流水化的開發方法,讓開發者能夠專心於當前的細節設計,而不是被自己重複、回退的迭代絆倒。值得注意的是僞代碼編程並不是唯一的過程,可選的還有測試先行開發和契約式設計。一個協作的團隊會選擇適用於自己的約定。

  對身處團隊的開發者來說,當更多的GTD理念融入編程過程以後,標誌着自己從“閉門造車”階段進入了“與人爲善”的時代。從“出口成碼”進化成了一個自然人,一個能夠協同的人。當開發者選擇和昨天的自己協同的時候,效率的提高是可以預期的。


橫向擴展,細心打好基本功底

  源代碼是開發者最直接的學習材料。筆者從源代碼學到了這些:從不會到會的躍變、快速存取備忘以及怎樣不斷優化一個算法。

  仔細思考源代碼管理還可以發現,可以將代碼片段按照功能分類,以”立時可複用”爲目標進行整理歸納,形成覆蓋基本操作的代碼段集合。這個集合可以放到雲/移動設備等觸手可及的地方。把這個習慣堅持下去的成效是比較可觀的。

  程序員區別於其他職業的最大實踐特點是什麼?假如你的答案也是“代碼”的話,那麼無疑已經爲持有並優化代碼片段找到了最佳的理由。


保持意志,把握好每一次迭代的機會

  珍惜每一次手工debug的機會,正確對待按下debug按鈕的次數。雖然這個數字沒有任何意義,但是過於頻繁地debug可能正反映一些潛在的問題。比如說自動化構建的必要性、形成代碼的實際效率等等。

  客觀地說,debug不會幫開發者生成代碼。調試隱藏的熱點在於,開發者是胡亂拼湊地寫代碼,還是有設計有計劃的寫代碼。是爲了檢查基本語法進行調試,還是更有針對性地進行調試。


有張有弛,放鬆時深刻體會世界

  休息是生命必不可少的組成部分。尤其對於開發者這種久坐的職業來說,沒有什麼比舒適的休息更有營養了。然而休息並不是直板地睡覺或者摳手機,能夠同時愉悅身心的休息方式值得探索和嘗試。正確的休息可以讓人保持激情。

  遠離燃燒生命的爭論,踏實地做好自己份內的事情。


文末小結

  效率是非常值得追求的。提高“謀篇佈局”的全體掌控能力可以在一定程度上保證效率。更富有成效的實踐,還很可能在自己的眼界之外。

  世界這麼大,值得去看看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章