我已经使用node JS大约两周了,我很喜欢它。我偶然发现了一种叫卡布奇诺的东西;这听起来像我想用它来开发一个web应用程序。作为一个初学者,有人能帮助解释一下卡布奇诺到底是什么,它是如何适应节点的吗?
我开发应用程序的真正原因是我来自VB背景,我习惯使用表单来设计我的桌面应用程序。我不想受WYSIWYG类型IDE的限制,这就是我从node开始的原因。什么样的web应用程序?有……许多JS库/框架。这是一片丛林。
我强烈建议使用纯Javascript构建一些东西,从非常小到不那么小。否则,我保证,你将永远对语言和框架的区别感到困惑。JS非常易变,框架倾向于在核心语言之上创建新的语义。通过使用这些框架来学习的缺点是,你无法完全理解语言本身的复杂性和微妙之处,也无法真正理解这些框架给了你什么(在许多情况下,你不需要的东西或人为地限制了你)。要小心框架纠缠。
当你习惯了在文本编辑器中编写简单的脚本(如果你想要更好的东西,试试Sublime text),你就会开始明白你何时以及为什么需要框架的帮助。转到jQuery,因为它是使用最广泛的库,要么依赖于许多其他库,要么在很大程度上影响了其他库的风格。
我正在写一篇关于框架主题的博客文章,虽然看起来有数百个框架,但绝不是全面的。具体来说,就是根据他们的预期领域(例如DOM操作、单页应用程序、数据绑定、MVC等)和优缺点来划分20-30个主要参与者。
有一些很棒的书和YouTube视频介绍了现代JS的许多方面。我推荐Douglas Crockford的任何作品(尤其是《Javascript: The Good Parts》的书或视频)。他很迂腐,但很聪明,而且很有钱。如果你想了解更多关于最近/即将到来的语言变化的鼓舞人心的东西,请观看Google I/O活动中的一些内容。查看HTML5rocks.com上有关浏览器中可用的一些前沿功能的文章。还有很多很多的资源,但这些都是不错的。
哦,确保您熟悉浏览器中的开发工具。我个人认为Chrome是最好的选择。学习键盘快捷键,在任何页面上打开它,检查和面条。这些工具支持一些奇特的功能,比如实时编辑/保存源代码、分析和调试、DOM/CSS检查等等。还有其他免费和非免费的ide,但恕我直言,它们对刚学习的人来说开销太大了(许多高级JS开发人员使用Sublime Text)。
注:根据其设计目标,jQuery仍然很强大,但随着浏览器越来越多地向真正的标准(ES5、HTML5、CSS3)靠拢,它的目标是被淘汰。即便如此,对于很多应用来说,它的简写语义在很多方面都比新支持的标准要好得多。它不会很快消失,只是变得不那么重要了。像IE。忽略IE,除非你需要为工作构建东西。
据我所知,Cappuccino是某种客户端框架,与Backbone.js或Angular.js的风格相同,无法与Node.js相提并论。它们运行在完全不同的环境中(Node在服务器上,Cappuccino在浏览器上)。
像Cappuccino这样的客户端框架将用于实现需要在客户端做大量工作的web应用程序。例如,如果你用Node实现一个实时web应用,你可以用它来简化在DOM中插入新内容的过程。我没有用过卡布奇诺,而且它似乎不那么受欢迎。它似乎直接针对那些在Mac OS X上有Cocoa开发背景的人,所以如果这不是你想要的,我建议你去别处看看。客户端MVC框架在某些用例中是非常有用的,四大框架似乎是Angular.js、Ember.js、Backbone.js和Knockout.js,所以我会在考虑卡布奇诺之前先看看其中的一个。淘汰赛很容易学,但缺乏路由,这对我来说是一个障碍,所以我转向了骨干。考虑到它似乎占据了很大的市场份额,我现在可能会选择AngularJS。
Cappuccino是一个建立在Objective-J之上的客户端框架,而Objective-J又是一个建立在javascript之上的完整语言。它专门用于构建碰巧在浏览器中运行的桌面类应用程序。
Objective-J在javascript中添加了一些特性(比如经典继承),就像Objective-C在c中添加的一样。你可以在node中使用Objective-J,但可能不是大部分的Cappuccino。Cappuccino是一个框架,它可以让你以一种完全忽略你正在处理html的方式构建丰富的用户界面。
我不会推荐Cappuccino作为web开发的第一次尝试,除非你真的只想构建一个商业应用程序,并且你已经是一个熟练的Mac OS X或iPhone开发人员。教你怎么上网对你一点帮助也没有。
卡布奇诺(imho)远远高于其他同类产品,但它的目标(或最有用)是一个非常小的利基市场。
如果你仍然对Cappuccino(或Objective-J)感兴趣,你应该看看Cappuccino项目网站的学习部分