日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何學習Ruby-創(chuàng)新互聯(lián)

提示:本文是學習方法論,不喜勿看。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設、富平網(wǎng)站維護、網(wǎng)站推廣。

我是從06年底開始關注Ruby的,07年的時候投入到了Ruby的開發(fā)中,并持續(xù)到今天。我從畢業(yè)到現(xiàn)在,除了Ruby還使用過VB、Java、JavaScript, 大學里也學過C/匯編,因為我是學電子專業(yè)的,偏硬件一些,所以沒有很好的學習算法相關的內(nèi)容,所以本文也不會涉及算法學習的內(nèi)容, 這是我作為一個程序員的硬傷,當然我還在學習算法的路上,并未放棄它。

和大多數(shù)的Rubyist一樣,我也是從學習Rails開始去了解Ruby的,在學習Rails之前,我正在使用JavaEE的SSH框架(struts+spring+hibernate), 當時也算是Java入門的階段,并沒有做的多深,各種XML配置,搞的我眼花繚亂,對Java頓時有點絕望:是不是我以后的編程生涯就和XML打交道了呢? Rails的約定大于配置,DRY(Don't repeat yourself)等概念,深深的吸引了我,使用Rails,再也不用去煩那一大堆XML配置了,我只要專心寫我的Ruby代碼就可以了,這才是快樂的程序員嘛。呵呵,不知道有多少人和我的經(jīng)歷類似呢? 我想應該也有不少人吧。

說到Rubyist, 我曾經(jīng)也不理解,為什么叫Rubyist,而不叫Rubyer或者其他? 后來我才明白了, Rubyist,有點Artist的意味。Ruby語言算是編程領域里最具藝術氣息的了,所以我們把Ruby程序員叫做Rubyist。但實際上,很多人離真正的Rubyist還很遠,包括我自己啦。


懵懂:

正是經(jīng)歷過這個階段,所以我很了解現(xiàn)在的初學者的心情:「不是15分鐘開發(fā)一個blog嗎? Rails很好學,很好用,很好玩,我要快速精通它」。 很多Rubyist的入門書就是「Agile web development with Rails」和 「Programming Ruby」, 基本上,如果通讀這兩本書并練習以后,基本就可以上手了。當然現(xiàn)在也涌現(xiàn)出很多學習Rails的優(yōu)秀書籍,比如 「Ruby on Rails Tutorial」和最近kickstarter上面眾籌的「Learn Ruby on Rails」,還有官方的「Ruby on Rails Guides」, 在我開始學習的時候,官方的文檔可沒有這么好。

有這么豐富的資料,我們對于Rails的入門,基本沒有什么困難了。 但是你有沒有發(fā)現(xiàn),你已經(jīng)陷入了一個巨大的細節(jié)里面去了。我所說的這個巨大的細節(jié),就是指Rails。

我們最初學習Ruby的目標是掌握Rails, 所以潛意識里,Ruby的學習,放到了第二位, 而Rails成為了第一位的學習目標。在你通讀各種參考書入門之后,也許你可以開發(fā)一個簡單的web站點,也可以把自己的Rails技能運用于一般的工作中,但是你會發(fā)現(xiàn),你終會達到一個學習的瓶頸。 Rails社區(qū)的一個好處,就是有很多的Gem,各種各有的Gem讓你快速的開發(fā),但是你真正的了解這些Gem嗎?開發(fā),并不是一個簡單的功能堆砌。

當你聽說現(xiàn)在流行Cucumber,所以對自己該選用Cucumber或者是Rspec感到迷惑了起來,MiniTest的崛起,又讓你感到更迷惑了,我該用哪個?
當你聽說Rails4默認了線程安全,那么你是否知道什么是線程安全?Rails3不也是線程安全的嗎?默認的意義何在?
當你聽說sidekiq比resque更省內(nèi)存的時候,就馬上想去嘗試改用sidekiq,有沒有想過,為什么?sidekiq比resque寫的好?
。。。
等等

這個時候,我們僅停在了使用階段!因為你已經(jīng)陷入了Rails的細節(jié)里,你忽視了Ruby。

所以,此時,你僅僅是個Ruby碼農(nóng),離Rubyist,還差很遠。


深入

如你所見,你所用到的一切,都是Ruby構建起來的:Rails、Sinatra、Cucumber、RSpec、Sidekiq、Resque等。
Ruby + Web開發(fā)知識 + 架構思想 -> Rails/Sinatra
Ruby + TDD/BDD等敏捷實踐 -> Cucumber/Rspec
Ruby + 多線程/多進程并發(fā) -> Sidekiq/Resque
Ruby + Actor并發(fā)模型 -> Celluloid
Ruby + Socket+Reactor -> eventmachine/Goliath
...
等等等

所以,你要想深入掌握上述各種工具,你就需要系統(tǒng)的去學習Ruby,并且在學習Ruby的過程中,去學習相關的領域知識,這是一個良性的循環(huán)過程。

Ruby是一個面向?qū)ο蟛⑼瑫r兼有函數(shù)式編程特性的神奇語言,所以在你隨著Ruby的深入學習,你同時可以深入學習面向?qū)ο蠛秃瘮?shù)式編程兩種范式的特性。

所以,當我們說深入學習Ruby的時候,不是在說Ruby的語法該如何用,而是在說:

1 Ruby背后的設計哲學及其底層實現(xiàn)。
2 Ruby與系統(tǒng)(包括其他領域,比如web)的交互
3 Ruby如何根據(jù)它的面向?qū)ο蠛秃瘮?shù)式編程特性、及其元編程能力去構建漂亮的DSL

達到這個階段,你可能脫離了Ruby碼農(nóng)的層次,達到一個新的境界了,離Rubyist已經(jīng)很接近了。


哲學

如果說算法是一個合格的程序員必須掌握的,那么哲學,也是一個合格的程序員必須要領悟的。

我不是一個哲學大師,請不要誤會。

哲學是我們學習和解決問題的靈魂,我只在這里分享幾條我用到的哲學經(jīng)驗:

1. 重是輕的根本,靜是躁的主宰.

Ruby,只有基礎扎實了,才能用的靈活。
當我們碰到問題的時候,著急沒用,靜下心來思考,順藤摸瓜,找出問題。
當我們學習的時候,不要急于求成,靜下心來學習,慢就是快。

2. 存在即合理。

對于這句話,我的理解就是, 當程序出現(xiàn)了詭異的bug,或者,當你的項目在你機器上能用,而到服務器上不能用的時候,你應該想想,這個問題并不詭異, 程序是按你的指令執(zhí)行的,肯定是你哪里出問題了,而且可能是個嚴重的問題!請認真對待這個問題!
學習的時候,碰到一個概念,應該多想想這個概念產(chǎn)生的合理性,比如TDD/BDD, 有了TDD為什么還會有BDD?

3. 哲學經(jīng)典三問: 你從哪里來?你是誰? 你要到哪里去?

當我們學習新技術的時候,我們就該問了:
這技術是基于什么情形產(chǎn)生的,或者是這技術是為了解決什么問題而出現(xiàn)的? (你從哪里來?)
這技術是如何實現(xiàn)的?這項技術如何去使用? (你是誰?)
這技術要解決的問題是永久性的嗎?未來的發(fā)展會如何?和這種技術類似的有哪些技術,它們的發(fā)展如何?(你要到哪里去?)


總結(jié):

本文,與其說是「如何學習Ruby」,不如就說是「如何學習」,因為以上方法論,適用于你學習任何東西。


P.S 附帶「誘人的Ruby」課程規(guī)劃簡要:
如何學習Rubyrubyroadmap.png


最后,

希望大家關注微信公眾帳號:RubyStudy,與我討論任何問題,包括對本文你自己的見解。
如何學習Ruby

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。


新聞標題:如何學習Ruby-創(chuàng)新互聯(lián)
本文路徑:http://www.dlmjj.cn/article/ddeoce.html