• 看业务情况了吧,几个月前还写了个 rails 程序,其中有个 model 有个方法,大概有 200 行。。。囧。。。 不过那时 OO 还不熟悉,一切都谨小慎微,特别菜,现在来看重构下,加个两个 class,拆几个方法,大概最多的就是 30 行的样子。 再长点确实不太好看了。。。 写 gem 的话,可以再细化下,不然要被 BS 了吧~

  • #1 楼 @tualatrix 顶! 就说 rspec 的 api 设计,真是叹为观止。没有一个艺术天分太里面,搞不出来啊~ 当然咯,语言特性是必须非常精通才行。 还有很重要一点,就是要耐得住性子,浮躁的话是做不出精品的,你用可以,给你的公司用可以,但是开源的话没人会和你合作的。以前看 gem 源码,老感叹这些源码是用来干嘛的,这么奇怪,后来能看明白了,才知道,原来这就是我们说的地基,原来那些奇葩的上层用法,下面还隐藏着如此复杂精巧的组件。

  • 请教一个基础问题 at 2012年02月11日

    rails g model/migration/integrate-test,这些偶尔还会用的,scaffold当初不太熟悉的时候,经常用。

  • 吐槽一下很烦的毛病 at 2012年02月10日

    从小浑身爱出汗。。。自从 3 年前开始跑步之后,倒是身上汗不是特别多了,但是手和脚还是非常汗。。。 好处是别人的键盘打油,我的键盘都好新。。。当然经常清洁咯

  • 这有什么好笑的

  • user model 吗?

  • 上面有人说了,用 session 或 cookies 来处理:

    session[:hash] = {:name => 'ruby', :type => 'lang'} 或者 cookies.signed[:hash] = {...}

    这样你 redirect 之后,就可以在下一个 controller 中使用 session[:hash] 或 cookies.signed[:hash] 把那个 hash 调出来。

    原理就是 rails 会把那个 hash 用 marshal 做个序列化和签名,放到 cookie 里面。所以其实你将一个 model 的 obj 塞到里面都是可以的,我用过的一个地方就是 new resource 验证失败后,把包含 error 的 model obj 塞到 cookie 里,还是跳转 resource/new 页面,这样就避免了 scaffold 那种验证失败后留在/resources/页面的情况。

  • ubuntu 还是超好用的,尤其是 super+ 数字

  • openresty, nginx 直接运行 lua,没用过,但觉得很新鲜,那作者说 python 太慢了,要不也会考虑支持,那 ruby 就。。。 要不你就用 rack 吧,rails 就是 rack 中间件一层套一层来处理 request 的

  • 刚刚跑完步回来! at 2012年02月04日

    #1 楼 @saberma 好体魄,现在我隔天俯卧撑 20*4,中间有休息 1-2 分钟的,大哥你这 3 口气不会是说撑在那里休息吧,哈哈

    强烈推荐大家多跑步,我是每 2 天跑一次,跑步就是脑子休息,干活就来劲了精神好。 我一般都 5km,每周一般来一次 12km 或 18km

  • 半靠谱推荐。。。https://github.com/raggi/async_sinatra 好处是轻量,做单纯的 api 后台杠杠嘀(没见过大世面不靠谱评价) 缺点是 server 只能用 thin,没有 rails 那各种爽,各种第三方不如 rails 团队那么稳定

  • 询问 rails 的性能 at 2012年02月02日

    几十万的 IP 你就忙着收广告费吧。。。多添加几台服务器大不了。。。Rails 是可以改造成非阻塞的,所以你不用担心哦,等你上市了再换 C++ 还来得及。

  • 盛大云的群里有几个家伙推荐阿里云 oss,客服也说了,可以盛大云主机+oss 嘛,便宜~

  • 正在折腾超微,你不要 ip 不能 ssh 啊

  • NodeJS 适合用来做什么? at 2012年01月29日

    #7 楼 @ashchan 受教了,问个 node 的问题。请问 node 现在对于 mysql 和 postgresql 的支持如何?尤其关心 pg~EM 的 pg 支持一直感觉不是很给力,和 activerecord 的结合更是感觉有上顿没下顿,ruby 社区貌似对 em 也不是很关心。觉得这类场景还是用 node 比较主流点,希望能帮我解答下~

  • NodeJS 适合用来做什么? at 2012年01月29日

    如果一个应用: 1.前端面对大量并发 2.后台还要“缓慢的”和“复杂的”SQL 查询,或者还要连接到外网服务比如 Fackbook API,总之就是 IO 阻塞

    这种场景你用 sinatra 就不行,假设只有一个 sinatra instance,那么前一个 request 的 SQL 查询没处理完并反馈给用户页面,后一个 request sinatra 就处理不了,这样在后端数据库能接受 100 个并发查询的时候,你前端一个 web server 只能并发一个查询,那么后端的数据库并发能力就被浪费了,前端的 sinatra web server 就成了瓶颈,而不是数据库了!这时你用 node 就非常好,因为 node 就可以一股脑把请求扔到数据库,前端再也不是瓶颈。

    你在网上应该会看到大量的这种评测: 假设每次数据库查询用时 1 秒 ab -i 100 -n 1000 => 1100 秒 rails 或 sinatra 场景 ab -i 100 -n 1000 => 11 秒 node 场景(如果 eventmachine 估计就是 12 秒吧)

    一般这种场景主要是 api,当然还是新浪微博那种最典型。我不知道一个下限,但如果你只是一个小博客,node 完全没意义,用 rails 多简单啊。

    上面说了那么多,其实我 node 一点也没搞过(没实际项目只能算 0)。不过 ruby 的 eventmachine 我搞过,速度非常快,原理和 node 一模一样,如果你不想学 node 的话,你可以学 em。EM 的 api 有点别扭,你可以参考 https://github.com/igrigorik/async-rails ,这是个 fiber + em 的大并发实现,跟着他的模式写,应该比 node 舒服多了

    #2 楼 @fantasyday

  • 贴个浏览器中的页面提示上来吧! 另外你不会还用 mysql 吧,现在 adapter 好像都用 mysql2 了

    *貌似没什么错误啊,连接正常 sqlite3 也装了。。。。 * 你到底用的 sqlite3 还是 mysql 啊老兄。。。

  • #3 楼 @lgn21st 学习了,原来可以这么来查

    #4 楼 @hisea 原先一直是认为反向查找,看过的书中都没介绍一行之内全部 include 掉的情况~

  • 1.9.2-p290 :001 > module A 1.9.2-p290 :002?> def foo 1.9.2-p290 :003?> puts "foo-A" 1.9.2-p290 :004?> end 1.9.2-p290 :005?> end => nil 1.9.2-p290 :006 > module B 1.9.2-p290 :007?> def foo 1.9.2-p290 :008?> puts "foo-B" 1.9.2-p290 :009?> end 1.9.2-p290 :010?> end => nil 1.9.2-p290 :011 > class C 1.9.2-p290 :012?> include A, B 1.9.2-p290 :013?> end => C 1.9.2-p290 :014 > C.new.foo foo-A => nil 1.9.2-p290 :015 > class D 1.9.2-p290 :016?> include A 1.9.2-p290 :017?> include B 1.9.2-p290 :018?> end => D 1.9.2-p290 :019 > D.new.foo foo-B => nil

    #1 楼 @lgn21st 当时就是这样。。。看 rails 的代码学到不少东西啊

  • 听起来是像要 eval 才行,不过不太了解 rails 的机制,具体怎么 eval 你可以试试看

  • 我做的项目,js 都不复杂,用不用 coffee 发现都一样哈。复杂的前端写起 coffee 来应该很给力,语法挺像 ruby,喜欢!

  • 大三下学期想实习 at 2012年01月16日

    什么地方上学家在哪里,介绍下吧

  • #2 楼 @xdite Reddit 算法,确实很棒! 但是我这个需求偏偏跟系统时间相关,要是算类型,应该和 hackernews 的一类。。。

  • #3 楼 @metal 我看过一本数据库的书中介绍过 sql 的 with 关键字,好像 mysql 不支持,postgresql 可以,可以无限 join 当前表,这样一层一层树形回复揪出来。不过我没有试过,觉得这种需求比较少,因为显示效果不友好。一般都是像 discuz 那种,只显示回复的哪一条,引用那一条就行了,这样的话只要 self join 一次就好了。

  • 关系型数据库麻烦点,听说 mongodb 好搞点

  • 好像还有个 cycle helper 可以用,自己日一下