分享 ruby off rails ..

Saito · 2011年12月02日 · 最后由 cao7113 回复于 2013年11月19日 · 4442 次阅读

欢迎大家参与到:鸭眼网的建设中来。体验 without rails 的开发模式中来。

https://github.com/yavaeye/yavaeye

鸭眼网读我

鸭眼网的架构由 slim + sinatra + mongoid 搭建起来。

这不是一个 geek(基佬) 网站:http://yavaeye.com

源力:https://github.com/yavaeye/yavaeye

伪基:https://github.com/yavaeye/yavaeye/wiki

鸭眼网不是一个 rails 站点,所以 rake test 不需要 load 5s+ 的环境.. 启动应用不需要 3s+.

你要相信,你会爱上它的。

P.S. 此版本并非线上的http://yavaeye.com的源码。

还在开发中的版本,线上 yavaeye 采用 padrino 为核心架构。

赞一个,UI 和功能很精简高效

@Saito sinatra 相比 rails 有什么优势呢?

之前尝试过 sinatra 制作复杂的网站,结果发现很难控制代码文件的条理性,考虑到以后的维护成本,就转回 rails 了

#2 楼 @rockliu rails 我自己是觉得有些设计很别扭。

一个是 route 跟 controller 分离,有好处。但是寻找真正代码的时候异常杯具.现在看来 rails 跟 django 都是这种设计。我是觉得不太喜欢。

还有原生的 ar 做到了 schema 跟 model 的分离。为什么很多 railser 发现 mongoid 之后如获至宝,这算是一种 ar 与 dm 之争,我是比较喜欢 dm 吧。

当然 rails 整个生态环境很大,很多 plugin 都是只针对 rails 跟 ar 的。这算是 sinatra 的劣势。

整个社区现在也越来越多的有 rack-based 的插件。而不是 rails 一锤子买卖。我觉得这个挺好的.希望以后会越来越多。

@Saito 恩,明白了。ruby off rails 是很好的尝试,多试试不同哲学思想主导的工具,会有不同的体会。赞一个。

我觉得楼主的想法不错,其实可以做的更加彻底 , 连 sinatra 都丢弃了,尝试从 rack 做个自己的方案出来

#6 楼 @aNdReW_Qx 好吧,这个真心没必要.sinatra 本身就是 rack 一层很薄的封装。已经很好使了..

route 和 controller 分离是很好的设计呀 找的时候可以 rake routes 一下,如果目录结构清晰的话直接就找到了... Rails 的 route 还可以 mount 其他 rack app,namespace 和 scope 更是 DRY 和模块化的利器

Rails3.2 引入了 journey(https://github.com/rails/journey )看样子是在做 route 的性能优化

#8 楼 @hooopo rails 的 mount 本身是 rack 上的 mount. sinatra 直接在 config.ru 里面也可以 mount 各种 rack app..

sinatra-contrib 是有 namespace 的 .写起来跟 rails 的 namespace 类似。

sinatra 某个 url 下的东西挂了。直接 ack 就到了.. rails 要先 rake routes | grep 一下,然后再去真正的 controller 里面。如果是默认的 url 的话其实还好。如果有定制,那就杯具了。

#9 楼 @Saito rails 的 mount 不是 rack 上的。。是 mount 到 Rails route 层的。rails 也是一个独立的 rack app,当然也可以像 sinatra 一样在 config.ru 里做 request -> rack -> route dispatch -> controller-action

#10 楼 @hooopo 好吧,各种 middleware..

顺带吐槽 Rails Command Line.

rake db:migrate RAILS_ENV=production

rails s -e production

rails c production;

#12 楼 @Saito 这不能怪 rails。。 optparser 和 irb 配合的时候就出现这个问题..

目测好久没更新了哇! 鸭眼网目前的组织不错。很简洁实用。比 padrino 好多了........

利用 rack/sinatra 开发应用,感觉简洁高效,如能将应用进行很好的模块化,这种架构很不错,在团队中不同的人负责一部分就好啦

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