Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
Kevin Wang
@knwang
VIP
NO. 3191 / 2012-08-09

42 Topics / 732 Replies
97 Followers
0 Following
3 Favorites
No GitHub.
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 如何一行获取嵌套 Hash 数据? at August 30, 2012

    #10 楼 @tumayun 在这个情况下也可以写成 def []

    写成 method_missing 的 NullObject 可以对任何对象扩展。性能的话如果是 Rails App 没所谓,因为 Rails 里面已经是遍地 method_missing; 即使大型的 Ruby app 也很少是 cpu 瓶颈的;如果真的是性能关键可以考虑别的语言写

  • 如何一行获取嵌套 Hash 数据? at August 30, 2012
    module NullableHash
      class NullObject
        def method_missing(*args)
          self
        end
    
        def nil?
          true
        end
      end
    
      def [](sym)
        super(sym) || NullObject.new
      end
    end
    
    data.extend(NullableHash)
    data[:sfsda][:bsdf][:csdf][:dsdf][:afsdfasdf].nil?
    => true
    
  • Is In-logic assignment Bad? at August 30, 2012

    你太敏感了 技术论坛说代码不说人

  • 什么时候需要增加测试 at August 30, 2012

    上面中心观点和 #12 楼 @fsword 相反 - 人肉成本永远不足。项目永远有下一个特性等待开发,永远有下一个项目 - 当然除非在官僚的大公司里面。

    用这样的标准来看是不是写测试的结论总会是倾向不写,再等等,而越到后来追写测试越困难,测试质量也越差。

    好的测试是代码设计的保障,后写测试就已经会失掉一半的意义了

  • 什么时候需要增加测试 at August 30, 2012

    http://blog.8thlight.com/uncle-bob/2012/01/11/Flipping-the-Bit.html

  • Is In-logic assignment Bad? at August 30, 2012

    是不是这样写 assignment 是个人喜好,但这个代码确实是 bug 的源泉

    粗略看下,这样的代码是说在 operation_name 为 nil 的时候就不去做 find_rule_operation_name; 但这个逻辑不应该在 find_rule_by_operation_name 的外面,否则在所有调用 find_by_operation_name 的时候都要这样防守一下。正确的应该在方法里面第一句就判断短路,这样原来代码里的条件就不需要了

    def find_rule_by_operation_name(operation_name) return unless operation_name ....... end

    在深想下,写这个代码的原因还是不好的 object abstraction.

    源代码的逻辑是,通过 deal 找 operation, 如果有 operation 再通过 operation 找 rule

    看上下文这个 method 应该是在一个类似 Rule 的 class 上面,也就是说有

    Rule.tao_deal_operation_name(tao_deal)

    这样写就很明显了,用 deal 来找 operation 跟 Rule 是不想关的,不应该在 Rule 上面。可以重构到 deal 上面

    还有,直接在 Rule class 上的方法名不需要重复 rule.. 根据上下文跟方法们重新命名重构后是这样的:

    class Rule
      def self.find_by_deal(tao_deal) 
        find_by_operation_name(tao_deal.operation)
      end
    
      def self.find_by_operation_name(operation_name)
        return unless operation_name
        ......
      end
    end
    
    
    
    
  • RubyConfChina 2012 预热帖 at August 29, 2012

    如果想开放给海外的 speaker 或者参加者 可以考虑加到

    http://rubythere.com

  • 你一般怎么写链式调用的代码 at August 27, 2012

    好吧 我来 troll 一下

    一个表达式里面有四个点是很强的 code smell 了。看你的代码,你是说 tag 为 nil 的,开头!的,空字串都不是有效的 tag。因为你用了 Ruby 里面比较基础的类 String(猜的)来表达 tag 所以就只能依赖 String 的操作来实现这个业务逻辑,就只能把多个方法穿起来

    更好的方法是对 tag 的更好封装,在一个 class 里面。然后把逻辑定义在 tag.valid? 里面。这样你的 post.tags 可以按 {|tag| tag.valid?} 来选出合理的 tags. 这样的方法很方便被复用,需要增加或改变什么样的 tag 是 valid 也很容易

  • 求书《Exceptional Ruby》(解决) at August 25, 2012

    #9 楼 @oran 如果你有翻译这类书的经验而且能有人举荐 我可以介绍你给 Avdi

  • 第一次用 Rails 开发网站 at August 25, 2012

    鼓掌!

  • 我们如何在项目使用 Spine.JS 的. at August 24, 2012

    实际做的话还有把/blog 后面的传过去的考虑等等。

    但是这个只能在 app 内部,如果要去 app 外面就要做 Proxy.. 昨天已经开始写一个了,但觉得 edge case 太多,比如要 forward 用户的 cookie 什么的,不太值。

    如果你们自己 host 的 server, 可以考虑直接在前面放一个 Nginx 做 reverse proxy 做两个 upstreams, 一个指向你们的 app 一个指向 posterous blog..

    http://www.cyberciti.biz/tips/using-nginx-as-reverse-proxy.html

  • 我们如何在项目使用 Spine.JS 的. at August 24, 2012

    #25 楼 @yedingding

    比如说下面的代码可以让 /blog 去按着 / 的 route 走,但用户在浏览器地址栏上看到的还是 /blog

    class UrlRewriter
      def initialize(app)
        @app = app
      end
    
      def call(env)
        env["PATH_INFO"] = "/" if env["PATH_INFO"] == '/blog'
        @app.call(env)
      end
    end
    
    module YourApp
      class Application < Rails::Application
    
        ............
    
        config.middleware.insert_before Rack::Lock, UrlRewriter
      end
    end
    
    ```ruby
    
  • 求书《Exceptional Ruby》(解决) at August 24, 2012

    #4 楼 @suupic 有电子版的

    https://shiprise.dpdcart.com/

  • 求书《Exceptional Ruby》(解决) at August 24, 2012

    #3 楼 @oran 如果能讲读过后帮在博客上写篇评论 你几乎可以用这个办法要到所有个人出版的电子书。不过一定要真写的

  • Rails 3 Rendering XML at August 24, 2012

    http://edgeapi.rubyonrails.org/classes/ActiveModel/Serializers/Xml.html

    可以自己选择 xml 里面包括什么

  • 求书《Exceptional Ruby》(解决) at August 24, 2012

    自己买吧,按它给你提供的价值 15 美刀不贵。如果真的有困难建议你直接给 Avdi 发封邮件说下问他可不可以让他赠送你一本,他很好的人应该没问题。不要这样盗版传来传去

  • 我们如何在项目使用 Spine.JS 的. at August 23, 2012

    #23 楼 @yedingding 不是 302, URL rewrite 要做成 200, 用户看到的 url 不变,通过改 env 来内部换成其他的 path. 但这个要前后的 url 在同一个 server 上。

    真要做这个 posterous blog 要在前端放个 proxy。我正好也正在研究这个

  • 网上有哪些付费的学习资源,各位大神推荐一下 at August 23, 2012

    #29 楼 @happypeter

    We are teaching a current batch.. registration for the next batch is not yet open.

  • 我们如何在项目使用 Spine.JS 的. at August 22, 2012

    #20 楼 @yedingding 应该可以用 url rewrite 吧。不知道你们用什么 server.. 也可以用 rack middleware 试试

  • 网上有哪些付费的学习资源,各位大神推荐一下 at August 22, 2012

    #25 楼 @happypeter

    check again :)

  • 我们如何在项目使用 Spine.JS 的. at August 22, 2012

    看你们用的是 Posterous 做的 blog, 能不能分享下从 SEO 角度上有什么考虑

  • 我们如何在项目使用 Spine.JS 的. at August 21, 2012

    帮你们投了一票。

    同学们都要支持社区的创业者啊,这几位同学平时贡献很多要支持他们。起步时候的 startup 作重要的就是宣传和推广。去 Hacker News http://news.ycombinator.com/ 注册个帐号很容易,而且你如果想成为好的程序员看 Hacker News 要做每日必修课。

  • 我们如何在项目使用 Spine.JS 的. at August 21, 2012

    感觉没有 data binding 太痛苦了,Ember 感觉太肿大了.. 最近在用 Augular.js。

  • 网上有哪些付费的学习资源,各位大神推荐一下 at August 20, 2012

    #12 楼 @xhj6

    建议你尽快找一个水准不错的团队。自己独立学习很快就会碰天花板或者开始时铺的太宽,比如你看 git, rspec, backbone 都不错,其实和它们相似的技术还有太多,而且会不断有新的出现。建议先在一个团队做一两个项目,学习一个成熟团队的开发流程和基础技术并对 web 的整个生态圈有所了解,再自己补洞。要自己独立的把这些东西拼积木似的组合在一起不容易,而且很浪费你自己的时间。

  • 网上有哪些付费的学习资源,各位大神推荐一下 at August 19, 2012

    中文 railscast 有很多不错的 screencast. http://railscasts-china.com/

    网上有很多不错的 tutorial, 比如说很多人用来起步的Rails Tutorial, 可以免费的在网上看,也可以付费下载 screencasts 看起来会更舒服些。

    想要学更深点的, Jumpstart Labs 有很多资料,但需要慢慢来。

    如果不介意多花些钱,我在 Railstutors上面教课,一个月可以带你系统的学习 Rails 到能写小型的应用。如果你舍得砸锅卖铁, Bloc上面有 8 周 1 对 1 的课程,但是要 3500 刀

  • 网上有哪些付费的学习资源,各位大神推荐一下 at August 19, 2012

    具体想学什么还有大概的预算在多少左右,我可以帮你推荐几个

  • 我们的产品上线啦 -- pragmatic.ly at August 15, 2012

    #169 楼 @yedingding #179 楼 @poshboytl

    恭喜上线!产品做的很好,界面很友好,上手也很快。帮你们看了看,可能有几个地方需要改动下:

    https://skitch.com/e-knwang/ect74/pragmatic.ly-fast-and-easy-to-use-project-management-tool-and-real-time-collaboration should be "learn how pramatic.ly can/will help you"

    https://skitch.com/e-knwang/ect9h/pragmatic.ly-fast-and-easy-to-use-project-management-tool-and-real-time-collaboration 为什么 closed 的也会在 backlog 里面?

    https://skitch.com/e-knwang/ec1br/pragmatic.ly-fast-and-easy-to-use-project-management-tool-and-real-time-collaboration 这个 tip 好像不应该在 search result 里面?

    https://skitch.com/e-knwang/ec1b6/pragmatic.ly-fast-and-easy-to-use-project-management-tool-and-real-time-collaboration after confirming your account

    https://skitch.com/e-knwang/ec1nw/pragmatic.ly-fast-and-easy-to-use-project-management-tool-and-real-time-collaboration 不是很清楚 0/2 是什么意思

    加油!

  • App.net 另一种模式的互联网 at August 14, 2012

    这是一个让人激动的计划。如果一旦能够成功,会颠覆整个互联网的格局。苹果和 google 提供了移动平台,培育了用户的付费习惯,如果互联网和 social 能有相似的平台和市场是会非常的美妙,而这个平台的成功会让程序员手握前所未有的力量。

    http://daltoncaldwell.com/an-audacious-proposal

  • 连接 ActiveRecord 和 Mongoid at August 13, 2012

    #2 楼 @metal 没用过这个。

  • Prev
  • 1
  • 2
  • …
  • 20
  • 21
  • 22
  • 23
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English