出版時間:2010-4 出版社:人民郵電出版社 作者:(美)Obie Fernandez 頁數(shù):504 字數(shù):818000 譯者:Ruby on Rails中文社區(qū)
Tag標簽:無
前言
在2004年末,我正在為一家大型美國汽車制造公司做咨詢服務。當時和我一起工作的還有我的好朋友Aslak Hellesoy。我們所接手的那個項目很具挑戰(zhàn)性,不僅面臨困難的公司政治矛盾、技術障礙,而且工期很緊。這個項目的工期還不是一般意義上的緊張,在當時的項目情況下,如果我們每拖延一天完工,我們的客戶就得被罰100萬美元。因此壓力可想而知! 在那個項目中我們曾面臨一個具有爭議的抉擇,不過最后我們的團隊決定將我們的連續(xù)整合系統(tǒng)構建在Aslak的一個業(yè)余項目Damage Control的基礎上。Damage Control是老舊的Cruise Control服務器的Ruby版本,是由我們的雇主公司Thought Works開發(fā)的。 問題是Damage Control當時還是一個半成品,而且和其他許多Ruby事物一樣,它在Windows系統(tǒng)中兼容性不是很好。我已經(jīng)記不得是什么原因,不過當時我們必須將它部署到一個陳舊的Windows 2000服務器上,而且那個服務器上還跑著一個StarTeam代碼版本庫(折騰!)。 Aslak需要幫助——在這之后的幾個星期,我們沒日沒夜地進行結對編程的工作。對DamageControl的程序代碼和Ruby的Win32程序代碼庫的C代碼進行了大量改造。當時的我具有八年正規(guī)行業(yè)的Java開發(fā)經(jīng)驗,而且當時我特別喜歡使用IntelliJ IDE;但在那段時間,我對Ruby的痛恨不禁溢于言表。 當這個倍具壓力的項目上線之后,我接手了另一個相對輕松的任務并轉去ThoughtWorks的倫敦辦公室工作。過了大概一個月的時間,Ruby再一次吸引了我的注意。當時我在很多朋友的博客上看到他們激動地討論一個即將發(fā)布的網(wǎng)絡程序框架,叫做Ruby on Rails。于是我決定再來試試Ruby,或許它并非那么糟糕吧。我很快就創(chuàng)新地為ThoughtWorks建立起一個供內(nèi)部使用的社區(qū)網(wǎng)絡系統(tǒng)。 在2005年初的那幾周中,我的Rails第一次親密接觸讓我完全轉變了看法。經(jīng)年累月以來我所學到的那些用于構建網(wǎng)絡應用程序的經(jīng)驗和技巧已經(jīng)全部被濃縮到了這么一個程序框架中,更何況這個框架是用我所見過的最優(yōu)雅而簡練的編程語言編寫的。我對Java的興趣戛然而止(雖然之后我還差不多用了一年的IntelliJ)。我開始熱心地在我的博客上撰寫有關Ruby和Rails的文章,并且不遺余力地在ThoughtWorks的里里外外宣傳它們。結果,正如他們所說的,Ruby on Rails是件影響網(wǎng)絡應用程序開發(fā)的大事記。 當我在2007年撰寫這本書的時候,ThoughtWorks全球收入中的近一半來自于我所推薦的Rails的項目生意。他們特別成立了一個很大的部門專門從事基于Ruby的商業(yè)軟件開發(fā)工作。他們的產(chǎn)品中包括CruiseControl.rb,它很榮幸地成為Ruby on Rails核心團隊所選擇的連續(xù)式整合服務系統(tǒng)。我猜CruiseControl.rb就是Aslak一直以來都想編寫的系統(tǒng)。
內(nèi)容概要
本書按照Rails的各個子系統(tǒng)進行組織編排,分別介紹了Rails的環(huán)境、初始過程、配置和日志記錄,Rails的分配器、控制器、頁面生成和路由,REST、資源和Rails,ActiveRecord的基礎、關聯(lián)、驗證和高級技巧,ActionView的模板、緩存和幫助器,Ajax、Prototype和Scriptaculous等JavaScript代碼庫和RJS,Session管理、用戶登錄和認證系統(tǒng),XML和ActiveResource,后臺處理和ActionMaile,測試和specs(包括RSpec on Rails和Selenium),安裝、管理、編寫插件,Rails的生產(chǎn)部署、配置和Capistrano等內(nèi)容。 本書詳細討論了Rails的程序代碼并通過分析Rails中的代碼片段來深入解釋它的功能,同時,本書部分章節(jié)也摘錄了一些API文檔中的內(nèi)容,使讀者能夠快速地找到對應的API文檔、相關的示例代碼以及深入的解析說明?! ”緯荝ails的權威參考書,適合對Rails已經(jīng)有一定了解的開發(fā)人員學習和使用。
作者簡介
Obie Fernandez是一位廣為人知的技術行業(yè)領袖和獨立咨詢師。從20世紀80年代獲得第一臺Commodore VIC-20開始,他就一直在從事各種黑客工作。20世紀90年代中期,他終于找到了自己的位置,成為第一代Java企業(yè)項目的編程師。他于1998年移居到美國喬治亞州亞特蘭大市,并作為當?shù)匦屡d企業(yè)MediaOcean的首席架構師而聞名。他還成立了Extreme Programming(后改名為Agile Atlanta)用戶社團,并在該社團擔任了幾年的主席和組織人。
書籍目錄
第1章 Rails環(huán)境與配置 第2章 運用控制器 第3章 路由 第4章 REST,資源和Rails 第5章 探究路由選擇 第6章 運用ActiveRecord 第7章 ActiveRecord關聯(lián) 第8章 ActiveRecord驗證 第9章 ActiveRecord的高級技巧 第10章 ActionView 第11章 輔助方法 第12章 Ajax on Rails 第13章 Session管理 第14章 登錄與認證 第15章 XML和ActiveResource 第16章 ActionMailer 第17章 測試 第18章 RSpec on Rails 第19章 用插件擴展Rails 第20章 Rails生產(chǎn)環(huán)境配置 第21章 Capistrano 第22章 后臺進程 附錄A ActiveSupport API參考 附錄B Rails概要
章節(jié)摘錄
插圖:RubyonRails框架的作用在于徹底簡化了開發(fā)過程,使專業(yè)開發(fā)人員能夠更加專注子那些最重要的東西,即企業(yè)價值的傳遞。這是第一本全面而權威的指南,教你如何利用Rails開發(fā)高質量的軟件。在本書中,Rails的先驅開發(fā)者ObieFemandexz及他的專家團隊將會為你詳細闡述全部的RailsAPI,以及Ruby的各種語法、設計方法、庫和插件,正是它們令Rails變得如此珍貴。他們憑借著自己豐富的經(jīng)驗,向軟件開發(fā)團隊展示他們真正面對的挑戰(zhàn)所在,并向大家展示了如何使用Rails工具、怎樣達到最佳使用效果,以及如何構建用戶確實喜歡的杰出程序。通過使用詳細的代碼示例,Obie系統(tǒng)地說明了Rails的主要功能和各個子系統(tǒng)。他向讀者展現(xiàn)了先進的編程技巧;介紹了開源程序庫,使得Rails的應用變得更加容易;并且提供了有關測試和產(chǎn)品部署的真知灼見。它讓我們一起深入Rails的代碼庫,探索Rails為什么這樣工作,以及怎樣可以讓它按照你想要的方式進行工作。幸運的是,那些數(shù)據(jù)庫查詢的每個語句執(zhí)行的非常快,每個耗時在0,0015秒左右。這是因為MySql執(zhí)行短小的SELECF語句非常陜,而且我的Rails進程和數(shù)據(jù)庫運行在相同的物理機器之上。不過,這些積聚成堆的N+1查詢以及它們的快速增加已造成了對性能的侵蝕。除了我提到的這些不利因素,還會面對嚴重的性能問題需要解決。如果數(shù)據(jù)庫運行在獨立的機器上,對我來說每個查詢的網(wǎng)絡延遲處理問題將特別嚴重,N+1查詢問題是不可能消失的。多數(shù)時候可以在特定的find方法中通過正確的使用:include選項來緩解這個問題。分層一個設計良好的MVC應用程序會遵循相關規(guī)定,與渲染任務(視圖)相比,必然要在邏輯層(模型對象)中進行數(shù)據(jù)庫操作。一般而言,要在控制器中從數(shù)據(jù)庫中加載所有渲染所需數(shù)據(jù)。在Rails里,是通過在控制器中針對所需數(shù)據(jù)對模型對象進行查詢并將數(shù)據(jù)存儲于實例變量中再由視圖渲染宋完成的。普遍認為在對數(shù)據(jù)庫訪問期間進行渲染是一個不好的習慣。因為直接在模板代碼中調(diào)用find方法違背了固有的分層概念,而且代碼的可維護性變得非常糟糕。然而,在數(shù)據(jù)庫訪問期間進行視圖渲染將會使很多隱含的機會蔓延在你的代碼中,模型對象的封裝或許會對關聯(lián)的數(shù)據(jù)進行延遲加載(Lazyloading)。我們可以稱之為壞習慣?這很難說清楚。
編輯推薦
《Rails之道》:Ruby on Rails經(jīng)典參考用書Jolt年度技術圖書大獎獲得者深入講解Ruby on Rails框架中的各種知識點和應用新特性Rails各種API函數(shù)參考大全Ruby on Rails中文社區(qū)傾情奉獻一本書,讓你參透Ruby on Rails的世界RubyonRails框架的作用在于徹底簡化了開發(fā)過程,使專業(yè)開發(fā)人員能夠更加專注子那些最重要的東西,即企業(yè)價值的傳遞。這是第一本全面而權威的指南,教你如何利用Rails開發(fā)高質量的軟件。在《Rails之道》中,Rails的先驅開發(fā)者ObieFemandexz及他的專家團隊將會為你詳細闡述全部的RailsAPI,以及Ruby的各種語法、設計方法、庫和插件,正是它們令Rails變得如此珍貴。他們憑借著自己豐富的經(jīng)驗,向軟件開發(fā)團隊展示他們真正面對的挑戰(zhàn)所在,并向大家展示了如何使用Rails工具、怎樣達到最佳使用效果,以及如何構建用戶確實喜歡的杰出程序。通過使用詳細的代碼示例,Obie系統(tǒng)地說明了Rails的主要功能和各個子系統(tǒng)。他向讀者展現(xiàn)了先進的編程技巧;介紹了開源程序庫,使得Rails的應用變得更加容易;并且提供了有關測試和產(chǎn)品部署的真知灼見。它讓我們一起深入Rails的代碼庫,探索Rails為什么這樣工作,以及怎樣可以讓它按照你想要的方式進行工作?!禦ails之道》將幫助你解決以下問題:增強你作為網(wǎng)絡開發(fā)人員的工作效率令你體會到用Ruby on Rails進行編程的快樂學習Rails 2.0的新內(nèi)容"用TestUnlt和 Rspec促進設計進程,實現(xiàn)長期維護理解并管理Rails C ontrollers中復雜的項目流程利用Rails的支持設計完美的API掌握高深的Rails路由概念和技術對Rails路由檢測并排錯將 AcoveRecord對象關系映射的功能發(fā)揮到極致在你的Rails軟件中運用Ajax 在你的軟件中安裝登錄和授權系統(tǒng)用最好的第三方插件來擴展Rails,甚至自己編寫插件程序通過ActionMaJler:在你的軟件中整合電子郵件服務選擇合適的Rails產(chǎn)品配置用Capistrano優(yōu)化部署
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載