浏览器家园·资讯

展开

CoffeeScript 是一门让人上瘾的语言

编辑:浏览器知识
屏幕快照 2017-04-17 上午2.48.37.png

昨天偶然去逛 CoffeeScript 官网发现,这门陪伴我时间最短,但是我最喜欢的语言已经发布了 2.0 版。虽然目前还在 Alpha 阶段,但也足以让我高兴。

新版本主要是对 ES6 的支持加强,比如 class 会被直接编译为 ES6 的 class,而不是 1.0 中用恶心的 prototype。类似的还有之前的剩余参数 (a, b, args...) 会被直接翻译为 function (a, b, ...args)

除了这些,还有对asyncawait的支持,这让我们在 CoffeeScript 上也可以使用这一最先进的生产力了,避免了回调地狱的产生,真是大好。不过需要注意的是,支持这些新特性需要你将 node.js 升级到至少 7.6+

我的标题里说了,CoffeeScript 是一门让人上瘾的语言。这在我身上已经得以验证,我认为优雅的程序员都要去学习它。就像它的名字一样,它可以让你干净利落地完成一件工作,就像喝着咖啡那样 decent。

这是我刚刚顺手写的一个脚本,因为我之前写程序习惯用四个空格缩进,直到今天我才注意到 CoffeeScript 官方推荐的是两空格。作为一个很懒的程序员,我当然不会一行一行地去改。因此我哼着歌写着代码,几分钟就完成了这飘着咖啡香味的代码。

fs = require 'fs'
path = require 'path'

dir = process.argv.pop()

listFiles = (dir) ->
  fs.readdirSync dir
    .forEach (file) ->
      file = path.join dir, file

      if (fs.statSync file).isDirectory()
        listFiles file
      else if /\.coffee$/.test file
        changeIndention file


changeIndention = (file) ->
  console.log file

  content = fs.readFileSync file, encoding: 'utf8'
    .split "\n"
    .map (line) ->
      line.replace /^(\s*)(.*)$/, (m, a, b) ->
        (a.substring 0, a.length / 2) + b
    .join "\n"

  fs.writeFileSync file, content, encoding: 'utf8'


listFiles dir

把它保存为文件 file.coffee,然后你只需要运行

coffee file.coffee {目标目录}

把 {目标目录} 替换为你的coffee文件存放的目录即可。此脚本会自动将此目录下所有的 .coffee 文件的缩进大小缩减为原来的一半。

我小小总结了下使用 CoffeeScript 的好处

  1. 干净,我对代码整洁干净有一些近乎偏执的追求
  2. 没有废话。相比之下 JavaScript 简直是一个废话连篇的语言,废话越多意味着越甘于平庸,有追求的人当有自己的语言。
  3. 保持敏锐。大家在写 JS, PHP, JAVA 这类比较大众化的语言时有没有这种感觉,写得越多越麻木,写到最后你自己都不知道在写什么玩意。这对程序员来说实际上是很要命的,写程序是需要想象力的,当你的想象力被冗长的语言消磨没了的时候,你的大脑就再也闪现不出那些美妙的创意了。而使用 CoffeeScript 时,你会不自觉地想要审视你的代码,让它直指需求所在,让它更贴近你想要的东西。

我使用 CoffeeScript 也已经有三年多的时间,目前我的绝大部分 JS 代码都由其完成。这个过程让我受益匪浅,甚至有段时间我都不愿去碰 PHP 这门宇宙第一大语言(手动滑稽。。。)。我建议大家可以去看看它的文档,这会让你以后的编码过程都心情愉悦的。

出处:https://joyqi.com/javascript/awesome-coffescript.html

文章TAG:一门  上瘾  语言  CoffeeScript  

加载全部内容

相关教程
猜你喜欢
大家都在看