嗯嗯 楼主说的对
#5 楼 @gaicitadie 拦路虎往往并不是高级特性,都是一些很基本的问题,你可以翻翻新手问题里的帖子,看看哪些问题高级?
真正开发也是一样,实际的核心代码花费不了多少时间,浪费时间的是 debug,是对细节的调整,ruby 不熟悉就会在小问题上浪费大量时间,甚至没办法继续编码。
#2 楼 @gaicitadie 同意你的关于底层和应用层的观点,写 ruby 不需要懂 c,即使 ruby 底层是 c 实现的。但你的这些类比不成立。ruby 和 rails 之间的关系不是你说的底层和应用层的关系。
找几个有 web 开发经验的人,只给他们 rails 文档,让他开发几个应用,看会出现什么问题就知道学 rails 需不需要会 ruby 了。
这是超纲内容啊!
这还用明确说明么。。鱼在网里才能被你捕到啊!
#2 楼 @dishonest 不能联网还没 U 盘么?
#7 楼 @help5305fff 是吗是吗
Rake is for building, not for scripting...
turbolinks 看起来不错
好像还可以 cowthink
以前的相关话题很有用的。
<%= link_to "<span>back</span>".html_safe, posts_path %>
#10 楼 @luikore 是啊 比如这篇里的例子在不同 Ruby 版本或实现上就会有差别:http://ruby-china.org/topics/5311
这个很好理解嘛,看下面的例子就明白了:
[28] pry(main)> module Hello
[28] pry(main)* def hello
[28] pry(main)* end
[28] pry(main)* end
=> nil
[32] pry(main)> class World
[32] pry(main)* include Hello
[32] pry(main)* private :hello
[32] pry(main)* end
=> World
[33] pry(main)> World.new.hello
NoMethodError: private method `hello' called for #<World:0x00000001d10050>
from (pry):58:in `__pry__'
[34] pry(main)>
对于 Kernel 这个 module 来说 puts 是 public 的,但是对于 Object 这个对象来说,puts 是私有方法。
在方法查找的时候先找到 Object#puts,然后判断为私有,最后抛异常。
我猜测 Ruby 内部应该大概这么实现的:
class Object
include Kernel
private *Kernel.methods
end
这文章很一般。。而且标题就搞错了。transfer 居然译成了传输
常见误区
count(1)和count(primary_key) 优于 count(*)
很多人为了统计记录条数,就使用 count(1) 和 count(primary_key) 而不是 count(*) ,他们认为这样性能更好,其实这是一个误区。对于有些场景,这样做可能性能会更差,应为数据库对 count(*) 计数操作做了一些特别的优化。
count(column) 和 count(*) 是一样的
这个误区甚至在很多的资深工程师或者是 DBA 中都普遍存在,很多人都会认为这是理所当然的。实际上,count(column) 和 count(*) 是一个完全不一样的操作,所代表的意义也完全不一样。
count(column) 是表示结果集中有多少个column字段不为空的记录
count(*) 是表示整个结果集有多少条记录
ref:http://isky000.com/database/mysql-performance-tuning-sql 我记得《高性能 Mysql》上面也是这么说的。