在典型的長時間運行的流程環境(比如rails server
)中,Ruby應用程序看起來像是一個常見問題,爲了緩解開發難題,類重新加載是一個難以解決的重要問題。爲什麼Ruby不包含內置的類重新加載?
它讓我覺得,語言最清楚stdlib定義了哪些常量,並且完全瞭解哪些常量是從什麼文件加載的,何時加載的,當然還有提供重載它們的功能。
有來複雜的情況下,通過require 'foo'
,你也定義Bar
,但這並不是太具有挑戰性的跟蹤,此外define_const
已被使用的情況下也泥濘了事情。螺紋加載是另一個問題,但我真的可以看到允許線程從磁盤文件的當前狀態重新加載自己的情況。 (更快的測試服務器將#1想法)
現在看來似乎應該是一個語言特性,並沒有那麼多,許多不同的人需要推出解決方案的東西。
因此,在總結,爲什麼,這是不是一種語言功能?看起來應該是這樣,儘管使用情況配置文件幾乎僅限於長時間運行的開發服務器。
這裏的另一個問題可能是「爲什麼Rails沒有使用內置的DRB模型來快速開發開發服務器,並跳過所有的類重新加載」,這也是一個有趣的討論,但現在還沒有。
它似乎很棘手,但仍然是語言,而不是多個框架作者應該解決..謝謝你的答案。 –
如果你不知好奇,你可能想看看ActiveSupport中的一些[magic](http://rkh.im/code-reloading)。 – tadman
不錯的環節,我記得以前看過那篇文章,但是沒有足夠的技巧從當時那裏拿走很多東西。乾杯。 –