XML形式的配置文件是Web開(kāi)發(fā)中最常見(jiàn)的文件,如web.xml、applicationContext.xml、*.hbm.xml等等,這些文件在為應(yīng)用程序提供強(qiáng)大的靈活性的同時(shí)也大大增加配置的復(fù)雜度。而Rails框架拋棄了這些配置文件,使用嚴(yán)格的約定,要求開(kāi)發(fā)者將View、Controller、Model等各種類型文件放在自己專屬的文件夾下,從而大大降低開(kāi)發(fā)的復(fù)雜度,也即其Convention Over Configuration思想。
下圖是一個(gè)典型的ROR應(yīng)用程序結(jié)構(gòu):
下面介紹圖中的主要目錄:
app:
該目錄下存放了Rails應(yīng)用程序的主要文件,其子目錄有models、controllers、views和helper等幾個(gè),從名字上就可以看出它們分別存放應(yīng)用程序中哪種類型的文件,helpers和views一樣都是用來(lái)存放視圖文件。Rails是一個(gè)典型的
MVC
框架,所以其子目錄也是按照MVC框架的結(jié)構(gòu)劃分和命名,使用起來(lái)非常方便。
components:
該目錄下保存被應(yīng)用程序中的model、controller和view使用的小組件。
config:
這個(gè)目錄用來(lái)存放Rails應(yīng)用程序中為數(shù)不多的配置文件,主要有數(shù)據(jù)庫(kù)配置(database.yml)、Rails環(huán)境結(jié)構(gòu)(environment.rb)以及web請(qǐng)求的處理路由(routes.rb)。另外還可以在environment子目錄中分別配置測(cè)試(test.rb)、開(kāi)發(fā)(development.rb)和生產(chǎn)(production.rb)三種不同的環(huán)境。
db:
該目錄用來(lái)存放管理應(yīng)用程序中的數(shù)據(jù)庫(kù)的腳本文件。
doc:
Rails應(yīng)用程序的文檔目錄。Ruby有一個(gè)
RubyDoc
工具,可以根據(jù)代碼中的注釋自動(dòng)生成文檔。
lib:
該目錄存放應(yīng)用程序的類庫(kù)。如果類庫(kù)是第三方類庫(kù),需要放在另外一個(gè)目錄vendor下。
log:
日志信息無(wú)論軟件的開(kāi)發(fā)、測(cè)試還是運(yùn)行階段都有著非常重要的作用。Rails應(yīng)用程序的所有日志信息都被存放在該目錄下,主要的日志信息有針對(duì)服務(wù)器的獨(dú)立日志信息(server.log)以及針對(duì)三種不同的Rails環(huán)境的日志信息(test.log、development.log和production.log)。
public:
該目錄存放應(yīng)用程序中的靜態(tài)文件,如圖片、JavaScript腳本、CSS樣式表文件和靜態(tài)的HTML文件,其中images、javascripts和styles三個(gè)子目錄分別存放圖片、.js和.css文件,靜態(tài)的html文件,可以直接存放在public下。
script:
這個(gè)目錄存放了一些腳本文件,這些腳本文件用來(lái)管理或者啟動(dòng)Rails中各種類型的工具,例如生成代碼、啟動(dòng)服務(wù)器等。
test:
該目錄存放Rails自動(dòng)產(chǎn)生的或者自己創(chuàng)建的測(cè)試文件,其中fixtures、mocks、unit和functional分別對(duì)應(yīng)不同類型的測(cè)試。
vendor:
該目錄存放第三方的類庫(kù),如數(shù)據(jù)庫(kù)操作類庫(kù)。
tmp:
上圖中沒(méi)有出現(xiàn)該目錄,在運(yùn)行過(guò)程中可能會(huì)出現(xiàn)。該目錄存放作為中間處理過(guò)程的臨時(shí)文件。
由于Rails應(yīng)用程序是按照慣例或者說(shuō)約定來(lái)存放文件,從而簡(jiǎn)化開(kāi)發(fā)的,所以我認(rèn)為連了解這些目錄的作用,總是比較好的。不過(guò)剛開(kāi)始接觸,還是有些目錄的不是很清楚,等慢慢深入了,再回過(guò)來(lái)補(bǔ)充吧。
Ruby On Rails學(xué)習(xí)筆記(2)——Convention over Configuration(ROR應(yīng)用程序的目錄結(jié)構(gòu))
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
