如果您是一個大型(非常大的)rails應用程序的新開發人員,可能很難通過調用什麼的流程來追蹤什麼,在哪裏定義方法,以及如何「理解」整個事物作品。跟蹤大型導軌應用程序的流程的最佳實踐是什麼?
什麼是如何找到類似的信息的最佳實踐:
我在Foo類,它調用一個方法吧但文件中沒有高清吧。它必須以某種方式混入或關注或猴子補丁等。步驟1,2,3是哪裏看的?我沒有在文件頂部看到任何明顯的東西,並且grep'def bar'不會返回任何東西。
如果您是一個大型(非常大的)rails應用程序的新開發人員,可能很難通過調用什麼的流程來追蹤什麼,在哪裏定義方法,以及如何「理解」整個事物作品。跟蹤大型導軌應用程序的流程的最佳實踐是什麼?
什麼是如何找到類似的信息的最佳實踐:
我在Foo類,它調用一個方法吧但文件中沒有高清吧。它必須以某種方式混入或關注或猴子補丁等。步驟1,2,3是哪裏看的?我沒有在文件頂部看到任何明顯的東西,並且grep'def bar'不會返回任何東西。
元編程!可能基於通過的參數來定義方法。防爆。 define_method
我會去與
grep "def bar" app/* lib/* -irn (optionally -l)
如果我在文件中很開放,我很可能會使用cscope,因爲我使用vim的,但如果你使用的是IDE它可以幫助你以某種方式找到這個方法。或者,我可以簡單地使用the debugger,在那裏你可以在運行時檢查你的對象。
在這裏回答了類似的問題:http://stackoverflow.com/questions/2630862/how-do-i-find-where-a-ruby-method-is-declared – 2013-05-07 18:15:26
另外,foo.method(:bar) .owner可能是有用的。並認爲這可能是一種動態方法,在這種情況下,grepping可能沒有幫助。 – 2013-05-07 18:19:20
根據你的業力,我想你已經發現了撬,這對追蹤真的很有幫助。我爲其他可能會偶然發現這個問題的人提出這個問題。讓我知道你是否想要更長的答案。 – 2013-05-07 18:27:21