Ruby on Rails可能是最受赞誉的Web开发框架。这有很多原因,但每个框架,即使是最好的框架,都有其缺点。
我想知道您在开发Ruby on Rails应用程序时遇到的最常见问题以及您经常遇到的问题。
答案 0 :(得分:3)
对框架进行频繁的版本更新会使您的应用程序保持最新状态 - 升级可能会在不起眼的地方中断。
MonkeyPatching - 对于必须长时间维护大量代码库的任何人都会造成严重问题。
性能/强大 - 使用带有ActiveRecord的Ruby迭代器,使用内存消耗数据库查询轻松拍摄自己。
但我会在任何时候接管Java或PHP
答案 1 :(得分:2)
我对Rails使用全局变量感到兴奋不已。模型类通过全局变量(ActiveRecord::Base.connection
)查找数据库连接,有Rails
类,它是记录器,当前环境,缓存等事物的全局访问点。{{ 1}}从邮件中提取全局变量,依此类推。 Rails是围绕全局变量的使用而构建的,因此无论你做什么,在应用程序的任何级别,你总能找到一个全局变量。
这使得测试难看。如果Rails是基于Java构建的,它会使测试变得非常非常困难,但由于它是Ruby,它只是变得丑陋。测试需要在大量全局环境中进行,以便单独运行,这很容易使测试看起来毫无意义。看到五行或十行代码存在不同的全局变量,然后是一行或两行实际测试,这种情况并不少见。并不是说测试的五到十行是一个问题,但如果没有阅读测试中的代码,你就不能轻易看出全局状态会产生什么影响,以及它是如何影响的。这使得许多测试不必要地变得丑陋。
我觉得有点讽刺的是,Rails社区是我所参与的任何人中最精通的。
话虽如此,我不会为目前可用的任何东西交易Rails。你完成任务所需的速度,以及消除所有繁琐工作的大量插件和宝石每天都让我感到震惊。
答案 2 :(得分:0)
与任何科技一样,这里有一条学习曲线。但作为一个相对较新的框架,DHH等人已经能够“站在巨人的肩膀上”(前辈)并且已经形成了一个很好的框架。
我非常高兴选择Rails作为我的商业sw的框架。
缺点?没有像Java和Perl这样的旧框架那么多的库。 - 但是有很多方法可以解决这个问题。例如,从Rails调用这些库或移植它们。
性能通常在缺点类别中提到,但更便宜的硬件和更高版本的rails的改进已经解决了这个问题。与“稳定性”相同。
答案 3 :(得分:0)
对于多线程应用程序,Ruby Threads称为绿色线程,它不是OS级别的线程。这不能提供真正的多线程。