<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 1.1 簡介 Ruby on Rails(或者簡稱“Rails”)是一個 Web 開發框架,使用 Ruby 編程語言開發。自 2004 年出現之后,Rails 就迅速成為動態 Web 應用開發領域功能最強大、最受歡迎的框架之一。使用 Rails 的公司有很多,例如 [Airbnb](http://airbnb.com/)、[Basecamp](http://basecamp.com/)、[Disney](http://disney.com)、[Github](http://github.com/)、[Hulu](http://hulu.com/)、[Kickstarter](http://kickstarter.com/)、[Shopify](http://shopify.com/)、[Twitter](http://twitter.com/) 和 [Yellow Pages](http://yellowpages.com/)。還有很多 Web 開發工作室專門從事 Rails 應用開發,例如 [ENTP](http://entp.com/)、[thoughtbot](http://thoughtbot.com/)、[Pivotal Labs](http://pivotallabs.com/)、[Hashrocket](http://hashrocket.com/) 和 [HappyFunCorp](http://www.happyfuncorp.com/)。除此之外還有無數獨立顧問,培訓人員和項目承包商。 Rails 為何如此成功呢?首先,Rails 完全開源,基于 [MIT 協議](http://www.opensource.org/licenses/mit-license.php)發布,可以免費下載、使用。Rails 的成功很大程度上得益于它優雅而緊湊的設計。Rails 熟諳 Ruby 語言的可擴展性,開發了一套用于編寫 Web 應用的“[領域特定語言](http://en.wikipedia.org/wiki/Domain_Specific_Language)”(Domain-specific Language,簡稱 DSL)。所以 Web 編程中很多常見的任務,例如生成 HTML,創建數據模型和 URL 路由,在 Rails 中都很容易實現,最終得到的應用代碼簡潔而且可讀性高。 Rails 還會快速跟進 Web 開發領域最新的技術和框架設計方式。例如,Rails 是最早使用 REST 架構風格組織 Web 應用的框架之一(這個架構貫穿本書)。當其他框架開發出成功的新技術后,Rails 的創建者 [David Heinemeier Hansson](http://loudthinking.com/) 及其[核心開發團隊](http://rubyonrails.org/core)會毫不猶豫的將其吸納進來。或許最典型的例子是 Rails 和 Merb 兩個項目的合并,從此 Rails 繼承了 Merb 的模塊化設計、穩定的 [API](http://en.wikipedia.org/wiki/Application_programming_interface),性能也得到了提升。 最后一點,Rails 有一個活躍而多元化的社區。社區中有數以百計的開源項目[貢獻者](http://contributors.rubyonrails.org/),以及與會者眾多的[開發者大會](http://railsconf.com/),而且還開發了大量的 [gem](https://rubygems.org/)(代碼庫,一個 gem 解決一個特定的問題,例如分頁和圖片上傳),有很多內容豐富的博客,以及一些討論組和 IRC 頻道。有如此眾多的 Rails 程序員也使得處理程序錯誤變得簡單了:在谷歌中搜索錯誤消息,幾乎總能找到一篇相關的博客文章或討論組中的話題。 ## 1.1.1 預備知識 閱讀本書不需要具備特定的預備知識。本書不僅介紹 Rails,還涉及底層的 Ruby 語言,Rails 默認使用的測試框架(MiniTest),Unix 命令行,[HTML](http://en.wikipedia.org/wiki/HTML)、[CSS](http://en.wikipedia.org/wiki/CSS),少量的 [JavaScript](http://en.wikipedia.org/wiki/JavaScript),以及一點 [SQL](http://en.wikipedia.org/wiki/SQL)。我們要掌握的知識很多,所以我一般建議閱讀本書之前先具備一些 HTML 和編程知識。說是這么說,但也有相當數量的初學者使用本書從零開始學習 Web 開發,所以即便你的經驗有限,我還是建議你讀一下試試。如果你招架不住了,隨時可以翻回這里,使用下面列出的某個資源,從頭學起。多位讀者告訴我,他們建議跟著教程做兩遍,第一遍畢竟學到的知識有限,但再做第二遍就簡單多了。 學習 Rails 時經常有人問,要不要先學 Ruby。這個問題的答案取決于你個人的學習方式以及編程經驗。如果你希望較為系統地徹底學習,或者你以前從未編程過,那么先學 Ruby 或許更合適。學習 Ruby,我推薦閱讀 Chris Pine 寫的《[Learn to Program](http://pragprog.com/book/ltp2/learn-to-program)》和 Peter Cooper 寫的《[Ruby 入門](http://book.douban.com/subject/3836123/)》。很多 Rails 初學者很想立即開始開發 Web 應用,而不是在此之前讀完一本介紹 Ruby 的書。如果你是這類人,我推薦你在 [Try Ruby](http://tryruby.org/) 上學習一些簡短的交互式教程,以便在閱讀本書之前對 Ruby 有個大概的了解。如果你還是覺得本書太難,或許可以先看 Daniel Kehoe 寫的《[Learn Ruby on Rails](http://learn-rails.com/learn-ruby-on-rails.html)》,或者學習 [One Month Rails](https://onemonth.com) 課程——它們更適合沒有任何背景知識的初學者。 不管你從哪里開始,讀完本書后都應該可以學習 Rails 中高級知識了。以下是我推薦的一些學習資源: * [Code School](http://www.codeschool.com/):很好的交互式編程課程; * [Tealeaf Academy](http://www.gotealeaf.com/railstutorial):很好的在線 Rails 開發訓練營(包含高級知識); * [Thinkful](http://www.thinkful.com/a/railstutorial):在線課程,和本書的難度差不多; * Ryan Bates 主持的 [RailsCasts](http://railscasts.com/):優秀的 Rails 視頻(大多數免費); * [RailsApps](https://tutorials.railsapps.org/hartl):很多針對特定話題的 Rails 項目和教程,說明詳細; * [Rails 指南](http://guides.rubyonrails.org/):按話題編寫的 Rails 參考,經常更新。[[3](#fn-3)] ## 1.1.2 排版約定 本書使用的排版方式,很多都不用再做解釋。本節我要說一下那些意義不是很清晰的排版。 書中很多代碼清單用到了命令行命令。為了行文簡便,所有命令都使用 Unix 風格命令行提示符(一個美元符號),例如: ``` $ echo "hello, world!" hello, world! ``` 在 [1.2 節](#up-and-running)我會提到,不管你使用哪種操作系統(尤其是 Windows),我都建議使用云端開發環境([1.2.1 節](#development-environment)),這種環境都內置了 Unix(Linux)命令行。命令行十分有用,因為 Rails 提供了很多可以在命令行中運行的命令。例如,在 [1.3.2 節](#rails-server)中,我們會使用 `rails server` 命令啟動本地的 Web 開發服務器: ``` $ rails server ``` 和命令行提示符一樣,本書也會使用 Unix 慣用的目錄分隔符(即斜線 `/`)。例如,演示應用中的配置文件 `production.rb`,它的路徑是: ``` config/environments/production.rb ``` 這個文件路徑相對于應用的根目錄。在不同的系統中,根目錄會有差別。在云端 IDE 中,根目錄像下面這樣: ``` /home/ubuntu/workspace/sample_app/ ``` 所以,`production.rb` 的完整路徑是: ``` /home/ubuntu/workspace/sample_app/config/environments/production.rb ``` 為了行文簡潔,我一般都會省略應用的路徑,寫成 `config/environments/production.rb`。 本書經常需要顯示一些來自其他程序(shell 命令,版本控制系統,Ruby 程序等)的輸出。因為系統之間存在細微的差異,你看到的輸出結果可能和書中顯示的不完全一致,但是無需擔心。而且,有些命令在某些操作系統中可能會導致錯誤,本書不會一一說明這些錯誤的解決方法,你可以在谷歌中搜索錯誤消息,自己嘗試解決——這也是為現實中的軟件開發做準備。如果你在閱讀本書的過程中遇到了問題,我建議你看一下[本書網站幫助區](http://railstutorial.org#help)中列出的資源。 在這個教程中我們要測試 Rails 應用,所以最好知道某段代碼能讓測試組件失敗(使用紅色表示)還是通過(使用綠色表示)。為了方便,導致測試失敗的代碼使用“**RED**”標記,能讓測試通過的代碼使用“**GREEN**”標記。 每一章都有一些練習,你可以自己決定要不要做,但推薦做。為了區分正文和練習,練習的解答不會和后續的內容混在一起。如果后面需要使用某個練習中的代碼,我會在正文中指出來,并給出解答方法。 最后,為了方便,本書使用兩種排版方式,讓代碼清單更易理解。第一種,有些代碼清單中包含一到多個高亮的代碼行,如下所示: ``` class User < ActiveRecord::Base validates :name, presence: true validates :email, presence: true end ``` 高亮的代碼行一般用于標出這段代碼清單中最重要的新代碼,偶爾也用來表示當前代碼清單和前一個代碼清單的差異。第二種,為了行文簡潔,書中很多代碼清單中都有豎排的點號,如下所示: ``` class User < ActiveRecord::Base . . . has_secure_password end ``` 這些點號表示省略的代碼,不要直接復制。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看