新手java程式設計師一個,本身java也用的不敢說老練,最近接手了一個新專案,是一個網站註冊時過濾惡意使用者的工程。最開始看到是用typescript寫的,以我的知識還在腦中笑話了對方一番,只用前端過濾,不是很容易被跳過嗎?然後發現這居然不是前端。是後端。那麼這個語言和傳統的java,php相比,寫後端的優勢在哪裡,主業為後端的話,有必要深入學習一下嗎?
回覆列表
-
1 # 牆角的貓
-
2 # 巧學前端
typescript,簡稱ts,是javascript的超集。
眾所周知,js是弱型別的語言,弱型別通常為指令碼語言,比較靈活方便,同時又有個缺點,就是不夠嚴謹,團隊協作不便。
於是就有了ts,ts可以說是增強版的js,在相容js寫法的同時,新增了強型別,如果型別錯誤,會編譯不透過。這就在一定程度上避免了專案執行時的出錯。
除了強型別,ts還支援類似java的介面、泛型等,因此java的同學上手ts也會比較快。
最後回到問題的關鍵,ts相比傳統後端語言有什麼優勢?
首先,ts是js的超集,所以前端同學上手會比較快,可以漸進式的學習,因為ts相容js寫法。
其次,可以做到前後端語言大一統,大前端之路,ts是必不可少的,因為寫後端,強型別比較靠譜。
最後,ts比java學習成本要低得多。
-
3 # bylii泡麵
現在真的是玩的嗨,把原本是前端的東西拿來寫後端,把原本是後端的東西拿來寫前端,還是那句話,你喜歡不喜歡我不管,我就是要發明輪子
-
4 # retsam
沒有用ts寫過後端,不過寫前端時,感覺ts開發效率還是高,在保證可用和安全的產出效率還是主要追求,畢竟業務變化太快了,以前我用c寫cgi,後來c++,再後來是php,現在ts,元件多,不用重複造輪子
-
5 # 速碼爵士
我並不覺得ts在前後端有明顯優勢。
Typescript的唯一好處是讓ide可以幫你做靜態錯誤檢查及提示型別資訊,可以減少些編輯程式碼時的拼寫錯誤,強制你要傳送的資料型別。
一般面向time and money的專案,TS 既不能改善你的設計,也不能提高指令碼的效能,甚至也不能提高程式碼的可讀性(就像c++一樣,強型別語言寫的庫你照樣會大量看不懂),而且型別定義會帶來額外的工作量和編譯開銷;另外,如果專案裡有很多資料型別定義為any的話,就又折回到標準js了。
以一個前端的視角來說一下typescript寫後端的一些優勢吧。Js依託nodejs實現了一個統一的生態。什麼意思,就是前端開發和後端開發可以使用同一種語言來完成,npm裡面豐富的包,可以滿足各種需求。另外js在處理非同步和高併發時候有一定優勢,據說淘寶在雙11有過實際應用。
至於其他,我們接觸的基本上是中小型專案,其實以我的理解,Java,PHP,go這些作為後端語言,誰在語言層面有多大的優勢,完全沒有太多的比較可言,大同小異而已。那比較的又是什麼呢,就是應用框架了。你不可能徒手造輪子,自己實現一套框架。所以只能對比框架的便宜信了。說回來,各個語言出名的框架好像也各有優勢,資料庫ORM等實現模組十分簡單。沒有太多能比較的。不過java這些老牌後端語言,在處理複雜邏輯上可能有很多現成的經驗可以借鑑,nodejs算是新成員,框架express koa nest egg,這方面欠缺一些。
說了這麼多nodejs和js,那typescript優勢在哪裡呢。js在語法上是很隨意的,這對後端語言健壯性來說比較不好。typescript就是解決這個問題的,它在js上構建了一個靜態檢測和編譯的過程,使得js更加健壯。但是實際情況來說,也增加了開發複雜度