作者:Curt Hibbs 日期:
譯者:吳海燕 日期:
Ruby on Rails
Ruby on Rails是一套用Ruby寫(xiě)的Web應用程序框架,Ruby是一個(gè)與Python,Smalltalk和Perl相似的動(dòng)態(tài)語(yǔ)言。
從
我并不教你如何去用Rails來(lái)寫(xiě)Web程序,如果你想那樣的話(huà),你應該去看看Rolling with Ruby on Rails。這篇文章只是講述了Rails的各個(gè)特性。
Ruby on Rails并沒(méi)有引入什么新的功能,以前的Web框架都已經(jīng)很好的具備各種需要的功能,那么Rails是靠什么東西取勝的呢?區別就在于Ruby是如何的來(lái)實(shí)現的。當你花了數天而不是數周實(shí)現了一個(gè)簡(jiǎn)單的Web程序,花了幾周而不是幾個(gè)月實(shí)現了一個(gè)復雜的Web程序的時(shí)候,你就會(huì )注意到這一點(diǎn)了。
當然了,如果開(kāi)發(fā)出來(lái)的程序最后復雜而且難以維護的話(huà),那么我們剛剛注意到的優(yōu)點(diǎn)也就毫無(wú)意義了。幸運的是,Ruby on Rails促使人們使用好的編程習慣,這也就導致編寫(xiě)出來(lái)的代碼結構好而且容易維護。
如果ruby沒(méi)有深度的話(huà)――也就是說(shuō),如果你嘗試做任何稍微復雜一些的Web程序的時(shí)候,你發(fā)現遇到了障礙,由于Rails固有的一些缺陷導致了無(wú)法完成那樣的程序。不過(guò)一些資深的開(kāi)發(fā)人員已經(jīng)嘗試并且報道了Rails不存在這樣的缺陷,比如,Tomcat,Ant和Servlet API的作者James Duncan Davidson最近寫(xiě)道:
Rails is the most well thought-out web development framework I‘ve ever used. And that‘s in a decade of doing web applications for a living. I‘ve built my own frameworks, helped develop the Servlet API, and have created more than a few web servers from scratch. Nobody has done it like this before. That‘s not to say they got it all right. It‘s by no means "perfect". I‘ve got more than a few nits and picks about how things are put together. But "perfect" isn‘t the point. The point is that it gets you up and going fast and has plenty of depth to keep you going. And Rails does that very well.
如果沒(méi)有足夠的證據的話(huà),你也許很難相信他所說(shuō)的話(huà)。不過(guò)幸運的是,你不需要相信我的(或者任何其他人的)話(huà),你可以自己用一天或者更短的時(shí)間來(lái)看看Ruby on Rails tutorial并且做一個(gè)適當的Web程序出來(lái)。畢竟,眼見(jiàn)為實(shí)!如果你不想要自己去嘗試,那么你也可以看new Rails video,看看別人是怎么做到的。
就好像一個(gè)好的藥方一樣,Rails通過(guò)整合適量的正確手段來(lái)達到前面所說(shuō)的樣子。下面就是Rails為什么能夠如此高效的一部分原因
Rails的很多強大的功能都是來(lái)自于Ruby的。Ruby獨特的設計使得我們可以輕松的創(chuàng )建domain-specific languages 和做metaprogramming。
Rails是一個(gè)MVC(model,view,controller)的框架,他提供了所有的這些層次并將他們無(wú)縫的結合在了一起。其他的一些框架一般都只是提供了一部分的解決方案,需要開(kāi)發(fā)者自己去整合多個(gè)框架到一個(gè)應用程序里面去。比如說(shuō),一個(gè)Java開(kāi)發(fā)人員就需要使用Hibernate,Struts和Tiles來(lái)實(shí)現MVC的目標。
約定高于配置意味著(zhù)XML配置文件的終結—在Rails里面,沒(méi)有任何的xml配置文件!代替xml的是使用一些簡(jiǎn)單的約定,讓程序可以通過(guò)反射和查找來(lái)獲得所需要的配置信息。比如,Rails使用反射來(lái)自動(dòng)的將Ruby對象映射到數據庫表里面去。你的程序代碼和正在運行的數據庫里面已經(jīng)包含了Rails所需要的一切。
通過(guò)遵循一些簡(jiǎn)單的編程約定不僅僅可以減少配置文件的使用,同時(shí)還可以讓Rails自動(dòng)的去處理很多的底層的細節問(wèn)題,這意味著(zhù)你可以寫(xiě)更少的代碼來(lái)實(shí)現你的程序。保持你的代碼的精簡(jiǎn)意味著(zhù)更快的開(kāi)發(fā)速度和更少的bug,它可以讓你的代碼更加容易理解,維護和擴展。
Rails通過(guò)運行時(shí)反射和元程序來(lái)減少本來(lái)你必須要編寫(xiě)的代碼。你通??梢酝ㄟ^(guò)內置的自動(dòng)生成腳本來(lái)生成一些原本需要通過(guò)手工編寫(xiě)的代碼,這就讓你可以集中精力在你的業(yè)務(wù)上面,而不是在處理一些無(wú)關(guān)的細節方面。
一般的Web程序的開(kāi)發(fā)都需要經(jīng)過(guò)一下幾個(gè)步驟:配置,編譯,部署,重設和測試。這非常的耗費時(shí)間,Rails開(kāi)發(fā)環(huán)境不需要經(jīng)過(guò)這些步驟。你做了一個(gè)修改,然后你就可以看到這個(gè)修改的效果了。我們無(wú)法描述這對于提高生產(chǎn)力會(huì )有多大的幫助,但這確實(shí)很有幫助。
Rails可以自動(dòng)創(chuàng )建完整的用來(lái)操作數據庫表的CRUD(Create,Retrieve,Update和Delete)操作和相應的視圖。這個(gè)功能可以讓你很快的就可以實(shí)現用來(lái)操作數據庫表的功能。隨著(zhù)開(kāi)發(fā)的進(jìn)行,你可以慢慢的使用自定義的CRUD方法和視圖來(lái)代替自動(dòng)生成的程序,從而讓程序更加美觀(guān),更加的功能強大。
聯(lián)系客服