赞一下自由的精神、丰富的知识和折腾的爱好。
一行党大战伸手党
想太多了。underscore 最简单,但没有什么做不到的,只要你会写 Javascript。
服务器动力小的话,asset 编译肯定要放在本地的。除了这个之外,别的一点问题都没有。
楼主你借了图书馆那么多书,该还啦。
用 Angular,你就是 Angular 开发者。用别的,你是 Javascript 开发者。
“决定完全抛弃和前端有关的一切 gem”还是多了解一些知识再高谈意见吧,难道写这些 gem 和用它们的人都是傻子。
Javascript & Ruby
Rails.cache 本身就有 fetch 的方法,可以读取现有缓存,如果不存在,取得后再写入。
def address
# 假设type_id unique
Rails.cache.fetch("itemlog:#{type_id}") do
http_get("http://x.com/get_address_by_item_type?id=#{type_id}")
end
end
另外有两点需要考虑的:
这个真的有必要吗?而且还要上小版本号?每个版本号不单只是路由,还有相应的代码、测试,成本非常高。我觉得你的 API 如果不是预期有大量重要的外部用户,不需要弄得那么麻烦。比较实际一点的是先不用版本号,等真正成熟了,外部依赖很多,而且需要大改的时候再上 V2 也不迟。
@azhao "代码统计多好多行" => 这个理由太强了 :plus1:
方案一吧,pattern 太明显了。
@MrPasserby 这个不是 talk, 你写一个 feature 之前一点计划都没有还写什么。你倒是说说你的计划,跟算法有什么关系?
@MrPasserby 这个完全没有任何难度啊,也看不出和算法有任何关系。有没有货都是后端输出的,跟前端有什么关系。前端根据 sku 数据,没货的在界面加个 disable 不就行了。
acts_as_taggable_on. done. go home.
没有人用刀的?
非前辈。不过这种效果都是各种东西组合起来的,看 html 看不出全部内容(也不必要看)。具体实施取决于技术栈,各种技术栈都可以实现,方法各不相同。与其琢磨别人怎么做的,不如自己多费点脑筋根据现有的技术栈想想自己怎么实现。
这个是好文章,要顶。
@darkbaby123 你说得太精辟了。
合适的工具干合适的事,合适的团队用合适的工具。这些纠结都是浮云。
@rainchen 没错,调用私有方法的行为就应该报错。
@diehard 你是一个人,怎么会继承 Company, Code。另外除了 attr_accessible, 没有一个 macro 是可以直接拿来用的。就算是 ActiveRecord STI,STI 本身也是有气味的,需要慎用,即使可以用,这些牵涉到表单的通用设 has_many, has_attached_file 等等放在子类里面都是很有问题的。直接用文字表达不行吗,写这种代码真心难看。
100W 的数据就可能有 GC 的干扰了,牵涉到 symbol 的回收问题。
这些性能的差别我觉得对实际应用来说基本没有什么影响。相对于速度,我认为使用 symbol 的时候更多地是表达了一种正式性,即这个 key 不是随意可以更改的。
至于是 String 还是 Symbol,在 Rails 里面大多数情况下你都不用担心,很多都已经被 ActiveSupport::HashWithIndifferentAccess 处理过了。http://api.rubyonrails.org/classes/ActiveSupport/HashWithIndifferentAccess.html
至于写法,更不是问题,{:xx => 1} 与 {xx: 1} 没什么好纠结的,肯定是第二种,这个既少打几个键,也是社区通用的偏好。
@lawrence 不能说类似,只能说都可以归类于前端 mv*类框架。做出的东西效果可以基本相同,但实现方法差别很大。