类实例变量难道不是给类实例用的吗 如果是继承的话,是把这个变量下放到类实例级别,来实现子类的变量互相不共享。
我只搜到这样的用法,不知道你这边的用途是什么。
#8 楼 @caiqinghua 问题是先写测试代码我根本不知道怎么写啊。 实际开发完成前根本不知道最后接口、架构会设计成什么样。 想请教下你平时是怎么提前写测试代码的呢?
#4 楼 @caiqinghua
我现在的确是先写测试用例啊。只是具体的代码会后填。
而且实际开发的时候经常会为怎么设计结构而烦恼,很难说可以一拍脑门就能写出很好的测试来。
所以我都是先写一堆 it 'xxxx yyy zzz'
,等代码写完了再回来根据测试用例和设计完的接口来写测试代码。
当然也可能是我水平太菜做不到先写测试……
TDD 是个很好的概念,但是同样也带来了问题。 比如说 TDD 本身推荐的「写 - 红-写 - 绿-重构」模型,实际开发过程中会严重影响思考效率。 反正我是宁愿先写一堆 pending usecase,然后开发完再填测试代码。
https://devdocs.io/ 你会喜欢的。(左下角可选择开闭
并没有什么奇怪的吧。之前刚刚面试过 Apple 的 RoR 职位……
为什么要这么写…… User.where() 返回的是 Relation 吧……?
全字段搜索在数据量大的时候会死慢死慢。
不想自己搞服务器
搞吧。成本低而且配置简单……
#8 楼 @lance_zyb 算法题就要当成算法题来做,然后就发现不难了 wwww 代码如果觉得有用的话就拿走好了,当 public domain 授权了。 当然有轮子用的话直接用轮子也可以。
https://gist.github.com/msg7086/1822abdc063aee116f19
$ rspec main_spec.rb
Schedule
generates future events by month
generates future events by week
generates future events by workday
generates future events by day
ScheduleService
日程【2015-07-08 16:00:00,2015-07-08 17:00:00,不重复】与日程【2015-07-06 16:00:00,2015-07-06 16:30:00,每天重复,没有截止日期】冲突
日程【2015-07-08 16:00:00,2015-07-08 17:00:00,每工作日重复,没有截止日期】与日程【2015-07-11 16:00:00,2015-07-11 17:00:00,每周重复,没有截止日期】 不冲突
日程【2015-05-31 16:00:00,2015-05-31 17:00:00,每月重复,截止2015-07-15】与日程【2015-06-10 16:00:00,2015-06-10 17:00:00,每天重复,没有截止日期】不冲突
Finished in 0.131 seconds (files took 0.3343 seconds to load)
7 examples, 0 failures
现在是计算到 10 年后,我觉得差不多应该够了……
你可以把两个日程想象成两个等差数列,然后对等差数列做 merge sort。 写一个伪代码。
def conflicts? s1, s2
# if both schedule exists?
while !s1.nil? && !s2.nil?
# check if they conflicts
return true if s1.date conflicts? s2.date
# find the next date to compare
if s1.date < s2.date
s1 = s1.next_schedule
else
s2 = s2.next_schedule
end
end
false
end
class Schedule
# return: nil if no next, else a schedule start from next date
def next_schedule
return nil if repeat == 0
next_s = this.dup
case repeat
when DAY then next_s.date.add-1-day
when WDAY then next_s.date.travel-to-next-wday
when WEEK then next_s.date.add-7-days
when MONTH then next_s.date.travel-to-next-month
end
return nil if next_s.date > finish_date
return nil if next_s.date.too_late?
next_s
end
end
应该不算太复杂吧。 具体实现方法(具体使用的对象/是否使用迭代器技术等等)请根据你自己的实际要求来写。 不过核心方法也就这么二三十行了。 而且也不需要开始结束日期在同一天。 而且也可以扩展到无数个日程互相检查冲突的情况。(用个小顶堆来实现应该就好)
竟然有人直接承包了啊 →_→
强势围观,前排广告位招租(死
建议先把 task 提出来。如果功能简单的话,说不定大家一人一个 PR 就搞定了呢。
先查询再更新,主要是因为 model 里的 validation,需要保证数据验证合法后再写入。 除非你是特别需要效率且不需要验证数据合法性,否则还是先读再写好。 另外查 development.log 就可以看到不同代码转换成 SQL 后的结果。 可以自己开 pry 做实验。
同一直 win 下开发 linux 下运行。
国内为何不支持自定义域名。备案。
说个我自己的事情。 老板招人的时候要 PHP 程序员,然后我就去了,然后就被招进去了,然后他们的开发项目全是 ruby on rails。 楼主你怎么看。
推荐配置 1-2G 内存,能正常使用的 1-2 核。 最低配置 512 内存单核。
转成 hash 可以用 Hash[l1.map(&:values).map(&:to_a)]
然而并不好看。
至于你这需求,我觉得改变一下数据结构效率会更高。
匹配:k 的话,总还是要用到 Hash 来去重的。
10G 并不大,直接 mysql < x.sql
导入即可。
location ......{
try_files $uri /pictures/resize?file=$uri;
}
#3 楼 @nowherekai 因为 rake 可以方便调用 ActiveRecord 这和没说一样。谁调用 ActiveRecord 不方便来着? rake 的目的是替代 make,在有依赖关系的脚本里顺序处理。