Sinatra 用 Sinatra 构建网站,你会怀念 Rails 的什么特性?

clc3123 · 2011年12月01日 · 最后由 hooopo 回复于 2013年01月09日 · 8606 次阅读

比如用 sinatra,重写一个 ruby-china,或者个人 blog,或者 DiscuzX。 你会怀念哪些 Rails 功能? 如果是简单的小站,比如说个人 blog,sinatra 绰绰有余。 ORM,用 sequal,activerecord 都行。 assets pipeline,整合到 sinatra 问题也不大。 view 的话,除了缺少好用的 helpers,用 haml 写相对来说也不会麻烦多少。

大家有经验吗?交流一下吧,好多东西我还没考虑到。

这主题不错,不过我觉得,sinatra 写应用,一般都很轻,很多连 db 都不用,认证系统用的第三方认证,在 heroku 上跑了很多这种应用 , 似乎用来写 ruby-china 这样的站点不合适

其实还好,以前来讲主要还是第三方 gem 不够充足。 但是,现在好多了,越来越多的 gem 都从支持只支持 rails 到 rack app 都支持。 Padrino 其实蛮好,如果楼主想用 sinatra 做东西,建议看看...

最怀念 约定优于配置 , 哈哈

@wxinfeng 当使用一有数据库时,还是有点头痛

#2 楼 @poshboytl Padrino 看起来还行。

我关心安全相关特性,比如对 XSS 和 csrf 攻击的防护,这个需要有专业的框架层支持

你可能会怀念 rails 的某些限制,比如目录结构,primary_key 只可以是 id 等等,还有 code generation

@nouse primary_key 这不一定哦

#6 楼 @fsword 需要个毛,自己在调度器上包一层不就好了,等框架。你二不二。

ActiveSupport 里面的东西

如果你需要更多的支持,用 http://www.padrinorb.com/ 基於 sinatra, 加了无数的好东西。

#9 楼 @soloara 在 rails3 之前,我是不知道 CSRF 攻击的,但是使用框架的就可以天生免疫,rails 这种全栈式框架的好处就是让你不用成为所有领域的专家,当然也不是没有缺点,我只是说清楚以便别人选择

#6 楼 @fsword 谢谢,我也认识到这点了,确实隐藏太深容易让人忽略啊

#12 楼 @fsword CSRF 发生的多吗?虽然没遇到过,但是觉得还是小心点心里舒服。Rails 再强大,也不能覆盖全部的阴暗角落,比如 Oauth2,标准里也提到了 CSRF,不过 Omniauth-OAuth 这样的 gem,并不太关心这个,而且大多数开发者也不关心,这点上,就算 rails 关心也覆盖不了,所以还是自己小心为上

#12 楼 @fsword 也不能免疫的。。如果不理解 csrf 原理,有些地方还是会出问题。

#14 楼 @clc3123 一个菜鸟 hacker 都知道怎么去利用 csrf 漏洞。而 web 开发者还停留在没听说过的层面。。

  • 约定优于配置
  • scurity by default
  • generator

#15 楼 @hooopo 你指的是手写的 ajax 调用?

#18 楼 @fsword JSONP hijacking

PS. 其实理论上 HTML Autoescape 也不能完全避免 xss 但 security by default 这样的原则可以很大程度减少被攻击的风险。

#19 楼 @hooopo 恩,这些方面确实都是问题,也许应该这样——不懂底层知识就只允许做传统的 rails form,由框架帮你更“专业”,如果想做的更灵活,那学习就不能省略了

#20 楼 @fsword 所以吧 用 rails 能让一个初学者和一个有经验的开发者写出来的应用在安全性维护性上面相差不大。但是用 sinatra 就......

需要 登录 后方可回复, 如果你还没有账号请 注册新账号