成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于Ruby/RoR我的體驗和看法

開發 后端 前端
在所有關于Ruby優點中,我唯一不能認同的是"學習曲線平緩",事實上,Ruby的學習難度比較高,確實遠遠高于PHP,要說平緩,大概是相對于J2EE的平緩。我相信這是很多對Ruby誤解和攻擊的來源.

這幾天在twitter上說到不少Ruby到底好不好的事情,總結一下,寫了這個blog。

今年年初開始我打算深入體驗一下Ruby on rails,對我來說,已經很多年沒有接觸"新語言"了。在這個深入體驗開始之前的幾年,也有若干次淺嘗輒止,基本都是玩了幾下,覺得要學的東西真多,用PHP順手寫一個也很簡單嘛,就放棄了。

但我想一個東西迅速風靡世界一定是有原因的,就算我最終不去真正使用它,弄清楚背后的原因也是值得的。于是我就放下了老程序員的心態,像一個初學者一樣從最基本的文檔看起,嘗試各種大家稱贊的項目,搞不懂的地方就去問熟悉Ruby的人,不僅問如何實現,還要問"為什么會這樣","過去什么樣","其他語言解決某個問題的方法在這里如何對應"。幾個月下來,雖然我還沒能用ror真正開發一個完全獨立的項目,但總算是有了一個全貌的概括性了解,也知道了歷史和文化,體會了社區的氛圍。這個時候,我想大概是可以對rails發表一些評論了。

在這一次嘗試之前,我最擔心的事情是"性能問題",現在看來這是一個偽問題,首先Ruby的性能并沒有這么差(前幾年確實不太好,不過現在已經很好了);其次,用來做一個網站應用,無論是什么語言,最后都要依靠緩存和分布來解決,也就是說最終都要依賴于正確的系統架構,而不是語言本身的性能;最后,就算是性能真的差又完全不可解決的問題,完全可以用效率更高的語言來寫,把處理的結果通過各種通訊方式交給Ruby就是了。在計算機硬件發展到今天這樣,性能問題大多不存在,只有架構師水平的差距。我見過很多用了幾十臺機器的系統但抗不住幾十萬的負載,這能怪語言和平臺本身的性能差嗎?

在所有關于Ruby優點中,我唯一不能認同的是"學習曲線平緩",事實上,Ruby的學習難度比較高,確實遠遠高于PHP,要說平緩,大概是相對于J2EE的平緩。我相信這是很多對Ruby誤解和攻擊的來源,從表面上看起來,要學會Ruby尤其是ror,至少需要理解設計模式,知道服務器系統的運作方式,甚至需要熟悉操作系統,要用好ror,更需要接觸各種項目和各種標準,這些都需要花去很多學習時間。同時配合的還有各種測試工具,部署工具,雖然不是必須,但最終還是要學的(這里我還欠缺很多呢)。我曾經開玩笑說Ruby社區的人破壞了英語的純粹性,因為他們fork新項目太容易,大家都喜歡創造各種開源項目,直接符合功能的名字都被用光了,于是只好用各種奇怪的相關的英語單詞,以至于搜索很多英文單詞竟然會找出來Ruby的項目。這些東西直接塞給一個初學者確實有很大的壓力。Ruby on rails的Getting start又太停留在表面,勉強算是嘗鮮,距離真正實用差的太遠。相對來說,PHP就簡單多了,頁面直觀對應在PHP文件上,什么都不用懂也能寫(當然寫好也很不容易),這造成的結果就是誰都可以懂PHP,但不是誰都能懂Ruby。人們為了掩蓋學習的痛苦,就容易去攻擊對方無用。在我這次下決心深入學習之前,我也覺得PHP最好,記得之前某次嘗試的時候 @rainux跟我說,剛剛上手是很難感覺到ror的好處,需要持續用一段時間才會慢慢發現。

ror在架構和開發流程管理也堅定的支持了很多理論,比如MVC,比如敏捷,比如TDD...這些同樣增加了學習成本,當然也增加了被攻擊的接口,比如:TDD太扯淡了,所以ror也扯淡。或者:我最討厭敏捷了,所以也討厭ror。實際上,敏捷和TDD本身都沒錯,他們都有成熟的方法論和實踐,有足夠好的工具配合,能解決很多問題。如果不認同這個,只能說是開發和項目管理經驗太少,沒碰上過復雜問題。有錯的是對敏捷和TDD的錯誤鼓吹,兩者不能混在一起。

另外一個常見說法是尋找Ruby的大流量項目案例。但其實尋找Ruby開發的"top項目"沒意義。DHH和37s創造的都不是適合所有人的產品,他們只愿意在某一領域做到最好。不是所有人都有興趣創造億級別產品,何況也沒幾個人真能做成。對大部分項目,千萬是一個很好的級別,那是ror最佳實踐領域,而在現實中,大部分項目能做到100萬pv,已經算了不起了,想億級別pv的技術方案未免過早了。

在組織技術團隊的問題上,流行語言的難度是差不多的,10個人的團隊任何語言都很容易組織起來,但換個角度看,任何語言也很不容易組織10個人的團隊,只不過難的方法不一樣。A語言可能是找人難,一周就收到1份簡歷,B語言可能是鑒別難,一天收到200份簡歷,看都看不過來。其實最難的事情是組織一個10個人的靠譜團隊,這個團隊用什么語言相對于尋找10個靠譜的人的難度可以忽略不計。

選擇一個語言,并不是選擇語言本身,同時也是選擇社區。Ruby社區的活力,友好,規整,統一的審美,給我留下了非常深刻的印象。DHH和37s對這個社區影響巨大,我也相信他們的理念,小公司未必不好,小公司未必不偉大,追求pv不如追求極致的產品。我們創造一個產品,是為了解決一類人的問題,并不是為了超越誰或和誰競爭。

15年前,PHP 3.0之前的版本完全不可用(當然,那時候PHP的簡稱還叫做Personal HomePage),那時候用c寫cgi/isapi或者用perl是網站最常見的開發形式。那時候說PHP是下一代語言,很多程序員都會不同意,他們會挑出來PHP一萬個不如c或者不如perl的地方。這些都沒錯,但世界是會變化的。PHP今天確實成了一種應用廣泛,老幼皆宜的語言。我并不認為未來Ruby會取代PHP,但至少,我認為下一代高質量的互聯網產品出現在Ruby社區的機會更大,這就像當年PHP vs perl一樣,乃大勢所趨。

最后我說一句可能不太好聽的話,如果你沒有下決心轉型成為一個寫信教主那樣的專門忽悠的人,如果你還覺得技術有點意思,還想自己創造點產品,那么應該保持足夠的技術敏感力,認真的學習一些新東西,而不是給自己尋找各種借口。就像這張漫畫一樣。要多問問自己,是這東西真的不好,還是自己學不進去了?當然,承認后者是很難的。一年前我也確實沒學進去。
 

原文鏈接:http://blog.devep.net/virushuo/2011/03/23/rubyror.html

【編輯推薦】

  1. Ruby趨于人性化 比Python更易閱讀?
  2. 解讀Ruby on Rails的成功秘籍
  3. 加速Ruby on Rails 消除N+1查詢問題
  4. 基于Ruby On Rails開發高品質Web應用
  5. 跑起來吧 Ruby on Rails開發初體驗
責任編輯:陳貽新 來源: 霍炬的博客
相關推薦

2009-07-06 08:50:01

靜態頁SEO看法

2014-07-29 11:35:34

2014-08-20 16:37:51

2017-11-06 10:50:49

服務器區域

2012-07-26 13:18:15

開源系統

2025-02-10 06:50:00

AIDeepSeek推理模型

2014-06-04 10:48:38

Swift蘋果iOS

2018-03-22 15:36:26

程序員RubyiOS

2020-09-17 06:45:55

DAMA數據管理

2021-01-05 14:44:39

比特幣加密貨幣黃金

2009-08-05 11:30:08

2011-04-29 11:14:34

投影機

2012-10-19 09:27:23

Ruby

2018-04-15 16:11:57

RubyMatz語言

2012-12-07 11:32:33

Exchange 20

2014-01-03 13:50:06

2014-05-16 14:18:08

OONE手機隱私

2009-07-17 17:00:13

在JRuby下將RoR

2015-10-21 11:01:23

OpenStack貢獻代碼開源

2021-03-28 20:58:25

Go語言線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人在线网 | 亚洲va在线va天堂va狼色在线 | 国产清纯白嫩初高生视频在线观看 | 99福利视频 | 成人国产午夜在线观看 | 中文字幕国产一区 | 国产精品一区二区三区在线播放 | 国产欧美在线 | 紧缚调教一区二区三区视频 | 精品国产青草久久久久福利 | 91精品国产高清久久久久久久久 | 精品久久久久久亚洲精品 | 日本一二三区高清 | 中文字幕在线观看一区 | 国产一区二区精华 | 中文字幕第49页 | 久久精品国产清自在天天线 | 亚洲高清网 | 国产中文在线观看 | 国产精品久久久久久久 | 国产精品久久久久久久岛一牛影视 | 日韩伦理一区二区 | 国产不卡在线播放 | 日韩欧美福利视频 | 亚洲国产精品久久 | 99re视频在线免费观看 | 亚洲深夜福利 | 99精彩视频| 国产精品一区在线观看你懂的 | 亚洲国产成人精品女人久久久 | 91亚洲国产 | 久久精品亚洲 | 亚洲人成在线观看 | 91不卡 | 精品国产乱码久久久久久久久 | 99久久精品国产一区二区三区 | 国产偷久久一级精品60部 | 日韩电影一区 | 亚洲欧美在线视频 | 中文字幕一区二区三区不卡 | 国产精品久久久久一区二区三区 |