文章轉自 極客論壇
“動態類型一時爽,代碼重構火葬場”是一句江湖名言,意思就是用動態類型的語言在編寫程序時可以隨心所欲,無比之爽;但是,到了需要做重構的時候,內心將迎來數以萬計羊駝的踐踏。爲什麼呢?
這其實也要分兩種情況:
第一種情況,團隊小而實力極其強大。這樣的情況下,就算是用彙編語言,寫出的代碼也是井井有條,留下的文檔也是清楚明白。加上團隊成員個人能力強,擴展功能、優化代碼時,痛苦兩天問題就解決了。
這種情況,實際上是存在的,但是罕有能長期持續的。越是BAT級別的大公司越是不可能,因爲人員冗雜且變動頻繁。在新成立的小團隊裏,可以短暫的存在。然而,技術人員往往技藝越高脾氣越怪,加之風格各種奔放,導致沒法管理。不需多久,這種戰力爆表的盛勢就會湮滅。
第二種情況,人員協作多、實力參差不齊。這種情況實際是絕大多數情況。尤其是在修改別人的代碼的時候,情況更悽慘。原本爲了優化和提升,結果越改越錯。加之deadline帶來的壓力,各種潛藏的bug將數不勝數。不但項目成員痛苦,而且會威脅到服務質量,直接影響到市場表現。
所以,綜上所述,還是靜態類型的語言好。評判標準就是有利於大局。
在未來的篇幅裏,我將逐步闡述在Node.js中,用“靜態類型“的語言typescript進行web全棧開發的技術。當然,嚴格地說, typescript並不是靜態類型的語言,畢竟它不能完全限制編程人員使用強類型。然而“天作孽,猶可違;(這裏空缺的一句是重點