快速开发:Rails还是Django?
我大约有两周的时间来开发一个联系人数据库系统,目的是替代那些散落一地的电子表格和纸张。
此外,我还需要开发两个网站(要有动态内容)和一个小的AJAX网络服务。
我对rails和django都没有经验,但我学习得很快。
这两个框架都声称可以快速开发。
rails和django各自有什么特点是对方没有的,这些特点能加快我这个应用的开发吗?
另外,联系人数据库更适合用django的管理面板,还是rails的视图搭建工具(scaffolding)呢?(因为会有很多增删改查的操作)
5 个回答
除非你在这两种语言上有一样的经验,否则你肯定应该选择你更熟悉的那一个。如果你对Python和Ruby都不了解,那你可能就不应该用这两种语言。如果你会PHP的话,可以用CakePHP或者CodeIgniter来达到类似的效果。如果你会其他语言,可以在这个网站上询问关于那种语言的类似Rails的MVC框架。
Django的后台管理系统可以根据你的模型定义,自动生成一个CRUD(增删改查)应用,你可以根据自己的需要进行定制。我在多个项目中都用过这个后台管理,真心觉得它能省下很多时间。你根本不需要花时间去写模板或者JavaScript代码。
Django还有一些通用视图,可以处理对象的详细信息、列表展示、更新或删除任何模型,而你不用担心应用的逻辑。你只需要提供模板,连接到网址,基本上就完成了。
在部署方面,我觉得Django和Rails现在差不多。虽然Rails的部署一直很麻烦,但现在情况有了很大改善。
对于一个简单的联系人数据库,Django的后台管理可能是Rails和Django之间最大的区别。而且你可以在本地运行Django项目,使用真实的网络服务器而不需要任何配置(只需运行'python manage.py runserver')。
如果你对这两种技术都没有经验,而且只有两周的时间来交付一个产品,我建议你都不要选。如果时间有限,你应该利用你已经掌握的知识。光是适应这两种环境就得花你两周的时间。Rails和Django都是很受欢迎的框架,它们能让你在短时间内完成很多事情,因为很多细节都是自动处理的,你不需要去考虑这些。如果你不知道这些细节是什么,你就无法充分利用这两个平台的优势,最终你写出来的代码会变得杂乱无章,维护起来也会很麻烦。
我不同意@knutin关于Rails部署简单的说法。几年前可能是这样,但现在即使在一个空服务器上,部署Rails应用也变得相对简单,如果你打算在Heroku上部署,那就更简单了。就我所知,目前没有一个平台能像Heroku和Rails那样提供Django应用的可扩展性和部署的便利性。
如果你一定要选择其中一个,我推荐使用Rails,并且可以用formtastic来生成你的CRUD表单。Formtastic比Rails自带的生成器灵活得多,这样你可以在使用的同时不断改进你的代码。
最后,如果你决心使用某个工具,尽管有学习曲线,我听说过很多关于hobo的好评,虽然我自己还没有在项目中使用过。你可能会发现它比直接使用Rails更容易上手。