我记得很早以前,这段代码不是用 class_eval
实现的
当时我用 CTags 还能定位过去,
现在 CTags 根本定位不过去。
#10 楼 @fresh_fish 我认为,当一个程序员只熟悉一种语言的或者框架的时候,才会有膜拜论的现象,随着时间的推移,当其熟悉多余语言和框架以后,膜拜论不攻自破。
看起来很不棒!
表面越是简单的东西,内部越是复杂。 表面越是复杂的东西,内部越是简单。
我认为 Delphi,曾经一度是 快速开发领域的 最主流的开发工具。
我觉得 Rails 的很多问题,归结于,其背后没有一个,强大的公司为其支撑。 VC 那么烂,但是却活到今天,完全是因为微软在支撑。 社区虽然很强大,但依然无法和资金雄厚的企业相比。
如果像真正想掌握 Rails,那么必须精通 Ruby, 如果只是想试试 Rails,那么你可以不了解 Ruby。 这个道理,我觉得适用于任何技术框架。
Ruby 天生就支持 AOP。
class Game
def play
puts 'play'
end
end
class Game
alias_method :old_play, :play
def play
old_play
puts 'log'
end
end
Game.new.play
# play
# log
#4 楼 @help5305fff 请问你用的 Netbeans 是那个版本?
#1 楼 @help5305fff 新版的 Netbeans 官方已经不再默认支持 RubyOnRails 了, 请问你怎么使用 Netbeans?
至于动态产生的方法,就很折磨人, 使用 binding.pry 然后使用 show-method, 只能定位到相关的创建代码, 无法直观的看到函数源码, 只能凭感觉,猜测函数代码的内容。 这点,绝对是 Ruby 的硬伤!
不过,我曾经研究过,如何查看动态生成的函数的源码的问题, 我当时发现了一个 gem 叫做 ParseTree 但是 ParseTree,不支持 ruby 1.9 后来,我就没再研究, 有关内容,可以看看这帖子 《关于查看 Rails 动态生成的函数源码的问题》 http://ruby-china.org/topics/1441
对于静态生成的方法,指那些不是运行期动态生成的方法, 我使用 CTags 定位 Vim 和 SublimeText2 都可以使用 CTags
我自己写了一个脚本,来生成 CTags,如下
tags-project ()
{
DIR_1=~/Documents/project/;
DIR_2=~/.rvm/gems/ruby-1.9.3-p0@project/gems;
DIR_3=~/.rvm/gems/ruby-1.9.3-p0@project/bundler/gems;
DIR_4=~/.rvm/rubies/ruby-1.9.3-p0;
cd ~/Documents/project/;
ctags -R $DIR_1 $DIR_2 $DIR_3 $DIR_4 2> /tmp/log;
rm .tags;
ln -s tags .tags;
ls --color=auto -lF tags -h
}
Sublime 自带格式化功能 (代码缩进),
menu-edit-line-reindent
你可以自己设置快捷键
这个功能很好用,我一天要用无数次。
Alignment 实现的是 等号对齐效果
默认快捷键ctrl+alt+a
HappyCasts 的视频非常不错, 可谓,短小而精炼, 非常感谢楼主的分享。
#22 楼 @superbatironmans5 我认为 这三样,非常重要。 也许大学的时候不能深刻理解,但是起码能够入门, 今后当你想成为一个优秀的程序员的时候,这三样对你的帮助会非常大。
我喜欢一边听音乐,一边写代码。 我喜欢写会代码,扯会淡。
楼主,我不喜欢 fcitx,我喜欢 ibus, 请在标题里面,加入 fcitx 字样好吗, 否则容易误导大家。谢谢!:)
楼主换个标题吧,这标题,太 哔........ 了
@lgn21st 钦佩
晚上回到家, 看我最喜欢的电视剧和电影, 老爸老妈,生活大爆炸,好汉两个半, 24 小时,Heros,冰与火之歌, 火影,夏目友人帐, 不过以上都看完了,已经很久没有片看了。 当你把所有值得看的,电视剧和电影,都看完了以后, 是一种莫大的悲哀!
2002 世界杯的时候 米卢教给我们一句话 态度决定一切
不论成败 不论强弱 坦然置之
如果我的理解没有错误的话, 我觉得在 git pull 之前, 可以为当前的 branch 创建一个 tag/branch, 然后再获取最新的代码, 然后再 git diff 两个 branch/tag 之间的区别,
更简单的办法,在 git pull 前,记录 commit 的 id 然后比较 两个 commit id 的差别