国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
EasyTime - Ruby學(xué)習(xí)筆記 | Agile Web Development with Rails 翻譯(一)

Agile Web Development with Rails 翻譯(一)

第一章 前言

Ruby on Rails 是個更易于開發(fā),配置,和管理Web應(yīng)用程序的框架。

當(dāng)然,所有的Web框架都會這么說。但Rails與它們的區(qū)別是什么呢?我們可以從技術(shù)做些回答。

一種途徑是查看它的體系。過去,很多開發(fā)者已遷到MVC體系來開發(fā)Web應(yīng)用程序。他們發(fā)現(xiàn)MVC可幫助它們更清晰地構(gòu)造它們應(yīng)用程序。(我們在下一章更祥細(xì)地討論MVC。)Java框架如TapestryStructs就是基于MVC的。Rails也是個MVC框架。當(dāng)你在Rails內(nèi)開發(fā)時,你的每個代碼,應(yīng)用程序的每個部分都遵循標(biāo)準(zhǔn)的方式。也就是說,你在一個被事先準(zhǔn)備好的框架內(nèi)開始的。

回答這個問題的另一個途徑是看程序語言。Rails應(yīng)用程序是由模塊化的,面向?qū)ο蟮哪_本語言Ruby寫成的。Ruby相當(dāng)簡練你可自動地,清晰地用Ruby代碼來表達(dá)你的思想。這讓程序更易寫并在日后也可以容易地閱讀。

Ruby也有與Lisp代碼類似的程序風(fēng)格。它可容易地創(chuàng)建像表達(dá)式一樣的方法。有些人使用元程序,但我們只關(guān)心對我們有用的部分。它使我們的程序簡短并更易于閱讀。它也允許我們完成在外部配置文件內(nèi)的代碼的任務(wù)??筛奖愕乜吹竭\行的工作情況。下面代碼為個工程定義了模塊類?,F(xiàn)在不要關(guān)心細(xì)節(jié)。相反,只要想下面代碼行表達(dá)的信息就可以了。

class Project < ActiveRecord::Base

belongs_to :portfolio

has_one :project_manager

has_many :milestones

has_and_belongs_to_many :categories

validates_presence_of :name, :description

validates_acceptance_of :non_disclosure_agreement

validates_uniqueness_of :key

end

或者我們可以思考地觀察它。Rails的設(shè)計由一組關(guān)鍵的概念來驅(qū)動著:DRY與配置約定(Convention over configuration)。DRV—系統(tǒng)內(nèi)每個部分應(yīng)該只在一個地方被表達(dá)。Rails使用強大的Ruby開始自己的生命。你會發(fā)現(xiàn)在Rails應(yīng)用程序中少有重復(fù);你在一個地方說你需要什么這個地方通常由MVC體系來暗示。

配置約定也是至關(guān)重要的。它意味著Rails能判斷出你的應(yīng)用程序交織在一起的每個部分的缺省值。下面是約定,并且你可以用比使用XML配置的,典型的Java Web應(yīng)用程序更少的代碼來寫一個Rails應(yīng)用程序。如果你想覆寫這些約定,Rails也可很容易地做到。

我們也要提一下Rails包括完整的支持Web服務(wù)的材料,接受郵件,AJAX(高級交互式Web應(yīng)用程序),完整的單元測試框架(包括對mock對象的透明支持),和對開發(fā),測試,生產(chǎn)環(huán)境的隔離。

或者我們談?wù)?/span>Rails具有的代碼產(chǎn)生器。它們產(chǎn)生Ruby代碼框架,然后由你填充應(yīng)用程序的邏輯部分。

最后,Rails的區(qū)別是源于它的起源—Rails是被精選出來的商業(yè)應(yīng)用程序。它傾向于創(chuàng)建一個框架的最好途徑是找到特定應(yīng)用程序的中心主題,然后在平常的代碼基礎(chǔ)內(nèi)使用它們。當(dāng)你開發(fā)你的Rails應(yīng)用程序時,你是在現(xiàn)有的一個很不錯的應(yīng)用程序上開始的。

但是有關(guān)Rails的有些事情描述起來很困難。不會知道原因,只是感覺到這是對的。當(dāng)然,你必須接受我們說話,直到你可以自己寫一些Rails應(yīng)用程序之前(應(yīng)該是下個45分種或更多…)。這就是本書能談的所有東西。

 

-----------------------------------------------------------------------------------

Dave喜歡Rails的十個主要原因

------------------------------------------------------------------------------------------

1. 可敏捷地進行Web開發(fā)。

2. 可以創(chuàng)建干凈,整潔的Web頁面。

3. 只關(guān)注于創(chuàng)建應(yīng)用程序,而不是框架的什么東西。

4. 方便地管理應(yīng)用程序的增長。

5. 可更大限度地滿足客戶的要求。

6. 內(nèi)建的測試容易使用。

7. 立即反應(yīng):在瀏覽器上可編輯代碼,及時刷新所有的更改。

8. 元程序(Metaprogramming)意味著我可以在真正的高級別上編程。

9. 代碼產(chǎn)生器可讓我們事半功倍。

10. 不需要XML!

-------------------------------------------------------------------------------

 

1.1 Rails 是敏捷的

本書的標(biāo)題是Agile Web Development with Rails。那么你可能會驚訝,我們沒有明確地將Rails代碼區(qū)分成X,Y,Z部分。

這是因為兩者即簡單又微秒。Rails構(gòu)造的一部分就是敏捷。

讓我們看看在Agile Manifesto網(wǎng)頁上,有一組四個參數(shù)的狀態(tài)值,就是下面敏捷開發(fā)的好處。

1、單獨地和交互式的處理過程及工具。

2、開發(fā)軟件有全面的,廣泛的文檔。

3、合約協(xié)議上的消費者合作。

4、Responding to change over following a plan

Rails的所有部分都是單獨的和可交互的。沒有笨重的工具集,沒有復(fù)雜的配置,也沒有難懂的程序。只有少數(shù)開發(fā)者,它們喜愛的編輯器,和一組Ruby代碼。這會產(chǎn)生這樣的透明度,開發(fā)者做的事情會立即被反射,并使用戶看到所做的事情。這是根本的交互式過程。

Rails的文檔無可指責(zé)。Rails使它可輕易地為你代碼創(chuàng)建HTML文檔。但是Rails開發(fā)處理并不受文檔驅(qū)動。在Rails的工程中,你幾乎找不到500頁以上說明書。相反,你會發(fā)現(xiàn)一組用戶和開發(fā)者會共同地探究它們的需要,以及對這個需要的可能的處理方式。你也會發(fā)現(xiàn)開發(fā)者和用戶會變得對解決它們曾試著解決的問題更有經(jīng)驗。你可以在開發(fā)周期內(nèi)找到早期的軟件框架。這個軟件可能粗糙但實用,它讓用戶一接觸它就知道你拿來的是什么。

Rails以這種方式鼓勵消費者協(xié)作。當(dāng)消費者看到Rails工程如何快速地響應(yīng)修改時,他們開始相信我們可以完成他們想要的東西,而不只是它們要求的東西。Confrontations are replaced by “What if?” sessions.

That’s all tied back to the idea of being able to respond to change. The strong, almost obsessive, way that Rails honors the DRY principle means that changes to Rails applications impact a lot less code than the same changes would in other frameworks. And since Rails applications are written in Ruby, where concepts can be expressed accurately and concisely, changes tend to be localized and easy to write. The deep emphasis on both unit and functional testing, along with support for test fixtures and mock objects, gives developers the safety net they need when making those changes. With a good set of tests in place, changes are less nerve-wracking.

Rather than constantly trying to tie Rails processes to the agile principles, we’ve decided to let the framework speak for itself. 就像在此書讀到的那樣,在你腦中想像以這種方式開發(fā)你自己的Web應(yīng)用程序:與你的客戶工作在一起,并共同決定應(yīng)該優(yōu)先解決的問題。然后,你回過頭來看參考資料,看Rails的基礎(chǔ)結(jié)構(gòu)如何可使你快速地解決你客戶的問題。

One last point about agility and Rails: although it’s probably unprofessional to mention this, think how much fun the coding will be.

 

1.2 尋找你自己的學(xué)習(xí)方式

本書比我們想像的要厚一些?;剡^頭看看,它比我們曾寫的兩本書要清晰得多:一個教程和一個Rails的細(xì)節(jié)指南。

本書的前兩部分是對Rails背后概念的一些介紹,并還有個例子我們構(gòu)建了一個簡單的在線商店。如果你想更多地感覺Rails程序,可從個地方開始。事實上,大多數(shù)人更喜歡依照書上來構(gòu)建應(yīng)用程序。如果你不想輸入所有東西,你可以下載源碼。

本書173頁開始的第三部分,是Rails的所有工具和函數(shù)的細(xì)節(jié)。在哪里你可以找到Rails各種組成的用法以及如何有效地,安全地配置你的Rails應(yīng)用程序。

依據(jù)這種方式,你會看到我們采用的各種約定。

活動代碼:

我們提供大多數(shù)完整的代碼片斷,你可下載并運行的例子。如果列出代碼可下載,我們會在頁邊緣標(biāo)記它。

class SayController < ApplicationController

end

Turn to the cross-reference starting on page 512, look up the corresponding number, and you’ll find the name of the file containing that piece of code. If you’re reading the PDF version of this book, and if your PDF viewer supports hyperlinks, you can click on the marker in the margin and the code should appear in a browser window. Some browsers (such as Safari) will mistakenly try to interpret some of the templates as HTML. If this happens, view the source of the page to see the real source code.

Ruby 提示:

雖然你需要知道用于寫Rails應(yīng)用程序的Ruby,我們認(rèn)識到,讀這本書的很多將同時即學(xué)Ruby也學(xué)Rails。467頁的附錄A是對Ruby語言的個簡短介紹。當(dāng)我們第一次使用特定的Ruby結(jié)構(gòu)時,我們將交叉引用附錄內(nèi)的東西。例如,這一段包含了使用:name,一個Ruby符號的理由。按頁邊緣的指示你可以469頁找到有關(guān)符號說明。如果你不了解Ruby,或者如果你需要一個快速參考,你可能想在接觸更多的特性之前讀467頁附錄A。那兒有本書的大量代碼

David ...

現(xiàn)在和以后你會經(jīng)常遇到David注釋。David Heinemeier Hansson會給你一些Rails的具體特征的解說基本原理,技巧,推薦,等等。

Joe ...

Joe, 是個虛構(gòu)的開發(fā)者,有時候會提出文章內(nèi)我們談到東西的一些問題,我們會試著回答這些問題。

本書不是Rails的參考手冊。我們在文章中通過例子顯示它的大多數(shù)模型和方法,但我們不能在上百頁中列出API。我們這么做的理由是你安裝Rails時,你就在哪兒得到了文檔,它生成文檔比本書的更詳細(xì)。如果你使用RubyGems(我們推薦你用它)來安裝Rails,簡單地啟動Gem文檔服務(wù)(使用命令gem_server),然后你就可以通過在瀏覽器中輸入http://localhost:8808來訪問RailsAPI了。

 

Rails 的版本

本書的文檔是Rails1.0,它是在2005年中旬才可用的。盡管本書第一次開印是2005年六月。為了更及時,本書的API多用于Rails1.0。代碼在0.131.0上測試過。

 

1.3 感謝

This book turned out to be a massive undertaking. It would never have happened without an enormous amount of help from the Ruby and the Rails communities. It’s hard to list everyone who contributed, so if you helped out but your name doesn’t appear here, please know that it’s a simple oversight.

This book had an incredible group of reviewers—between them, they generated over 6 megabytes of comments. So, heartfelt thanks to

Alan Francis, Amy Hoy, Andreas Schwarz, Ben Galbraith, Bill Katz,

CarlDearmin, ChadFowler, Curt Micol, David Rupp, David Vincelli,

Dion Almaer, Duane Johnson, Erik Hatcher, Glenn Vanderburg,

Gunther Schmidl, Henri ter Steeg, James Duncan Davidson,

Johannes Brodwall, John Harechmak, John Johnson, Justin Forder,

Justin Gehtland, Kim Shrier, KrishnaDole, LeonBreedt,

Marcel Molina Jr., Michael Koziarski, Mike Clark, Miles K. Forrest,

Raymond Brigleb, Robert Rasmussen, Ryan Lowe, Sam Stephenson,

Scott Barron, Stefan Arentz, Steven Baker, Stian Grytøyr,

Tait Stevens, Thomas Fuchs, Tom Moertel, and Will Schenk.

Rails was evolving as the book was coming together. As a result, the good folks in the Rails core team spent many hours answering Dave’s questions and generally sympathizing. (They also spent many hours tormenting me by changing stuff I’d just documented, but we won’t go into that here.) A big thank you to

Jamis Buck (minam), Jeremy Kemper (bitsweat),

Marcel Molina Jr, (noradio), Nicholas Seckar (Ulysses),

Sam Stephenson (sam), Scott Barron (htonl),

Thomas Fuchs (madrobby), and Tobias Lütke (xal).

Nathan Colgate Clark responded to a plea on the Rails mailing list and produced the wonderful image we use for the David Says... boxes.

Justin Forder did a great job of fixing up Dave’s anemic style sheets for the Depot application.

Thousands of people participated in the beta program for this book. Thank you all for taking the chance. Hundreds of these people took time to enter comments and errata on what they read. This book is better for it.

Last, but by no means least, we’d like to thank the folks who contributed the specialized chapters to the book: Leon Breedt, Mike Clark, Thomas Fuchs, and Andreas Schwarz.

 

From Dave Thomas

My family hasn’t seen me for the last eight months. For their patience, support, and love, I’m forever grateful. Thank you Juliet, Zachary, and Henry.

 

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
譯言網(wǎng) | Web發(fā)展史上的十大里程碑
Ruby on Rails 之 Oracle 應(yīng)用:簡易教程
Web開發(fā)在2015年及未來的發(fā)展趨勢
對 5 個 Go Web 框架的調(diào)查
為有抱負(fù)的開發(fā)者推薦的最佳 10 門編程語言
ruby ide
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服