亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

CoffeeScript?TypeScript?還是JavaScript

瀏覽:5日期:2023-11-23 13:45:48

請(qǐng)注意本文只是我的偏見,我努力地理解借助CoffeeScript或TypeScript之類的編譯器寫JavaScript代碼的理由。靜態(tài)編譯、強(qiáng)類型語言和框架,我有著這些流行的、豐富的背景。我的上一份工作就是使用TypeScript,因?yàn)槲也坏貌皇褂谩D鞘且欢尾豢鞓返臅r(shí)光,我將因此而離開。

我很幸運(yùn)地把自己從這種困境和負(fù)擔(dān)中釋放出來,正在完全地使用JavaScript編寫代碼,我對(duì)此感到格外高興!如果我對(duì)于這種變化的熱情還不夠明顯,請(qǐng)讓我向你保證,我現(xiàn)在更開心了。有一點(diǎn)很重要,我不是在暗示靜態(tài)編譯或強(qiáng)類型語言有什么錯(cuò)誤,因?yàn)樗隙]錯(cuò)。它只不過不再是我的菜了。

鑒于JavaScript的動(dòng)態(tài)本性以及缺乏靜態(tài)類型檢查,我可能編寫著低質(zhì)量代碼,充斥著bug卻不能在編譯時(shí)發(fā)現(xiàn),對(duì)嗎?答案是毫不含糊的,不對(duì)!我從來不能這樣有動(dòng)力、多產(chǎn)、富有表現(xiàn)和高效。我沒有編寫過最少bug的高質(zhì)量代碼,也不能在發(fā)現(xiàn)bug后快速修復(fù)。或許你想知道,我是否在編寫風(fēng)格統(tǒng)一的JavaScript,它們遵循最佳實(shí)踐和風(fēng)格,卻沒有編譯器?答案是,對(duì)的!我不是故意在這里鼓吹自己,而是要指出,靜態(tài)編譯的缺乏不一定會(huì)導(dǎo)致更多的bug和低質(zhì)量的代碼。

的確,有很多方法來確保JavaScript代碼被正確地編寫、遵循推薦的風(fēng)格和最佳實(shí)踐。更不要說編寫高質(zhì)量JavaScript成為了第二天性,自然地,你傾向于遵循你學(xué)到的、同樣優(yōu)秀的模式。你還應(yīng)該總是編寫合適的單元測試,這是一種最佳實(shí)踐和另一種應(yīng)對(duì)bug的防御,有助于確保預(yù)期的功能。我們不要忘了,合適的代碼審核也是一種最佳實(shí)踐,應(yīng)該去用。

那么,為什么要用這些編譯器,好處又是什么呢?答案是,我也不知道。是不是應(yīng)該有可以編譯成Ruby和Python的RubyScript和PythonScript呢?在我看來,如果你不喜歡、或者不想編寫JavaScript代碼,那么你可能就不應(yīng)該做一名JavaScript開發(fā)人員。它是古怪的、不完美的語言?它絕對(duì)是,但是它一直在變得更好。大部分的怪癖和遺漏在ECMAScript Harmony【注1】中提出了,比如:ES.next。

我認(rèn)為使用某種編譯器只有一個(gè)原因,那就是,如果你是高級(jí)專家、JavaScript大拿,不喜歡原生JavaScript,只是想簡單快捷地做些東西。如果你不是剛才提到的專家,那么我真地相信你只是在傷害自己而逃避原生JavaScript。你干嘛這么問?答案是,JavaScript正變得無處不在,成為莊重的、令人驚嘆的語言。它已經(jīng)融入了所有的web和移動(dòng)環(huán)境、使用Node.js的服務(wù)器,還有數(shù)據(jù)庫(比如MongoDB),甚至最近的硬件級(jí)別的處理(比如arduino)。

我讀了很多博客、newsletter、書、文章、論文、文檔、MDN等與JavaScript相關(guān)的東西。它們都包含了用原生JavaScript編寫的代碼,我很少看到作者用CoffeeScript或類似語言呈現(xiàn)的代碼,在極少場合碰到這些代碼時(shí),我會(huì)立即停止閱讀,因?yàn)槲抑粚?duì)JavaScript、而不是它的其它版本感興趣。

如果你曾經(jīng)計(jì)劃、或者有興趣在工作中用到基于JavaScript的數(shù)據(jù)庫(比如MongoDB),那么你需要知道如何編寫JavaScript。你不能用CoffeeScript來查詢MongoDB,也不能沒有預(yù)編譯就用CoffeeScript為Node.js編寫基于服務(wù)器端的JavaScript,即使你有能力,也不能這樣做。

在GitHub上,如潮水般涌來的、表面上有數(shù)百萬種的JavaScript資源庫和框架,該怎么樣呢?大型的有jQuery、AngularJS、Underscore等等。我強(qiáng)烈推薦深入學(xué)習(xí)JavaScript,這樣你不僅能夠閱讀和理解源代碼,還可以調(diào)試它。是的,說到了調(diào)試,不管是你是在瀏覽器,還是使用Webstorm為Node.js調(diào)試JavaScript,都會(huì)涉及到原生JavaScript。

我最后想指出的是與其他人的協(xié)作(比如GitHub),或者找一份JavaScript工作室的工作。如果順利的話,掌握原生JavaScript的好處應(yīng)該比較明顯。當(dāng)你入職第一天走進(jìn)嚴(yán)肅的JavaScript工作室、提出CoffeeScript編譯器的問題,你能夠想象得到這是什么情景嗎?

重申,如果你是高級(jí)專家JavaScript大拿,那么編譯器可能就是好的嗎?盡管如此,我懷疑你會(huì)不會(huì)成為這樣的大拿,如果你因?yàn)榍嗖A某種編譯器而避免學(xué)習(xí)、編寫原生JavaScript的話。如果你擔(dān)心靜態(tài)檢查和風(fēng)格,可以嘗試一些構(gòu)建工具(比如,Grunt、Gulp、Node、NPM等)。很多插件運(yùn)行非常不錯(cuò)。對(duì)于既定代碼,使用CoffeeScript或TypeScript是為了查看編譯好的JavaScript,然后模擬原生代碼的輸出。無論怎樣,幫自己一個(gè)忙,優(yōu)先掌握J(rèn)avaScript。

注1:ECMAScript Harmony將會(huì)以“ECMAScript 6”發(fā)布。http://zh.wikipedia.org/wiki/ECMAScript

原文:http://innoarchitech.com/coffeescript-typescript-javascript/ 翻譯:labazhou

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 国产精品黄在线观看免费软件 | 国产综合久久久久 | 成人午夜电影免费完整在线看 | 国产人成久久久精品 | 国产一区二区三区免费播放 | 亚洲国产精品视频 | 国内精品视频一区二区八戒 | 国产高清无专砖区2021 | 亚洲制服一区 | 亚洲欧美精品中字久久99 | 欧美日韩一区二区三区视视频 | 国产综合一区二区 | 亚洲美女视频一区 | 国产欧美精品亚洲桃花岛 | 亚洲一区播放 | 一级黄色a视频 | 欧美啪啪一级毛片 | 久久r这里只有精品 | 日韩精品久久一区二区三区 | 久草手机视频在线观看 | 久久视频一区 | 亚洲精品在线影院 | 国产在线黄 | 日韩国产欧美一区二区三区 | 亚洲精品成人一区二区aⅴ 亚洲精品大片 | 国产日韩欧美在线一二三四 | 国产视频资源在线观看 | 免费观看日本a毛片 | 精品日韩一区二区 | 男啪女视频免费观看网站 | 亚洲福利视频一区二区三区 | 1024cao社区榴地址一地址二 | 国产的大片免费看 | 污污网站大全 | 国产在线一区二区三区四区 | 手机在线观看精品国产片 | 国产成人18黄网站免费网站 | xoxoxoxo欧美性护士 | 国产综合精品久久久久成人影 | 四虎黄色 | 免费大片黄在线观看日本 |