【轉貼】Ruby On Rails 網站開發感悟

原帖地址: http://dev.csdn.net/author/koalant/9cb229dc3f3c41d7828f0a9b9cb41b57.html

獨自一人花費了將近三個月的時間來作一個音樂網站(http://www.likenote.com ), 這對任何一個有過幾年Web開發經驗的人來講都不是件什麼太難的事。雖然我也作了 4 年J2EE開發,但仍是頭一次使用全新技術來製做一個網站,這其中的辛苦卻有點出乎個人意料以外。我大部分編程經驗在 Windows 平臺上,而這以前通過一番考察肯定的技術方案,從操做系統,數據庫,Web 服務器,到後臺技術都是我不熟悉的。html

只裝過幾回 Redhat Linux 我忽然要去管理一個 Unix 服務器,還要做性能優化,編譯內核,學習防火牆技術。
只使用過 Windows 版本的 Mysql 的我要去管理一個從未使用過的開源數據庫。
只裝過 Windows 版本的 Apache 的我要去配置一個徹底陌生的 Web 服務器。
只撰寫過一篇 Ruby on rails 文章的我(RoR 的經驗僅僅限於那篇 Oreily 的教程),要使用它去開發一個完整網站。前端

雖然這並不是很困難的事情,可是須要的是時間,我定下的開發時間是兩個月,結果超出了一個月,實際花費在 ROR 開發上的時間只有3個多星期(RoR 的開發效率可見一斑),大部分時間在學習,學習上述的各類知識,它們對我來講都是陌生的,其中花費在學習服務器管理的時間就有一個多月,Rails 的學習花費了半個月(固然是讀那本 Rails Book, 還有 Rails Recipes),還有 web 服務器和數據庫也花費了一點時間。雖然網站的雛形已經出來,並且已經上線,可是我感受真正的工做纔開始。這將近三個月的學習和開發,本身總結了一些經驗, 對於那些打算獨自開發 Web 項目的人可能有些借鑑做用。java

1:首先也是最重要的一點:
作一件事情的熱情遠比完成它所須要的技術更加劇要。
若是沒有熱情,就算是碰到一點小困難,你也會放棄,相反,就算是再大的困難你也能克服。程序員

2:儘可能不要到國內的任何技術論壇去提問,這既浪費本身的時間,也浪費別人的。
由於一般簡單的問題搜索網絡就能找到,反倒會招來嘲笑;複雜的問題也不會有人給你解決,一般論壇上也可能解決不了。最好的方式是本身從 Google 上搜索。(這是經驗談)web

3:CSDN 上的這篇文章很是好,雖然是轉載自國外的。
http://java.csdn.net/n/20060710/92484.htmlsql

其中我對第 6,11,15 條的感觸最深。引用以下數據庫

15. "Build, learn, and make mistakes as you go--you'll know more about what you're doing as you're doing it, instead of before you do it." - Jason Fried, 37 Signals, advocating iterative development


「一邊作,一邊建造、學習和犯錯誤——對你正在作的事情,你只有作了纔會懂得更多,而不是事前空想。」——37Signals的Jason Fried鼓吹反覆前進



註解:編程

國內程序員之間喜歡談論技術的人多,真正悶頭作事的人太少;各類論壇上相互爭吵,辯論的多,寫代碼的人少。我也曾經是這樣的人,不少東西都是停留在 想法上,開始對 RoR 的顧慮也不少,性能啊,擴展啊。在網上搜索到不少這樣的辯論,曾經動搖過我使用 ROR 的決心, 可是最終開發效率這一點最終佔了上風。 其實仔細想一想,你若是不喜歡一個東西,會找出有不少緣由,若是喜歡它,一條理由就足夠了。邊學習邊作的確是個好的方式,應該算是 Agile 的工做方式吧。那些考察討論再三再開始作事的方式道象是 RUP 了。瀏覽器


11. "I like Google the best, they're the cleanest. Others are trying to take your attention away from what you're trying to focus on so it's counter productive to go to those sites." - Sasha, age 18, explains why it's smart to adapt to your customers instead of forcing them to adapt to you


「我最喜歡Google,由於他們最乾淨。其餘的網站則試圖把你的注意力從你想要關注的東西移開。去那些網站不會有任何收穫。」——18歲的Sasha指出,適應用戶的習慣比起強迫用戶去適應你的習慣要聰明得多

6. "Traditionally, people think more is better. More may work, but it's painful, expensive, very cold-war. Think about one-downing people, underdoing your competitors." - Fried coins some new verbs


「傳統上,人們認爲多就是好。多也許能行,但它是費力的和昂貴的,充斥着冷戰思惟。想一想看,可不能夠向用戶少提供些功能,比競爭對手更簡單一點。」——Fried創造了一些新提法

這兩條的理念是相同的,因此放在一塊兒註解
註解:
這點的確很重要,我在開來始作網站的時候,界面設計選用了很複雜的頁面模板,想到各 種花哨的技術來堆砌它。後來以爲人家來你網站無非是推薦音樂,聽音樂,評論,搜索,真正常常操做的就是這麼一些簡單功能,鼓搗花哨概念和技術的想法可能從 最開始就是在遠離你的用戶。這的確是應該儘可能避免的,若是不是讀到這條,我可能也不會中途改版。性能優化


3:Ajax 看上去很美,可是它應該限制在某些特定功能的網站上(好比 Gmail, Google Map),整個網站採用它應該是不合適的。並且瀏覽器之間兼容的問題的確仍是存在的。RoR 提供了很是簡單的 Ajax 使用方式,有時候你會忍不住去採用它(Rails Recipes 這本書上充滿了各類「奇技淫巧」),可是在作以前千萬要考慮一下,這樣作是否會給你的頁面帶來複雜性和服務器性能上的問題。在開發這個網站的開始,我也試 驗了不少 RoR 的Ajax 技術,可是後來都取消了,只保留了一個最簡單的首頁「最新留言」的動態顯示功能。由於這個功能的確頗有用。我將網站定位爲一個多媒體的應用,因此採用 Flash RIA 來製做前端可能會更好, 整個網站採用 Flash 作前臺比整個網站採用 Ajax 作前臺更合理。緣由以下:
1:Flash 比 Ajax 更成熟
2:Flash 有組件

4:若是你一我的製做整個網站,那麼採用 RoR 是很是好的選擇,緣由固然是開發效率。整個網站從最開始有想法,到最終完成花費了三個月,其中學習時間佔據了大部分,那麼幾個星期的開發時間就至關緊張 了,若是採用 Java 可能根本沒法想象。 其實搭建這麼個音樂網站的想法,早在2001年就有了,我前後在論壇上推薦了四年的音樂,兩年在博客上寫音樂推薦。這期間我不是沒有本身開發一個網站的想 法,可是用 Java 實現起來太麻煩,我不少想法只是停留在腦海中,大部分時間用在考慮實現了,再加上我是個極爲懶惰之人,看到那麼麻煩的事情就不作了,直到 RoR 的出現,才使得這個網站得以完成。RoR 的好處在於:若是你有什麼想法,你老是能很快的實現,只要你掌握了基本的技術,你就能夠發揮你的想象來建設你的網站。 首頁上泡泡框顯示訪客留言摘要的功能是我在一天早上5點醒來的時候想到的,爬起來用了兩個小時就完成了它,不少人反映這個東西很好玩。

5:Web 2.0 的網站如今實在是太多,已經把整個市場搞壞了,前幾天一個之前公司的朋友和幾我的一塊兒開了個公司,也是作 web 2.0 網站的,興高采烈地把剛剛上線的網站地址給我,我一看,又是這種似曾相識的模板,似曾相識的應用。這種 Web2.0 站點的趨勢就是:早期的ewb2.0國內站點抄襲國外的知名站點,後來的新進者抄襲國內已經成名的web2.0站點。若是這樣的網站也有人投資那才叫怪 了。 原本我也有開發網站尋找投資的想法,可是實在是想不出什麼贏利模式,我也作不來這些寫計劃書的事情,仍是本身憑興趣作的好玩。朋友都說個人網站頁面不適合 商業站點,讓我趕忙換了,我內心很清楚什麼是他們說的商業頁面模板,可是他們都說好,可我偏不喜歡。無法,仍是按照個人想法來改造它吧。只要本身上班找個 工做養活這個網站,或者更好的狀況是,它能本身維持本身,這我就心滿意足了。

6:如今的 RoR 實在是太火了,大有你們同上一條船的架式,搞 RoR 的人以它爲榮,以搞 Java 爲恥,估計也能寫出個八榮八恥。可是它只是一種技術,衆多後臺技術中的一種,網站的訪問者並不會由於你使用了 RoR 就給你掏錢,甚至是留下個好印象。網站的內容是主要的,掌握了它並不意爲着能製做一個好網站。常言說:擁有榔頭並不意爲着你就是個建築師 ,也不能讓滿地都是釘子。要麼你去給人敲釘子爲生,或者指導別人如何敲釘子,再或者找到一個好木場本身建個房子。「去 RoR 化」多是我要作的下一個工做,把前臺用 Flash 重建,採用 RoR 的 builder view 技術來傳遞信息。我我的感受這個音樂網站有個好的想法,無論它是否能掙錢。首先是音樂推薦的確能給人帶來快樂,作這樣的網站纔有趣。技術應該是實現你想法 的工具,若是網站成爲技術的試驗品,對我來講就沒有什麼意思了。

相關文章
相關標籤/搜索