下一個項目,你會嘗試用Rails嗎?

Rails (Ruby on Rails - 基於Ruby語言的一個Web應用框架,類似Java裏的Struts,Spring,Hibernate等框架)

目的

其實我寫這篇文章的目的並不是想把Java程序員拉到Ruby陣營中來,只是想讓Java程序員們知道在有些情況下,Rails可能是一個更好的選擇,並且通過學習Ruby會加深對Java語言的理解,也希望通過這篇文章能讓您知道敏捷開發的魅力。

剛開始接觸Ruby很抵觸

在剛進入Rails的世界的時候,對於有4年JAVA開發經驗的我來說,對Rails的抵觸心理還是挺強的,原因有兩個:

1.想精通一門語言,不想分散精力,而且認爲Java是很完美的

2.看了下Ruby的語法,感覺非常亂,不像Java那樣規整,簡單

我相信也有大部分Java程序員會和我有同樣的感受。由於後面有一個項目由Rails實現是最佳選擇。所以迫不得已開始學習Rails,看的書是《Agile Web Development with Rails 3rd_Edition》。

對Rails觀點的轉變

看了三章後,發現用Rails去實現一個Web應用是如此的簡單,幾十行代碼就實現了Java幾百行代碼的功能。所以非常好奇的繼續看下去,想知道爲什麼可以這麼簡單。通過學習慢慢發現了不少Rails的好處。

習慣約定優於配置

在Rails裏沒有很多的配置文件要去寫,我想Java程序員最大的痛苦之一就是XML配置文件了,不小心寫錯了也不好調試,不知道問題出在哪裏。 之前Struts+Spring+Hibernate非常流行,要實現一個簡單功能,你要配置幾個XML文件?但在Rails裏,使用約定就行了,當有特 殊情況時,再去修改配置。

代碼簡潔

發現同樣實現一個功能,代碼量是Java的1/3左右,甚至還要少。

對Rails越來越有好感,並且喜歡上它了。

如何進行敏捷開發

敏捷開發   Agile development )是一種以人爲核心、迭代、循序漸進的開發方法。

後來我們團隊用Rails做了三個成功的項目,一個在線CRM應用,體會到了敏捷開發的好處。

結對編程

我們是兩個人結對編程,做任何事情都是Pair的,包括分析、寫測試、寫實現代碼或者重構。Pair做事有很多好處,兩個人在一起探討很容易產生思想的火花,也不容易走上偏路,還會及時發現一些小Bug。

重構

相信大家對它都很熟悉了,有很多很多的書用來介紹重構,最着名的是Martin的《重構》,Joshua的《從重構到模式》等。重構是在不改變系統 外部行爲下,對內部結構進行整理優化,使得代碼儘量簡單、優美、可擴展。我們經常會重構,好處就是項目代碼一直是非常容易維護的。

小版本發佈

在敏捷開發中,不會出現這種情況,拿到需求以後就閉門造車,直到最後纔將產品交付給客戶,而是儘量多的產品發佈,一般以周、月爲單位。這樣,客戶每 隔一段時間就會拿到發佈的產品進行試用,而我們可以從客戶那得到更多的反饋來改進產品,不會發生客戶說“這不是我想要的東西!" 的情況。

客戶一起參與

客戶是與開發團隊一起工作的,團隊到客戶現場進行開發或者邀請客戶到團隊公司裏來開發。如果開發過程中有什麼問題或者產品經過一個迭代後,能夠以最快速度得到客戶的反饋。

敏捷開發過程與傳統的開發過程有很大不同,在這過程中,團隊是有激情有活力的,能夠適應更大的變化,做出更高質量的軟件。

性能

據robbin說:“JavaEye的PV到了140萬,仍然是單臺Web服務器,Rails處理動態請求超過340萬,除了真實用戶訪問,還有API,RSS以及很多爬蟲的請求。”

易趣,阿里巴巴剛開始也都用的PHP,國外的Twitter也用的是 Rails,我們在做了三個企業級項目和一個SaaS的CRM(WorkXP)之後,我們都沒發現很多人所擔心的性能問題,所以大家不用急着擔心性能問題,如果真到了有性能問題的時候,說明你已經非常成功了,到那時再遷移到Java平臺也來的及。

小團隊的最佳選擇

我非常同意JavaEye的robbin觀點:“我認爲目前小公司唯一的活路就是高效率的小規模團隊,這樣的團隊才能充分發揮小公司靈活創新的特點,纔有可能在某些方面戰勝大公司,也纔有可能在人才競爭方面勝出。”

WorkXP只有2個開發人員,用了3個月的時間就上線了!爲什麼可以這麼快完成這麼優秀的產品?這正是Rails敏捷開發帶來的好處。如果用Java開發,我不知道半年是否可以上線? 所以如果你是小團隊創業,可以考慮用Rails敏捷開發。

下一個項目,嘗試用Rails嗎?

現在我們再打算做一個項目或產品時,會多了一個選擇,用J2EE還是Rails?這個要根據團隊實際情況和項目需求來定,如果是小團隊創業,試一下Rails的敏捷開發吧,一定會給您帶來不少的驚喜!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章