• login 是什么东东

  • 你如果用过腾讯的浏览器或者用嗖嗖搜过资料,或者在 QQ 上聊过相关话题,广告匹配在技术上都是可行的。

  • 如何避免状态冲突? at 2014年02月14日

    做成真正实时不仅需要较多工作量,而且在这个案例可能也没有必要。

    我觉得 Long polling by Javascript 应该是比较合适的方案。

    Long polling 很简单,就是用 setInterval 来不断地请求服务器。

    setInterval(callServerOnStock(), 1000);
    

    后台有更新就回一个信息,比如某商品已经被卖掉。然后前端根据这个信息把那个商品描黑。虽然不能 100% 避免冲突,但应该足够了,而且后台还是有另一层保护的。

    你可以只在这个页面或 View 中设置 long polling。

    Long polling 的最大弊端就是服务器负荷大,因为请求多。但在你的情况中应该完全不成问题,毕竟管理系统只有很少人在同时使用的,而且只在特定的页面。

  • 其实不是很慢,而是 Heroku 的免费 Dyno 一个小时没收到请求就会睡眠。过了这个时间的请求就需要重新唤醒 Dyno, 需要较长的时间,所以你会觉得很慢。访问的人多了就不会。

  • @zyjloveher 不敢当,一点看法而已。

  • @zyjloveher 外部的数据库顾名思义肯定会有一个外部的 App 来操作它,不管是 Rails, PHP 还是其他。然后你这边又有一个 Rails app 来操作数据库。那谁来对数据负责呢?谁来保证一致性呢?用 JSON 其实就是 API 啦,这边 Rails 发一个请求到外部的 App, 然后外部 App 负责回复和操作数据。请求可以通过内部端口比如 localhost:3001, 并阻止外来请求。

  • 外部数据库问题多多,关联太紧密。用 JSON 交换信息靠谱很多。

  • 没有遇到过这种问题,都是分行贴上去的。不如试试老版本吧。

  • 你都知便宜买不到好衣服,其实人都一样。

  • @levi0214 , 挺有意思的文章。不过我是不会用我的茶杯上网的:)

  • 风格变明快了 at 2014年02月12日

    这种导航的设计给人带来固定导航的期待,但实际上是滚动的,感觉有点不太舒服。

    导航链接和 breadcrumb 粘在一起,并且内容近似,感觉重复。

  • 楼主好几次把 Javascript 写成了 Java, 完全不是一回事哦:)

  • 闭包如何访问外部变量 at 2014年02月10日

    node 就用 this, 浏览器既可以用 this 也可以用 window

  • @nagae_memooff , 如果你的变量最后要输出为其他 method 的参数,render_result result, 设定默认值是好的做法,还可以节约条件。如果有好几个变量的话,更需要默认值了。你在 3 楼的表述不太清楚,直接拿出需求和原来的代码看能不能改进吧。

  • @coderek, 指导不敢当:)Service 放哪里都可以的。如果是为 controller 服务的,我一般放在 app/services/里面。如果关系不大就放在/lib 里面。

    这个 fetching 的逻辑我觉得都可以直接放在 controller 里,彻底和 model 脱离。

    # FeedsController
    def create
      # ...
      if @feed.save
        FeedFetchingService.process(feed)
      end
    end
    
  • 还有 Chrome 里面的 Postman

  • 我觉得做得挺好。界面很简洁,功能大致齐全。

    粗粗浏览了部分代码,略发表一点点看法:

    前端用纯粹 Backbone,代码简洁,组织得挺好。查看了一下,没有任何僵尸,所以不用种向日葵了...跑题...

    Feed model 有点累赘,fetch feed 的逻辑不应出现在 model 中,单独用一个服务会比较好。

    def fetch_feed
      FeedFetchService.process(self)
    end
    

    现在更新 feed 的逻辑基于每个单独的请求。如果用了上述的服务,会方便将来直接从后台更新 feed。

    Feed model 中使用 helper 并出现 render 逻辑不妥。

    其他没细看,感觉总体挺不错的。

  • 看你的第二步和第三步,你没有办法既用到 Rails 的功能,又脱离 Rails。

    其实直接用 Asset Pipeline 没什么不好,版本管理也有,编译也有,环境变量也有,你还需要别的什么?

    想要完全分离也不是不可以。完全用 Bower, grunt 等做一个静态网站就可以了,同时再用 Rails 做一个纯 api 服务器。然后静态网站直接呼叫 api。

  • 对很多应用来说我不觉得后台很有必要。很多管理工作可以直接在网站上做。增加、删除、修改,这些都可以。服务器端设置好各种权限的权力,然后不同的链接/按钮就可以了。甚至可以都全部输出然后分别隐藏,这样 cache 也方便。

  • Ruby 的上手教程更新了 at 2014年01月25日

    @hxygsh 我没有否定你的精神,我只是说你的水平还有待提高。其实教基础的东西反而需要比较高的水平,因为你不能教错误的东西。我浏览了一下你的教程就发现了三四个语法错误,中文引号都不提了。记学习笔记是好事,但可以等成熟一些再分享出来。

  • 貌似很强大。不过不理解为什么要用 singleton 呢?API 不太友好的样子。用 class method 或者 instance 感觉会常见些。

  • 一段 HTMLBars 的 slide at 2014年01月25日

    没用过 Ember, 不过第一个例子的语法不是可以在 Handlebars 里面直接用吗?

  • Ruby 的上手教程更新了 at 2014年01月24日

    楼主用了很多心。但还是不赞成你写教程,觉得你水平不够,而且现成的教程、文档已经够丰富的了,生命中宝贵的时间可以做更多有意义的事情。更不赞成用中文写教程,因为代码中其实是英文,要对应起来好像要学两种语言,而且中文没法准确对应。更更不赞成你用“经典”两个字。

  • 文言文就看中文,其他的要看英文。翻译的不能看,编著的更不能看。

  • It's not about closure. Of course you can access global variables within a function.

    The problem is, if you load javascript in head by default, when the script executes $back = $("#back_to_index"), such dom elements is not loaded yet, so $back is null.

    Putting it inside jquery ready will solve this issue because at that time the element does exist.

  • yield 肿么翻译 at 2014年01月23日

    “暂停”显然不合理。

  • yield 肿么翻译 at 2014年01月23日

    可以把它理解为收益,代表增加的部分,就是 block 带来的部分。yield i 就是把 i 放入增加的部分里面来计算。在 Rails 里面没什么特别意思,是 Ruby 的。

  • 你选择 Angular 还是 Ember? at 2014年01月23日

    @small_fish__ , this one https://github.com/marionettejs/backbone.wreqr, Extracted from Marionette to decouple modules. The pattern App.request, App.vent is very useful in my opinon. Allow me to reply in English as Pinyin is buggy on Opera in Ubuntu.

  • 你选择 Angular 还是 Ember? at 2014年01月23日

    @lgn21st, 同感,那本书我也看过,很不错。本质是把 bbclonemail 加深理解。Brian 的视频也是很好的。