Ruby on Rails中的不良做法

raf*_*mvc 8 ruby-on-rails

我正在寻找Ruby on Rails中的一些不良实践示例,以便演示不该做什么.

我最大的就是在模型after_save hook上使用update_attribute.

Object.update_attribute(:only_one_field, "Some Value")  
Run Code Online (Sandbox Code Playgroud)

由于这是一个非常开放的问题,我将等待一周或两周,然后选择最有投票答案的答案.

玩得开心!

set*_*rgo 14

  1. 没有使用太多的质量分配 attr_protected

  2. 使用太多的插件 - 有很多宝石,Rails有很多插件可供你的应用程序使用.但是,当您使用gem或插件时,您很少了解代码的运行方式(除非您实际查看源代码,大多数人从不这样做).这是一个巨大的问题.你不知道如何正确调试代码,插件和宝石相互冲突,安全性成为一个主要问题,等等.因此,我总是建议编写所有自己的代码.当然,Devise很适合身份验证,但是你能告诉我它是如何工作的以及运行了什么查询吗?你有控制优化吗?(我不是在挑选Devise,只是展示了很多RoR开发人员熟悉的明显例子)/

  3. 保持不需要的页面/操作 - 这么多Rails开发人员使用脚手架(因为它很好),但随后他们也懒得删除不需要的操作.它就像添加:only => []:except => []在您的路线文件中一样简单,但大多数人从不这样做!我不知道有多少Rails站点遭到黑客攻击或损坏,因为人们没有限制delete行动

  4. 试图反对Ruby - 来自其他语言的开发人员经常遇到"Ruby-way"的困难.其中一个最值得注意的例子是具有非递增或非整数主键.

  5. 太多的控制器,没有足够的模型--Rails有一个"胖模型,瘦的控制器"原则,太多的开发人员打破了.

  6. 违反MVC - params在模型中访问,试图将东西入侵控制器等.

  7. 不更改默认的Rails唯一会话令牌(实际上不是随机的)

  8. 编写草率代码 - Ruby有一种使代码看起来可读的好方法.如果您来自Java或PHP甚至是Python,那么在您学习Ruby之前,您的代码就会非常难看

  9. 说Rails"是一种语言"或"我在Rails中编码" - 当我听到有人说"我在Rails中编码"或"Rails是我最喜欢的语言"等时,绝对正确地说错了方法,等等.轨道不是A语言.Rails是一个框架, 建立关于Ruby.这与安全性等无关,但如果你开始说RAILS是一种语言,你会真的激怒很多RUBY开发者.这是一个框架.

  10. 比较PHP和Rails - 不要这样做.同样,PHP是一种语言,Rails是一种框架.比较它们是不公平的.(您可以比较Ruby和PHP OR Rails以及CodeIgnitor或CakePHP等)

  11. 没有正确捕捉错误 - 如果它可能出错,有人,认为它会,并提前计划

  12. 未能优化查询 - 这绝对让我失望.Rails不会强迫你像PHP那样知道SQL(在ORM之前就像Doctrine一样),所以Rails应用程序往往是SLLLLOOOOWWW,除非开发人员确实知道你可以优化查询(连接说什么?)

  13. 使用太多的生成器 - 您应该能够在不使用生成器的情况下创建类(控制器,模型,测试,视图).

  14. 将Rails用于大型系统 - 是的,大多数人都不喜欢这样,但是如果你在Rails中构建你的前端和后端,请问Twitter和GitHub会发生什么......让我们说Twitter使用自定义Java后端现在...

  15. 有一个奇怪的线索 - 我很生气,因为人们实际上并不知道一个has_many关系是如何工作的(只有21914232个愚蠢的Rails开发者的例子之一)!

  16. 不评论代码

  17. 依靠Rails而不是SQL或DOM(javascript/html)来执行功能