在 Rails 5 應用中使用 ES6 來替代 CoffeeScript(上)

什么是 CoffeeScript?

coffee-logo.png

CoffeeScript 是一門編譯到 JavaScript 的小巧語言. 在 Java 般笨拙的外表下, JavaScript 其實有著一顆華麗的心臟. CoffeeScript 嘗試用簡潔的方式展示 JavaScript 優(yōu)秀的部分呀闻。
CoffeeScript 的指導原則是: "她僅僅是 JavaScript". 代碼一一對應地編譯到 JS, 不會在編譯過程中進行解釋. 已有的 JavaScript 類庫可以無縫地和 CoffeeScript 搭配使用, 反之亦然. 編譯后的代碼是可讀的, 且經(jīng)過美化, 能在所有 JavaScript 環(huán)境中運行, 并且應該和對應手寫的 JavaScript 一樣快或者更快。
—— http://coffeescript.cn

為什么要用CoffeeScript?

  • 更少,更緊湊,和更清晰的代碼;
  • 通過規(guī)避和改變對 JavaScript 中不良部分的使用,只留下精華羔飞,讓代碼減少出錯率,更容易維護;
  • 在很多常用模式的實現(xiàn)上采用了 JavaScript 中的最佳實踐;
  • CoffeeScript生成的JavaScript代碼都可以完全通過JSLint的檢測。

什么是 ES6?

ECMAScript 6.0(簡稱ES6)是JavaScript語言的下一代標準优妙,已經(jīng)在2015年6月正式發(fā)布了。它的目標憎账,是使得JavaScript語言可以用來編寫復雜的大型應用程序套硼,成為企業(yè)級開發(fā)語言。
標準的制定者有計劃胞皱,以后每年發(fā)布一次標準邪意,使用年份作為版本。因為ES6的第一個版本是在2015年發(fā)布的反砌,所以又稱ECMAScript 2015(簡稱ES2015)
—— http://es6.ruanyifeng.com/#docs/intro

為什么替代雾鬼?

有很多人發(fā)文表達對于三種正在熱點上的編譯到 Javascript 的語言的看法(這三種分別是 ES6,CoffeeScript 和 TypeScript):

可以看到 CoffeeScript 是一片唱衰的局面宴树,究其原因呆贿,也可以參考尤小右在知乎上的發(fā)言。

作者:尤雨溪
鏈接:https://www.zhihu.com/question/22323967/answer/21015056
來源:知乎
著作權歸作者所有森渐,轉載請聯(lián)系作者獲得授權做入。

曾經(jīng)用了大概一個禮拜左右,后來換回來了 同衣。個人覺得CS的一些語法簡化還是不錯的(尤其是array comprehension和arrow function)竟块,但同時還引入了一些semantic上的不同,掩蓋了很多JS本身的東西耐齐。比如用class掩蓋了構造函數(shù)和原型鏈浪秘,把JS的原型繼承硬套上了OO的外衣。還有一些不太明顯的行為上的差異埠况,比如variable shadowing(因為不用var所以在一個函數(shù)里沒法覆蓋同名的外層變量)耸携,implicit return(總是會返回最后一個expression的值)之類。另外就是有時候能省括號有時候又不能省... 這些問題導致我在寫CS的時候會無法遏制地在腦子里把寫下來的CS人工編譯成JS... 時間長了感覺比寫原生JS還累辕翰。
也就是說如果你深入了解并習慣了JS的各種細節(jié)之后夺衍,換到CS反而會帶來一層額外的思考負擔。這種情況在長期以JS作為主力語言的開發(fā)者身上比較常見喜命。相比之下沟沙,新手河劝、從其他語言轉過來的、或者是主力語言不是JS并且沒有也不想去了解JS各種坑的開發(fā)者會比較容易接受CS(我估計CS的一大部分用戶都是rails開發(fā)者)矛紫。
另一方面就是生態(tài)圈上的原因:CS的項目接到Pull Request的概率會低很多(寫CS的會愿意開JS項目的PR赎瞎,但寫JS的一般不樂意開CS項目的PR),不利于開源協(xié)作颊咬。

Ruby on Rails 開發(fā)框架默認用 CoffeeScript 务甥, 其為 RoR 開發(fā)帶來了效率和代碼可讀性的大幅提升,Coffeescript 編程類似 Ruby 語法喳篇,使其作為 Ruby on Rails 開發(fā)者來說入門難度不高敞临,但要熟練運用還需練習。正如上面尤小右所說的一樣杭隙,寫 CoffeeScript 的人絕大多數(shù)都是 Rails 開發(fā)者。

本人作為一個使用 Ruby 的開發(fā)者自然會接觸到 CoffeeScript因妙,不過對于這種簡化開發(fā)痰憎,為了少寫代碼而少些代碼的東西確實有些無法接觸,或許正如上面尤小右所說的一樣攀涵,我之前寫過很長時間的 Javascript(或者說 jQuery)铣耘,在寫 CoffeeScript 的時候有一層額外的思考負擔,感覺比寫原生 JS 還累(有類似想法的除了 CoffeeScript 之外以故,還有 Ruby on Rails 的模板引擎 slim 蜗细,所以一直堅守 Rails 自帶的模板 ERB)。所以當聽說 Ruby on Rails 已經(jīng)可以使用 ES6 代替 CoffeeScript 并且可以和 Assets Pipeline 一起使用怒详,就迫不及待的想要試一下炉媒,雖然相關的 Gem 包都還沒有發(fā)布 stable 版本。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末昆烁,一起剝皮案震驚了整個濱河市吊骤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌静尼,老刑警劉巖白粉,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鼠渺,居然都是意外死亡鸭巴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門拦盹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹃祖,“玉大人,你說我怎么就攤上這事普舆」叨梗” “怎么了池磁?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長楷兽。 經(jīng)常有香客問我地熄,道長,這世上最難降的妖魔是什么芯杀? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任端考,我火速辦了婚禮,結果婚禮上揭厚,老公的妹妹穿的比我還像新娘却特。我一直安慰自己,他們只是感情好筛圆,可當我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布裂明。 她就那樣靜靜地躺著,像睡著了一般太援。 火紅的嫁衣襯著肌膚如雪闽晦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天提岔,我揣著相機與錄音仙蛉,去河邊找鬼。 笑死碱蒙,一個胖子當著我的面吹牛荠瘪,可吹牛的內容都是我干的。 我是一名探鬼主播赛惩,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼哀墓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了喷兼?” 一聲冷哼從身側響起麸祷,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褒搔,沒想到半個月后阶牍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡星瘾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年走孽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琳状。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡磕瓷,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情困食,我是刑警寧澤边翁,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站硕盹,受9級特大地震影響符匾,放射性物質發(fā)生泄漏。R本人自食惡果不足惜瘩例,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一啊胶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧垛贤,春花似錦焰坪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至善绎,卻和暖如春黔漂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背涂邀。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工瘟仿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留箱锐,地道東北人比勉。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像驹止,于是被迫代替她去往敵國和親浩聋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內容

  • TITLE: 編程語言亂燉 碼農最大的煩惱——編程語言太多臊恋。不是我不學習衣洁,這世界變化快! 有時候還是蠻懷念十幾抖仅、二...
    碼園老農閱讀 5,331評論 2 35
  • 大學要教會你什么撤卢?或者說环凿,你要在這個大學經(jīng)歷怎樣的生活,獲得什么放吩? 在大學里智听,每個人都有自己的軌跡,沒有了高中那...
    若梔閱讀 379評論 2 4
  • 內心的強大,歸根結底就是敢于直面現(xiàn)實到推,能做到遇事全力以赴考赛,但又因識得天命而有所節(jié)制。(摘自人民日報50) 在遇...
    臨淄茂業(yè)DDM黃紅閱讀 161評論 0 0
  • 十年了莉测,十年如一夢颜骤。 十年前的夏天,好朋友教會了我騎自行車悔雹。后來常常往返于小鎮(zhèn)與家之間复哆,那條筆直的...
    叮叮當當叮叮當當當閱讀 241評論 4 0