2013-07-05 60 views
0

我已經編程了大約一年,現在已經開始探索新的主題,現在我已經牢牢掌握了計算機科學的基礎知識。最近我一直在做很多web開發的工作,尤其是使用RoR,我對Rakefile的內容感到困惑。我在網上查找了一些解釋,但我所見過的大部分內容都是「Rake是Make的Ruby版本」或「您可以從頭開始構建文件」或「您可以寫你自己的任務!「。不幸的是,我不知道什麼是Make(我會假設一箇舊版本的Rake,但是因爲我沒用過它,這並不幫助我理解Rake是什麼),我不知道爲什麼我需要一個特殊文件爲Web應用程序動態創建新文件,並且我不瞭解哪些任務/如何使用它們。如何以及何時使用Rake文件?

所以,我的問題是,Rake在Web應用程序和其他編程領域中的確使用了多少?它何時在程序中運行,它完成了什麼?任何幫助非常感謝

回答

2

耙,製作,湖,WAF,忍者,CMake和其所有的同類是設計用來執行命令和執行基於一個依賴關係任務項目構建工具,通常表示爲一個曲線圖。爲這些系統編寫腳本文件時,通常使用特定於域的語言編寫。爲了記錄,製作不是舊版本的Rake。它們是基於相同概念的兩個完全獨立的工具。

只要有要執行的任務取決於其他文件的存在或時間,或者您需要首先執行先決條件任務,這些系統都很有用。一個典型的例子是構建一個涉及兩個或更多階段的C/C++應用程序。首先將項目源編譯到目標文件中,然後將這些目標文件鏈接在一起以生成最終的可執行文件。這意味着直到目標文件存在才能創建可執行文件。之後,除非存在相應的源文件,否則不能創建目標文件。

在網絡應用程序中,如果您的項目需要生成某些文件並確保它們是最新的,這可能很有用。例如,將.svg矢量文件變成一個png或jpeg。每當.svg文件更改時,需要重新生成相應的輸出以反映該更改。另一個例子,從一個自定義模板生成相應的html和css文件。

這不同於說一個shell腳本,表達這種關係並不容易。他們都可以執行項目所需的命令,但像Rake和Make這樣的系統只通過運行所需的東西就可以更高效地執行此操作。在shell腳本中表達相同的行爲將需要更多的代碼行,並且不會像上述系統使用的聲明式接近那樣乾淨。

0

Rake是一個組織腳本的框架,您可能需要執行各種維護任務。 Rails帶有一些內置的任務,應該讓你瞭解該工具的範圍。嘗試運行命令rake -T以查看可用的rake任務列表。

相關問題