Rails項目實戰(zhàn)剖析與技巧大全

出版時間:2008 年7月  出版社:電子工業(yè)出版社  作者:(美)Eldon Alameda  頁數(shù):537  字數(shù):921600  譯者:張若飛;,王峰;馬連浩  
Tag標簽:無  

前言

關(guān)于作者Eldon Alameda是一名Web開發(fā)人員,現(xiàn)居住于氣候寒冷的堪薩斯州。他現(xiàn)在為堪薩斯市一家剛起步的小型科技公司開發(fā)Ruby on Rails應(yīng)用。在這之前,他在當(dāng)?shù)氐膹V告公司、Sprint PCS及IBM等多家公司從事過軟件開發(fā)工作。關(guān)于技術(shù)評審Paul Bentley已經(jīng)有10多年專業(yè)軟件的開發(fā)經(jīng)驗。他涉獵過計算機的許多領(lǐng)域,其中包括從嵌入式設(shè)備到3D圖形等。他尤其精通電話技術(shù)領(lǐng)域,不管是在傳統(tǒng)的計算機電話技術(shù)方面,還是在基于SIP的解決方案方面都有相當(dāng)豐富的經(jīng)驗。他現(xiàn)在使用Rails來開發(fā)Web應(yīng)用程序,以為解決企業(yè)應(yīng)用的一系列問題提供穩(wěn)定的方案。致謝說實話,寫本書真的很難。其實我更想說的是,如果沒有許多人的幫助、耐心及智慧,這本書也就根本不可能與大家見面。Keir Thomas、Chris Mills和Ben Renow-Clarke也曾參與了這個項目,感謝你們對整個項目的指導(dǎo)、建議和幫助。Paul Bentley是本書的技術(shù)評審,感謝你花了很長時間審閱本書的代碼,你那些見解深刻的評論及鼓勵的話語一直激勵著我們。Tracy Brown Collins是本書的項目經(jīng)理,感謝你為了保證一切處于正軌而不知疲倦地工作,也感謝你在交稿期限到來時對我的通融。Heather Lang是本書的文字編輯,感謝你對本書文字上的修改及潤色。感謝Laura Cheu和她的產(chǎn)品團隊,你們?yōu)榱四茏尡緯M快上市所做的辛勤工作,以及容忍我每次在最后時刻的改變。在很多時候你們拯救了我,任何言語也無法表達我對你們的感激之情。感謝我的妻子Dori,感謝你的善良、支持、鼓勵及在過去的9個月里對家庭的照顧,還要感謝你在每次晚飯幫我訂辣雞翅時,(幾乎)從來都沒有抱怨過。最后,我要感謝我的女兒Kaylee,她是我的陽光,總是能給我?guī)硇β?。大多?shù)培訓(xùn)書籍和課程的不足在我的職業(yè)生涯中,曾經(jīng)參加過許多技術(shù)培訓(xùn)課程,并且發(fā)現(xiàn)其中的大多數(shù)都有一個共同的缺點——實際上沒有教授任何東西。我整個星期都坐在一間教室里,僅僅來證明我能夠遵循按部就班的指導(dǎo)。但是,我即使整天做著白日夢,也可以通過大多數(shù)這些課程。實際上只有當(dāng)我回到辦公室,獨自面對(由于沒有一個安全的網(wǎng)絡(luò))需要解決的技術(shù)問題時,才能真正掌握那些知識。也許只有在沒有理想環(huán)境的條件下,又不得不在實際中運用某項技術(shù)時,它的優(yōu)點和缺點才能充分地展示出來。我相信許多讀者也都有過同樣的經(jīng)歷。不幸的是,如今許多的編程書籍似乎也有了同樣的缺點。這些書規(guī)定了創(chuàng)建應(yīng)用程序的每個步驟,我們只需要按照“paint-by-numbers”一樣的方式去執(zhí)行就可以了(“paint-by-numbers”是一種繪畫方式,先在底稿上將圖片輪廓畫好,然后在圖上用數(shù)字標好每一塊區(qū)域,最后只需要在每一塊區(qū)域中上色就可以了)。這樣即使看完了全書,也只能說明你可以遵循按部就班的指示罷了。但是,我想寫一本與眾不同的書。的確,我熱愛Ruby on Rails,并堅信它是當(dāng)今最好的Web開發(fā)框架之一。Rails給我的開發(fā)工作帶來了許多快樂,也使我成為了一個更好的開發(fā)商。所以,當(dāng)有機會寫這本書的時候,我希望能寫一些可以使讀者同樣對Rails產(chǎn)生熱愛的東西。于是我重溫了當(dāng)前有關(guān)Rails的書籍,發(fā)現(xiàn)它們大致可以歸為以下幾類。起步介紹型:主要介紹Rails的結(jié)構(gòu)、約定習(xí)慣及特性。這樣的例子有《Beginning Rails: From Novice to Professional》(Jeffrey Allan Hardy,Cloves Carneiro Jr.及Hampton Catlin. Apress,2007),《Agile Web Development with Rails》(Dave Thomas,David Hansson,Leon Breedt和Mike Clark. Pragmatic Bookshelf,2006),甚至包括《Ruby on Rails for Dummies》(Barry Burd. For Dummies,2007)。單一項目型:這種書屬于填鴨式(就是把知識一味灌輸給學(xué)生)教育,主要讓讀者一步一步地跟著書上步驟來創(chuàng)建一個項目,例如用Ruby on Rails來創(chuàng)建一個社交網(wǎng)站或者電子商務(wù)網(wǎng)站。解決特定問題型:這些書主要針對于高級Rails開發(fā)商,并通過簡短的代碼段來說明一些問題的解決方案,例如增加認證控制功能等。參考書型:這類書也是針對于高級Rails開發(fā)商的,它對某一特性或者Rails開發(fā)的相關(guān)組件進行了深入剖析,例如優(yōu)秀的《Ruby for Rails:Ruby Techniques for Rails Developers》(David Black. Manning Publication,2006),以及《Pro ActiveRecode:Databases with Ruby and Rails》(Kevin Marshall,Chad Pytel和Jon Yurek. Apress,2007)、《Deploying Rails Applications A Step-by-Step Guide》(Ezra Zygmuntowicz和Bruce Tat. Pragmatic Programmer,2007)等書。通常,我建議對學(xué)習(xí)Rails有興趣的人按照如上順序來閱讀相關(guān)書籍。由起步的Rails書籍開始,然后按照書上步驟去做一些項目,積累一些實際經(jīng)驗。最后,再看些能夠進一步加深認識的書籍。這本書有什么不同在上面列舉的幾種書中,我相信讀者從項目型的書中獲得的Rails知識最多。但是,即使像Rails這么有意思的主題,這些書也會阻礙讀者的思維發(fā)散,最終只能一步一步按照書中的指示操作,而不是從中去拓展思路。當(dāng)然,我也不是要把這類書一棒子都打死,實際上我自己也閱讀了大量這類的書籍。我希望能讓讀者從一名Rails初學(xué)者盡快地成為一名有經(jīng)驗的Rails開發(fā)商。我希望不只是教給讀者如何創(chuàng)建一個Rails應(yīng)用,而是教給讀者相關(guān)的實現(xiàn)方法和知識,使得你可以自己來完成這一類項目的開發(fā),這樣你選擇這本書才算是物超所值。所以,本書不只是簡單地向讀者介紹一個獨立應(yīng)用的創(chuàng)建過程,而是與讀者一起去完成多種類型的項目。書中所選的每一個項目不僅會讓讀者掌握Rails的核心特性(例如緩存和REST方式的路由),而且為了激發(fā)讀者的興趣,我們還對某些問題進行了深入探討,其中的每一個項目都能很容易地擴展成單獨的一本書。學(xué)會獨立思考除此之外,我不僅沒有將每個項目擴展成為一本獨立的書,用填鴨式的方法一步一步指導(dǎo)讀者,反而將每個項目的規(guī)??s小了一些,僅向讀者提供了每個項目的原始版本。這樣不僅能夠保證項目可以成功運行,而且讀者可以很容易地進行修改和擴展,以便使其更符合自己的需求。每當(dāng)描述這本書的時候,我都把它比喻成是在教別人學(xué)騎自行車。從這點來說,我的任務(wù)就是教會讀者如何上車和前進,然后讓讀者自己去學(xué)會如何掌握方向和平衡,直到學(xué)會騎自行車。在每一個項目的最后,我都設(shè)置了一些讀者需要去思考的問題。因為我相信只有實踐才是檢驗真理的唯一標準,所以我會在這個部分指出項目中一些不盡如人意的地方,來讓讀者進行修改。另外,這里提出了一些非常有意思的見解,可能會使讀者從新的角度來看待項目。強烈建議讀者完成其中的每一個練習(xí),相信讀者能夠通過這些練習(xí)更好地拓展自己的思路。本書中不涉及的內(nèi)容當(dāng)然,撰寫這樣的一本書需要忍痛割舍掉很多想要涉及的內(nèi)容。如果我將這些內(nèi)容全部寫出來的話,這本書估計要有2000頁了(也許我還在寫呢)。因此,一些本書中無法涉及到而有讀者需要的內(nèi)容,只好放在以下這個部分跟讀者說明了。數(shù)據(jù)庫調(diào)優(yōu)和索引由于本書中不涉及到數(shù)據(jù)庫的調(diào)優(yōu)和索引,所以讀者可能會發(fā)現(xiàn),本書中的大多數(shù)項目都沒有在數(shù)據(jù)庫中建立任何索引。當(dāng)我們的數(shù)據(jù)庫數(shù)據(jù)量較小并且查詢語句相對簡單的時候,這可能并沒有什么問題,但是當(dāng)數(shù)據(jù)庫與應(yīng)用程序隨著時間不斷增加的時候,這就可能導(dǎo)致嚴重的性能問題。也許因為我是從數(shù)據(jù)庫管理轉(zhuǎn)到Web開發(fā)上來的,所以我很難將這個重要的特性從本書中移除,但是這個問題實在是很復(fù)雜,也容不得我在這上面花費過多的精力。也許將來我會再寫一本完全關(guān)于這個方面的書。測試在Rails社區(qū)中,測試驅(qū)動開發(fā)(TDD,Test-driven development)顯然占有一席之地。雖然我還沒有先寫測試的習(xí)慣,但是我很清楚在部署應(yīng)用之前開發(fā)一個復(fù)雜的測試套件(Test Suit)的價值。我曾經(jīng)聽到有人說所有的程序都要經(jīng)過測試,問題是應(yīng)該由你自己來測試用例還是直接將程序交給你的用戶,讓他們來幫你進行測試。重構(gòu)(Refactoring)伴隨一系列測試用例而來的,便是對代碼進行重構(gòu)。由于每個項目還處于非常初始的演示階段,所以留給了代碼重構(gòu)很大的空間,以使代碼變得更干凈利落,可以優(yōu)化性能和減少代碼量。在每個項目的練習(xí)部分中,我都會為讀者指出通常進行重構(gòu)和優(yōu)化的正確方向。

內(nèi)容概要

果你是一個已經(jīng)領(lǐng)略過Ruby on Rails威力的開發(fā)人員,又想進一步提升Rails技能,本書對你而言將是無價之寶。本書的重點并不在于該框架的應(yīng)用基礎(chǔ),而是聚焦于帶你感受眾多真實案例的開發(fā)實踐,包括博客、個人備忘錄、日歷、一個由PHP移植為Rails的網(wǎng)站實例等。每一應(yīng)用實例均來自最佳實踐,包括類型、功能、多種Rails插件應(yīng)用、Rails引擎和Ruby Gem。同時,也探討最先進的Rails功能,諸如新的REST執(zhí)行和Active Resource。作為必要的回顧,本書在直接進入項目實踐之前,先向讀者介紹了一個理想開發(fā)環(huán)境的建立。全書內(nèi)容包括:如何基于Windows、Mac OS X和Linux建立Rails;如何配合MySQL and SQLite數(shù)據(jù)庫使用Rails;如何合并最新插件、引擎和Ruby Gems到應(yīng)用中,以節(jié)省開發(fā)時間;如何使用Yahoo YUI輕松實現(xiàn)一致的應(yīng)用風(fēng)格;如何將PHP站點翻新為Rails;如何使用Ajax技術(shù)為應(yīng)用增色;如何使用最先進的Rails功能,如REST和Active Resource。    本書適合程序開發(fā)人員參考學(xué)習(xí),還可以作為高等院校相關(guān)專業(yè)師生的參考書。

作者簡介

Eldon Alameda,一名Web開發(fā)人員,現(xiàn)居住于氣候寒冷的堪薩斯州。他現(xiàn)在為堪薩斯市一家剛起步的小型科技公司開發(fā)Ruby on Rails應(yīng)用。在這之前,他在當(dāng)?shù)氐膹V告公司、Sprint PCS及IBM等多家公司從事過軟件開發(fā)工作。

書籍目錄

第1部分  必要的準備工作(請不要跳過這一部分) 第1章  搭建開發(fā)環(huán)境 第2章  創(chuàng)建Rails應(yīng)用程序第2部分  Monkey Tasks日常任務(wù)管理 第3章  實現(xiàn)用戶注冊與認證管理 第4章  實現(xiàn)日常待辦事項管理 第5章  完善Monkey Tasks第3部分  Exercisr應(yīng)用程序 第6章  開發(fā)基于REST的應(yīng)用程序 第7章  為應(yīng)用程序添加圖形功能 第8章  完善Exercisr第4部分  簡單的博客程序 第9章  使用Typo創(chuàng)建博客程序 第10章  創(chuàng)建一個簡單的博客引擎(Engine) 第11章  完善博客程序第5部分  使用緩存構(gòu)建一個Web漫畫站點 第12章  使用頁面緩存構(gòu)建基本的系統(tǒng) 第13章  實現(xiàn)高級緩存 第14章  完善Web漫畫站點	第6部分  教會社區(qū)網(wǎng)站 第15章  用戶和檔案管理 第16章  完善社區(qū)站點 第17章  完善教會社區(qū)應(yīng)用第7部分  GamingTrend網(wǎng)站 第18章  PHP網(wǎng)站的遺留問題 第19章  轉(zhuǎn)化游戲記錄 第20章  新聞管理功能 第21章  完善游戲網(wǎng)站第8部分  使用Edge Rails(Rails 2.0)集成REST應(yīng)用程序 第22章  Highrise的簡要介紹 第23章  集成Highrise的REST API	 第24章  創(chuàng)建預(yù)約程序	第25章  完善Rails 2.0應(yīng)用程序

章節(jié)摘錄

插圖:第1章 搭建開發(fā)環(huán)境Miracle Max:你催促一個制造奇跡的人,只能得到一個糟糕的奇跡?!訵illiam Goldman編劇的影片《公主新娘(The Princess Bride)》,1987年為了能夠運行本書中的項目,首先需要保證在機器上已經(jīng)安裝了如下的軟件。Ruby和Rails:因為Rails是一個針對于Ruby的框架,并且其自身也是使用Ruby編寫的,所以首先需要安裝Ruby。對于本書來說,Ruby的版本應(yīng)該在1.8.4以上。稍后我會講解一些如何快速并且正確安裝Ruby及Rails的方法。數(shù)據(jù)庫(Database):Rails框架是針對于創(chuàng)建基于數(shù)據(jù)庫驅(qū)動(Database—driven)的Web應(yīng)用程序。因此如果沒有連接數(shù)據(jù)庫的話,這個框架很可能無法啟動。稍后會討論開發(fā)中經(jīng)常會使用的幾種數(shù)據(jù)庫類型。代碼編輯器(Code Editor):雖然從Rails的開發(fā)理論上來說,只要使用文本編輯器(可以創(chuàng)建和修改文本文件)就足夠了,但是由于在實際中可能會牽扯到大量的文件,所以我們在后面會介紹一些高級技巧,來幫助讀者提高開發(fā)的效率。Web服務(wù)器:再好的機器也需要借助Web Server才能運行Rails程序。幸運的是,現(xiàn)在已經(jīng)有幾種非常優(yōu)秀的、基于Ruby實現(xiàn)的服務(wù)器可以供我們選擇。1.1 安裝Ruby和Rails因為考慮到本書的大部分讀者可能已經(jīng)閱讀過一些入門的Rails書籍,所以我也不打算花費太多的時問來講解如何安裝Rails。但是,又考慮到有些讀者的確需要了解這方面的內(nèi)容,所以我想至少還是應(yīng)該為他們指明一個正確的方向,以免有讀者在這個問題上無謂地浪費精力和時間。因此在這個部分中,我會從一個更高層次的角度來介紹如何在Linux、Windows和Mac OSX上安裝Rails。如果讀者想?yún)⒖家槐救腴T級的Rails書籍,那么最好的選擇是《Agile Web Development with Rails》(Thomas,Dave et al. Pragmatic Programmers,2006)。

編輯推薦

《Rails項目實戰(zhàn)剖析與技巧大全》適合程序開發(fā)人員參考學(xué)習(xí),還可以作為高等院校相關(guān)專業(yè)師生的參考書。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    Rails項目實戰(zhàn)剖析與技巧大全 PDF格式下載


用戶評論 (總計6條)

 
 

  •   相當(dāng)實用的教程,對學(xué)好RAILS很有幫助
  •   實例講解,還不錯!
  •   剛剛翻了幾頁目錄,感覺還是不錯的,有點利用價值
  •   本書還是不錯。內(nèi)容豐富。
  •   這書不適合初學(xué)者,感覺我買錯了,看不懂= =
  •   內(nèi)容非常好,可以書中用的是rails 1.2.6,現(xiàn)在2.3都發(fā)布了。所以經(jīng)??吹竭^期的用法,有點不爽
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7