如何從學術原型代碼拓展成工業級別代碼?
01-06
發paper的代碼一般多是quick and dirty, 如果說一個方法很好,希望把整個代碼做好做健壯,一般要經歷哪些步驟?
比如:啥是工業標準,有沒有實例?
重寫
把paper看完丟在一邊,直到三個月之後把代碼忘乾淨,然後根據記憶按照工業標準重新寫一遍。記憶力減退者可酌情縮短遺忘時間。如果像我一樣嚴重健忘,看完paper就忘了代碼長什麼樣,就能直接投入工業應用了。
補設計文檔補代碼注釋
統一代碼風格
補單元測試(原來的代碼可測試性差 --&> 重構)補集成測試補端到端測試(視情況補負載測試,AB測試,冒煙測試等)上版本管理系統
上持續集成系統上bug跟蹤系統學書上的代碼:對處理的數據很多時候只是特定的,代碼易讀性差,注釋量嚴重不足,實驗室每個人代碼風格不一樣,代碼偏向過程。沒有對應技術手冊,演算法類的代碼沒技術手冊基本沒法看。工業用的代碼:不同人代碼風格基本保持一致,演算法易剝離,注釋清晰,易於維護,基本都是面向對象。文檔完整,包含技術路線,參數設置,測試結果等等。
所以照著工業用的代碼風格寫吧。
去公司里跟個項目小組,寫幾個月代碼,然後回頭看著「學術原型代碼」,重寫一遍……
做成公開的網路服務,推廣下,讓更多人使用。這時候問題就層出不窮了。
不用重寫,直接重構就可以。注意排版,命名,縮進,消除所有告警。然後,最重要的兩條,每個函數在五十行以內,最好是三十以內。禁止全局變數。全局來說,合理劃分文件結構,用一個大結構體或類組織所有數據,大類包小類,一層層包裏。
另外,臟代碼並不快,實際會更慢。
推薦閱讀:
※C++語言有什麼方便的GUI開發框架?
※程序員面試,面試官更注重代碼量、項目經驗還是操作系統、數據結構這種基礎課程?兩者比例是五五開還是多少?
※醫學生空閑時間學編程,是VB國二基礎,有沒有什麼好的建議?
※Python 中有哪些性能優化方法?
※想要系統學習演算法,斯坦福大學開設的MOOC課程《Algorithms: Design and Analysis》合適嗎?