<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Chapter 3: Ruby基礎 # 為什么Ruby? 先從另一個列子說起, 不知道大家有沒有聽說過Metasploit這一安全界的滲透測試神器。最初版本由Perl寫成,最終歷經18個月,也就是一年半,用Ruby重寫了整個版本,V3。對于為什么選擇Ruby,Metasploit團隊應該是給出了非常中肯的原因: ~~~ Metasploit的團隊成員在比較了Python、Perl和C++之類的語言之后,給出了選擇Ruby的好幾個原因。 最主要原因,就是Ruby是簡單而強大的一門解釋性語言。Ruby的內省機制非常強大,以及Ruby提供的面向對象實現也非常適合Metasploit的一些要求,比如自動化、動態的構建一些可以復用的代碼,這是關鍵因素。這是Perl等其他語言無法達到的。 其他原因就比較次要,比如最初看中了Ruby1.8的綠色線程模型的平臺無關性,當然Ruby1.9里已經是本地線程了。還有Metasploit團隊的開發人員的喜好, 他們最討厭Python的縮進語法,認為那是一種不必要的限制,以及Pthon的父類方法調用和解釋器的向后兼容等問題,也放棄了Python。還有C++,它是非解釋性語言,也滿足不了Metasploit的一些要求。 最終選擇了Ruby。 ~~~ 我為什么要舉Metasploit的例子呢? 因為我認為Metasploit和Chef很類似, 雖然他們要解決的問題不同,但是他們都是利用了Ruby的元編程及容易DSL特性來實現在自己領域的自動化的一些功能,從而解放了我們人類。甚至在web開發領域享譽盛名的Ruby on Rails框架,也是利用了Ruby這一特性,解放了開發人員。 那么,讓我們一起來學習Ruby的這些特性吧。
                  <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>

                              哎呀哎呀视频在线观看