补充一下,实际上我觉得 ROR 和 Node.js 没有太大的可比性。ROR 是一个基于 Ruby 的 Framework。而 Node.js 可以算作一个 interpreter。但如果 Node.js 社区搞出个类似 ROR 的 Framework,我估计风暴就要来临了。
通常来说,一个大型项目里并非非得用一种语言。 用 Python/Ruby + C,用 Nginx+Lua,用 PHP+node.js 都是很常见的情况。只要架构设计合理,逻辑分层,会很容易把需要高性能运算的作业请求转发给 Node.js、openrestry、C、Java 等后端。 在数据层也是一样的,Memc、Redis、Mongo 等都是很好的数据缓存工具。
#25 楼 @hhuai #26 楼 @help5305fff 这个主要取决于项目的类型,涉及仓储库存之类的数据库应用会用得比较多,因为这类应用几乎是 CURD 的大集合。
从 knwang 的经验来看,的确是这样的。 对于初学者,只要了解了 MVC,或者以前接触过类似的东西,我往往会换一种思路进行解释。
先从新建一条 Route 开始(比如我想制作一个叫/testing 的页面),就会给出“找不到控制器”的错误;然后进而告知控制器的文件命名及相关规则,引导其建立一个匹配的 Controller。紧接着系统提示“Template”找不到的错误。再然后理所当然新建一个模板,一个新手写的 Hello world 诞生。水到渠成。
虽然这个例子不涉及数据库,但初学者往往能一下子对整个 ROR 的体系有非常直观的认识,并且会逐步主动尝试去修改模板变量等内容。这个过程远远比解释 Scaffold 生成的各个文件来得自然。
#7 楼 @yzhrain “要说新人不知道如何创建一个 M, 一个 V,感觉这和 scaffold 没关系啊,你不去理解它,如何会知道它是怎么样创建的呢?”
我不认同。一个良好的帮助,应该是教初学者一步一步创建出 M,V,C。这其实并不难,创建三个文件而已。只需要手把手做完这三步,立即会对 ROR 中的 MVC 模型有一个深刻而具象的认知。而不是像现在这样:很多初学者做完了 Demo,却感觉自己被蒙在鼓里,没有一点而兴奋——因为这个 demo 实际上不是他本人“亲手”完成的,而是归功于脚手架。
当一步一步地完成一个简单的 demo 之后,再告诉学习者:其实不必如此麻烦的,ROR 已经为你准备好了一个叫 Scaffold 的工具,它可以帮你创建好上面的文件。实至名归。
上面的方法都要警惕 Array 里第一个元素为 0 的情况。这是坑。