如何從零開始寫一個網站

berlinix發表於2013-06-01

作為一個程式設計師,如果沒有寫過一個自己的網站,總覺這個職業生涯是殘缺不全的。話說哪些做基礎研究如演算法或OS的大佬,儘可以鄙夷這樣的思維,但如你我般普通非大神類程式猿,卻沒有深度,也應該有點廣度。

回想第一個“網站”是我用VimWIKI生成的HTML,通過

file:///D:/vimwiki/html/links.html

來訪問(到如今它依然管用!)。接著嘗試了WAMP(把LAMP中的L改成W,即Linux變Windows),不錯,依然可行,通過

localhost://127.0.0.1

可以訪問了。但我仍舊喜歡file協議。接下來租了一個國內VPS,便宜但不夠穩定。但個人網站就不計較了。不過同步的方法很傻,通過FileZilla檔案傳輸過去。後來用SVN進行版本控制,感覺沒那麼山寨了。

這個階段的工作很簡單,學習VimWIKI的語法,寫文件,生成HTML。整個網站也異常簡單,申請一個域名,租用一個便宜的Linux VPS,安裝一個Apache,用SVN控制版本與釋出。那時對HTML都很陌生,更無論JavaScript、CSS之流。動態頁面的概念,還很遙遠。

過了不久,因為工作的需求,要自己寫一個真正的網站了,那才第一次與LAMP親密接觸。應對一個陌生領域,我的基本對策就是買一打五星級的書。我最偏愛的圖書就是以 XXX Programming Language 命名的圖書,霸氣且經久耐用(好比 C Programming LanguageC++ Programming Language 吧)。按這個原則,買了幾本PHP、JavaScript、CSS、Mysql的書。HTML好書真的難找,我買的是圖靈出版的《精通CSS與HTML設計模式》(選書的另一個原則就是看出版社)。不過要說這段時間的最強偏愛,還是圖靈的另一本:《SQL反模式》(如果你偏愛 Effective C++或 Effective TCP/IP Programming,那這本書也不容錯過了)。我沒有在用什麼語言寫網站上花費什麼時間,Java、PHP、以及MS的語言、環境對我而言同樣陌生;Python雖然略會一點,但我仍隨大流,以及參考以前同事的擅長。

這次租了Linode的VPS,穩定性絕佳。傳送郵件的任務,起初用sendmail,很快切換到網易的免費企業郵箱,過了數月,發現很快超過網易郵箱限額,於是又切換到Google APP的免費郵箱服務。網站方面,用PHP交纏HTML,總覺得很醜陋,於是用了Smarty模版,把邏輯與展現分離;雖然沒碰到效能方面的問題(嗯,訪問量還太小),但等到在Smarty中也要用變數、迴圈等方式時,還是頗有些後悔。想想還是對PHP的使用不夠熟練使然。至於那些XXX框架,每當我想要嘗試時,就想起Randy Pausch《最後一課》中講的:

基本功,基本功,還是基本功。基本功不好,上層花哨的東西你就玩不轉。

從零開始,你才知道你真正需要的是什麼;啟用已有的成熟方案,已是後一步的事。四處打聽什麼好、什麼強,真是很傻很天真;好比小馬過河的教訓,自己做了才知道。

後來瞭解了Bootstrap,運用後,又再次較大規模的改進了網站(前一次是用Smarty時)。嗯,現在問題的關鍵,又演變為怎麼拆分、組織資料,這才是根本之道。近日買了《淘寶技術這十年》,說到底,依然是資料拆分、組織的問題。什麼語言、框架、協議,最後都要讓位於最基本的業務邏輯。

又後來,Linode北美伺服器大規模不能訪問,甚至從北美Linode訪問國內也有問題。只好租了另一個Linode日本VPS作為跳轉。某些函式呼叫改為HTTP遠端呼叫;用Git替換了SVN;SSH每次要通過日本中轉。等等。

現在網站很少有獨立存在者,與其他大網站的API互動也是勢在必行。要學習的東西也很多。就如古話說的,你瞭解的東西越多,不瞭解的東西就越多。像王興說每年畢業季總推薦胡適伯伯的《贈與今年的大學畢業生》,保持自己的興趣、好奇心才更為重要 ;)

相關文章