做者:茹姐npm
連接:https://www.zhihu.com/question/300163211/answer/654447355編程
來源:知乎併發
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。框架
說一下本身得想法哈!雖然本身一直在用go語言,但並不贊同一味的說go語言得好,清晰的認識每個編程語言得優劣勢纔是正確之選。編程語言
雖然目前Go語言是不少項目重構的首選,可是仍是有一些使用上的缺點。固然由於Go語言是一種年輕的語言,因此它仍在發展中,在將來還有很大的提高空間。並且Go語言團隊,幾乎每半年就更新版本,因此也能感受到Go團隊,在逐步的修改Go語言的一些不足之處。函數
GoLang開發人員沒有重要的框架。可是有其餘語言。Ruby有Ruby on Rails,Python有Django,PHP有Laravel工具
2. 錯誤處理開發
若是可能出現錯誤,Go程序須要函數來返回錯誤。這可能致使錯誤跟蹤丟失致使缺乏有用的錯誤處理邏輯的問題。有些工具能夠幫助檢測這種錯誤,但它們更像是解決方法。開發人員還須要編寫大量的if塊來檢查錯誤並處理它,這使得代碼不那麼幹淨。固然在go2草案中,聽說已經要修改Go語言的錯誤處理機制了io
3. 包管理重構
Go中的包管理並不完美。默認狀況下,它沒法建立具備固定包版本的依賴關係樹,這意味着在不一樣時間構建時,建立的生成可能基於不一樣版本的包。相比之下,Python,NodeJS(npm)和Ruby都有相對維護良好的包管理系統。例如,在Ruby on Rails項目中,你能夠擁有一個Gemfile文件,該文件定義依賴項及其依賴版本,這意味着即便未來某些版本的某些版本稍後會更新,也會使用相同版本的軟件包來建立新版本。
最後,當你參與新項目或計劃改進下一個項目時,Go絕對是一個不錯的選擇。一旦你習慣了Golang開發,就能夠把它變成主流,由於與缺點相比,它的優點要大得多。
它能夠幫助你在時間線和預算中構建複雜的應用程序,而且能夠輕鬆處理每秒1000個併發請求,這在其餘語言中多是很是困難的。