獨自一人花費了將近三個月的時間來做一個音樂網站(http://www.likenote.com ), 這對任何一個有過幾年Web開發經驗的人來說都不是件什麼太難的事。雖然我也做了 4 年J2EE開發,但還是頭一次使用全新技術來製作一個網站,這其中的辛苦卻有點出乎我的意料之外。我大部分編程經驗在 Windows 平台上,而這之前經過一番考察確定的技術方案,從操作系統,數據庫,Web 服務器,到後台技術都是我不熟悉的。
只裝過幾次 Redhat Linux 我突然要去管理一個 Unix 服務器,還要作性能優化,編譯內核,學習防火牆技術。
只使用過 Windows 版本的 Mysql 的我要去管理一個從未使用過的開源數據庫。
只裝過 Windows 版本的 Apache 的我要去配置一個完全陌生的 Web 服務器。
只撰寫過一篇 Ruby on rails 文章的我(RoR 的經驗僅僅限於那篇 Oreily 的教程),要使用它去開發一個完整網站。
雖然這並非很困難的事情,但是需要的是時間,我定下的開發時間是兩個月,結果超出了一個月,實際花費在 ROR 開發上的時間只有3個多星期(RoR 的開發效率可見一斑),大部分時間在學習,學習上述的各種知識,它們對我來說都是陌生的,其中花費在學習服務器管理的時間就有一個多月,Rails 的學習花費了半個月(當然是讀那本 Rails Book, 還有 Rails Recipes),還有 web 服務器和數據庫也花費了一點時間。雖然網站的雛形已經出來,而且已經上線,但是我感覺真正的工作才開始。這將近三個月的學習和開發,自己總結了一些經驗, 對於那些打算獨自開發 Web 項目的人可能有些借鑑作用。
1:首先也是最重要的一點:
做一件事情的熱情遠比完成它所需要的技術更加重要。
如果沒有熱情,就算是碰到一點小困難,你也會放棄,相反,就算是再大的困難你也能克服。
2:儘量不要到國內的任何技術論壇去提問,這既浪費自己的時間,也浪費別人的。
因為通常簡單的問題搜索網絡就能找到,反倒會招來嘲笑;複雜的問題也不會有人給你解決,通常論壇上也可能解決不了。最好的方式是自己從 Google 上搜索。(這是經驗談)
3:CSDN 上的這篇文章非常好,雖然是轉載自國外的。
http://java.csdn.net/n/20060710/92484.html
其中我對第 6,11,15 條的感觸最深。引用如下
註解:
國內程序員之間喜歡談論技術的人多,真正悶頭做事的人太少;各種論壇上相互爭吵,辯論的多,寫代碼的人少。我也曾經是這樣的人,很多東西都是停留在 想法上,開始對 RoR 的顧慮也很多,性能啊,擴展啊。在網上搜索到很多這樣的辯論,曾經動搖過我使用 ROR 的決心, 但是最終開發效率這一點最終佔了上風。 其實仔細想想,你如果不喜歡一個東西,會找出有很多原因,如果喜歡它,一條理由就足夠了。邊學習邊做的確是個好的方式,應該算是 Agile 的工作方式吧。那些考察討論再三再開始做事的方式道像是 RUP 了。
這兩條的理念是相同的,所以放在一起註解
註解:
這點的確很重要,我在開來始做網站的時候,界面設計選用了很複雜的頁面模板,想到各 種花哨的技術來堆砌它。後來覺得人家來你網站無非是推薦音樂,聽音樂,評論,搜索,真正經常操作的就是這麼一些簡單功能,鼓搗花哨概念和技術的想法可能從 最開始就是在遠離你的用戶。這的確是應該儘量避免的,如果不是讀到這條,我可能也不會中途改版。
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 技術來傳遞信息。我個人感覺這個音樂網站有個好的想法,不管它是否能掙錢。首先是音樂推薦的確能給人帶來快樂,做這樣的網站才有趣。技術應該是實現你想法 的工具,如果網站成為技術的試驗品,對我來說就沒有什麼意思了。
沒有留言:
發佈留言