11

我知道我来错地方了。你应该先学习 Javascript,然后当你厌倦了大括号和变量声明时开始研究 Coffeescript。然而,我是一位经验丰富的 Ruby 和 Python 程序员,但 Javascript 流利度为零,希望进入 Web 脚本(主要通过 Rails)。

我确信 Coffeescript 是适合我的方式,但我很难找到一个不假定对 Javascript 非常熟悉的教程。我看到的大多数教程都详细解释了 Coffeescript 的特性,只是为了掩盖诸如如何实际编写 Web 应用程序这样的小话题。

那么,您是否知道任何针对不了解 JS 的人的 Coffeescript 教程?

4

4 回答 4

10

我建议免费的在线Smooth Coffeescript书(基于Eloquent Javascript)。

不需要以前的编程知识。CoffeeScript 让您可以简单而优雅地编写面向 Web 的应用程序。它与 JavaScript 密切相关,但没有其古怪的角落。

Smooth CoffeeScript 是一本关于 CoffeeScript 和编程的书。从编程基础开始,学习使用 Underscore 和解决问题的函数式编程,学习面向对象和模块化。它涵盖了带有 Canvas 和 WebSockets 的客户端/服务器 Web 应用程序。

于 2012-06-21T06:12:05.973 回答
10

你可能不想听到这个,但我还是要说:你还是应该先学习 JavaScript。

JavaScript 与其他语言有点不同,因为它垄断了浏览器脚本。目前没有其他语言可以在浏览器中使用(除非它使用插件,或者解释器是 JavaScript!)。因此,对于任何需要执行任意数量的客户端脚本的项目,JavaScript 知识是必须的。

你可能在想“嘿,我知道 Python 和 Ruby,而且我从来不需要学习 C 或汇编!”,这当然是真的。但是,这些语言从来没有垄断过他们的领域。在许多情况下,Python 可以用于与 C 相同的事情。该平台不关心你使用什么语言,只要它支持它。

并且浏览器平台只支持 JavaScript。

CoffeScript 是 JavaScript 的抽象。尽管 CoffeeScript 被编译成 JavaScript,但是当你试图找出那个晦涩的 JavaScript 错误,或者调试一个生成的函数,或者想知道为什么有两个级别的未命名函数嵌套时,你会想知道到底发生了什么上。

现在,我并不是说你必须成为 JavaScript Ninja(尽管我会推荐它),但我要说的是你应该首先掌握实际的 Web 语言

学习 JavaScript,学习它的概念(在我看来,这是一种非常迷人的语言,一旦你克服了一些缺陷),然后使用 CoffeeScript 抽象出技术细节。

不过,既然您确实要求提供教程,这里有一些: 首先,Mozilla 的 JavaScript 指南非常好。如果您想要一些更高级的主题,还有一个由 John Resig 制作的交互式教程。最后,这里有一堆你可能已经知道的 CoffeeScript 教程。

于 2012-06-21T06:13:29.140 回答
4

我有 Python、ActionScript 和 Java 方面的背景。我开始直接学习 CoffeeScript,无意学习 JavaScript。在此过程中我学习了一堆 JavaScript,但我认为直接开始学习 CoffeeScript 是完全可以的。

我第一次被 Smooth CoffeeScript 吸引是因为它声称是针对那些试图直接学习 CoffeeScript 的人。然而,写作风格不是我喜欢的。YMMV。

此外,以我的 Python 背景,我发现我不需要太多的语法帮助。我直接从他的CoffeeScript 网页获得了我需要的所有语法帮助。我主要需要平台方面的帮助(蛋糕、开发环境、测试等),这在 CoffeeScript 网页上得到了很好的介绍,我还需要从其他几本书中得到什么。我最喜欢的教学书是The Little Book on CoffeeScript(用一个小时读完),我最喜欢的参考书是Trevor Burnham关于 CoffeeScript 的实用书架书,它从 CoffeeScript 的角度教会了我 jQuery。

帮助我快速提升的另一件事是在 CoffeeScript 中分叉/升级了一些我自己的工具。我在 github 上 fork CoffeeDoc 存储库以创建我自己的版本,最终我重新编写它以创建CoffeeDocTest,它类似于 Python 的 DocTest,除了 CoffeeScript。我对 CoffeeScript 的 Coda 语法模式的升级通过 github 的 pull-request 机制被接受回 master 分支……在代码审查和一些清理之后。查看别人的代码确实可以帮助您学习习语。从知情人士那里获得代码审查会更有帮助。

于 2012-06-22T02:04:21.793 回答
1

你的问题对我来说没有多大意义,因为 CoffeeScriptJavaScript。认识一个就是认识另一个。如果我建议学习 CoffeeScript 的最佳方法是打开一本 JavaScript 书籍,但这些语言是相同的,这听起来可能违反直觉。

我知道它们看起来不同,但差异在句法层结束[1]。在 CoffeeScript 中添加一些分号、花括号和括号,你就差不多了。所以去学习 JavaScript,你会发现你也在学习 CoffeeScript。

您还可以学习 CoffeeScript 并顺便学习 JavaScript。不过这可能有点困难,因为在实现源映射之前,只能在 JavaScript 中进行调试(我向你保证,你会进行很多调试;-))。

[1]:除了可能稍微复杂的类定义。

于 2012-06-21T07:10:29.867 回答