当普通ASP.net C#程序员(除了编写一些hide()show()效果之外的JavaScript知识非常差)将不得不从构建ASP.net WebForms应用程序转换为RIA JavaScript应用程序(客户端 - 服务器体系结构)喜欢)。
对他来说可能不那么痛苦了:
我正在考虑
有没有人有过类似场景的经历?
答案 0 :(得分:11)
TL; DR:最好的办法是学习JavaScript。
图书:
切角:
如果你想偷工减料/有死线要看Script#或其他C# - > JS编译器。
关于CoffeeScript:
但是我不同意@jAndy的部分内容。我相信CoffeeScript足够稳定可以使用。
您可以从中学习不需要JavaScript知识。
如果你喜欢coffeescript使用它。我更喜欢JavaScript语法,所以我使用它。
学习RIA:
我个人觉得CoffeeScript vs JS是一个偏好的问题,你仍然需要学习HTML / CSS / DOM。
RIA开发还有很多东西,只知道JavaScript。
CoffeeScript问题:
然而,没有学习JavaScript会有一个很大的问题,调试coffeescript就意味着调试自动生成的JavaScript,如果你不知道,那就很痛苦。
个人推荐:了解ES5。没有JS知识的调试是一场噩梦。
JavaScript不是一种糟糕的语言:
有些人认为JS是一种可怕的语言,其原因是ES3的平庸实现。但是EcmaScript5是一种可靠而可爱的语言。人们将浏览器合规性和浏览器错误与语言混淆。我个人很想说学习ES5比学习CS更好。
答案 1 :(得分:6)
我是CoffeeScript: Accelerated JavaScript Development的作者,刚刚出版。我写这本书的方法 - 与Smooth CoffeeScript形成鲜明对比,本篇帖子中的其他人提到过 - 我试图向读者传授CoffeeScript和JavaScript。我对“我应该学习哪些内容?”的看法。问题一直是:如果不学习JavaScript,就不应该学习CoffeeScript。
调试是理解JavaScript的一个好的,显而易见的理由。一个不太明显的原因是,作为现实世界中的CoffeeScript开发人员,您将依赖于JavaScript库(如jQuery)。您需要能够理解这些库的文档(理想情况下,它们的源代码)。
好消息是这两种语言非常非常接近。 CoffeeScript没有自己的标准库;它不会修改原型;输出与输入的顺序相同(非常小的例外情况除外,例如能够写f() if x
而不是if x then f()
)。因此,如果您已经拥有一点 JavaScript知识 - 如果您是众多开发人员之一,他们并不完全理解this
的含义,或者原型继承是如何工作的 - 那么我认为你应该开始学习CoffeeScript。在此过程中,您将成为更好的JavaScripter。
将CoffeeScript和JavaScript视为同一语言的两种方言。在一个人中获得流利,你会发现另一个是自然而然的。
答案 2 :(得分:4)
过去几天我们在Stackoverflow Javascript Chat对这个主题进行了长时间的讨论。一般的结论是,CoffeeScript是一个很好的工具,可能会创建“ok”的javascript代码。但是,如果你知道自己在做什么,你可能希望直接在javascript中编码,而没有“更高级别”的语言,而这种语言是半编译的。
我对CoffeeScript并不是很有经验,所以如果我说错了,我会很乐意得到纠正。例如,我无法分辨CoffeeScript对ECMAscript3到5(甚至6)差异的反应。 CoffeeScript会自动为每个代码创建回退代码,还是只生成ES3代码?
所有这些问题和怀疑是我尽可能使用普通Javascript的原因之一。如果你不在乎这么多事情,你需要快速的结果,这可能是一个很好的方式。
答案 3 :(得分:3)
CoffeeScript提供更短的语法,一些合成糖,并帮助避免几个javascript陷阱 - 如0 ==“”。
就是这样。而已。没有惊人的,令人兴奋的概念,没有完全不同的方法。 如果你是一个好的javascripter,你可以使用coffeescript将你的效率提高10-15%。您将始终需要编译源代码,但这不是什么大问题。例如,在portlet创建者看来,他们每次想要查看更改时都会编译源。世界仍然在旋转:)用一些聪明的方法,你不会感到不舒服。
但是,从javascript开始是更好的方法。 Coffeescript很不错,但距离承认它是一个生产标准有很大的距离。我甚至可以想象当coffeescript发展将被放弃的情况。它可能会给你带来一些(不是很大但很烦人)的麻烦,如果你那时候会有大量的coffeescript代码。
此外,coffescript中的编码不会让你免于学习很多不同的东西 - 关于DOM,关于事件,关于基本对象等等。我再说一遍,这是方式,更好地学习javascript。然后,当你已经拥有javascripter的经验时,由你来决定是否需要使用任何特定的js编译器。你知道,这就像吸烟一样。这是你的选择,但你应该是成年人)))
答案 4 :(得分:0)
我对人们的建议是尽早跳上咖啡。你必须把它编译成js,所以你会看到你编写的内容编译,因为你的问题的大部分答案都是javascript,你自然会同时学习。并使用此工具:http://js2coffee.org/。尝试使用coffeescript将使你成为一个更好的javascripter,我看到很多后端开发人员迁移到javascript并且他们写的代码非常糟糕,很可能他们也没有编写出色的后端代码,但是,但是,如果他们正在编写coffeescript,他们会清理他们的代码,并开始自然地更好地编写他们的代码。
我们处在一个伟大的领域/特别是安全方面,但是保持最新,强烈建议采用未来的技术coffeescript现在随附RubyOnRails,尽管我不使用RubyOnRails已经足够我采用,因为如果一个项目出现在我必须使用它的地方,我不是从头开始。
考虑到人们在C#早期获得的所有资金,早期的RoR,早期的JQuery ......有很大一部分jQuery用户从不费心去学习如何编写自己的插件,这非常容易做到,而且只有合并其他人,或者他们对代码重用的想法是复制和粘贴。
在这个领域取得进展并不需要太多。学习使事情变得最有效的语言,让你不要养成不良习惯,然后学习创建可扩展的插件或任何开源项目,你永远不会因工作而受伤。
简而言之,如果你试图推动你可以做的事情,那么学习javascript是不可避免的,因为开发人员可以通过coffeescript来争取同行竞争同样的工作。