天天看點

Web開發人員應當知道的15個開源項目

  如今,建構網站和開發Web應用程式已經不僅要求開發人員是一名優秀的程式員,更需要聰明的程式員。這也就是說,在可能的情況下,重複使用已有的代碼和應用程式,而不是自己重頭開始。

  開源由來已久,并且很多網站的建構也使用了開源。開發人員都知道Linux、Apache、MySQL及 PHP (LAMP)。

  但是除那些之外的其他開源項目呢?作為一名Web開發人員,你可以借助諸多可用的項目,以節省開發時間,或提高程式性能。

  下面讓我們看一下哪些開源項目可供大家免費使用。

  可供使用的新型資料庫

  傳統上講,你可能習慣使用MySQL。盡管MySQL是一個非常棒的資料庫,但諸多試圖解決MySQL存在的問題的新型資料庫已經問世。

  1. MongoDB

  MongoDB就是的“非關系型”資料庫之一。它擴充性強、性能高。

  2. Apache Cassandra

  與MongoDB相似,Apache Cassandra也是一種“非關系型”資料庫,它亦擴充性強、性能高。并且能夠很好地處理龐大而活躍的資料集。(編注:Facebook用Cassandra來做郵箱搜尋。)

  更多

  根據需要,你還有更多的選擇。請參閱維基百科的這個清單。

  緩存資料

  因為需要頻繁使用一些資料,是以相比每次去資料庫中查詢,把這些資料存放在記憶體中更加合理。這能夠大大提高Web應用程式的運作速度。

  3. Memcached

  Memcached是一種在記憶體中緩存小型資料塊的簡單但強大的解決方法。(編注: Facebook運作着成千上萬的Memcached伺服器,借以及時處理TB級的緩存資料。)

  4. Redis

  Redis的作用與Memcached相同,但包含更多的特性。例如,它也可以存儲本應當永久性儲存在磁盤上的資料。

  加快網絡請求的速度

  大多數網站使用Apache的網絡伺服器來提供服務。它能夠很好地服務于大多數網站,但是一旦網站的通路量增大,就需要做進一步優化。

  5. Nginx

  Nginx是一種與Apache非常相像的網絡伺服器,但它的速度相當快。作為負載平衡器,它常用于處理靜态内容,如圖像檔案。

  6. Varnish

  Varnish是位于正常網絡伺服器之前的高速緩存器。它将所有熱門内容放入記憶體,直接對其處理,無須将所有内容都傳給網絡伺服器。(編注: Facebook用Varnish 處理圖檔和使用者照片,每天都要處理十億級的請求。Facebook所用到的其他開源項目,請參閱《揭秘Facebook背後的那些軟體》一文。)

  輕松管理内容

  如果你在建構一個允許使用者添加及編輯内容的網站,那麼你可能需要一個内容管理系統(CMS)。CMS能夠幫助開發人員輕松地管理部落格及網站,并且提供大量的能夠擴充網站功能的插件。

  7. WordPress

  雖然WordPress是個部落格平台,但它也能用于管理大大小小的網站。

  8. Drupal

  Drupal是一個可用于建構強擴充性、高靈活性網站的完整平台。

  還有很多可用的内容管理系統。請參閱維基百科的這個大型清單。

  互動式的網絡UI

  如今,你可以使用JavaScript和AJAX技術,開發一個類似桌面應用程式那樣的以多種方式運作的網絡應用。使用JavaScript架構,能夠輕松地開發大型的網絡應用程式。

  9. JQuery

   JQuery是一個帶插件的架構,這些插件有主建構包含AJAX互動及動畫的動态網站。

  10. MooTools

  MooTools就和jQuery一樣,是一個使用JavaScript建構強大網絡應用程式的架構。

  如果你想嘗試一下其他選擇,請參考維基百科的這個清單。

  其他比較炫的資源

  當你開始開發一個複雜的網絡應用程式時,很多軟體、庫及模型能夠幫你解決難題,如果不參考這些資源,你可能會花費大量的時間。以下是兩個入門的例子。

  11. Node.js

  Node.js是一個事件驅動的輸入/輸出架構,支援用JavaScript編寫應用程式,并在V8 JavaScript引擎上運作。這是一種開發快速、可擴充網絡程式的很棒的方式。

  12. RabbitMQ

  RabbitMQ是一種可靠的、可擴充的資訊傳送系統,它能夠處理高吞吐量。如果需要在系統之間或應用程式之間交換資料,比起傳統的解決方案或直接将資料存儲在資料庫中,資訊傳送系統的更能勝任這一工作。

  使用架構來加速開發程序

  不管你是使用PHP還是其他的程式設計語言,有很多不同的可用架構能夠幫助你加速開發程序,并能夠更加輕松地管理代碼。

  13. Symfony

  Symfony是一個PHP架構,它包含很多能夠加速開發複雜網絡應用程式的元件及工具。同時它包含社群提供的1000多個插件。

  14. Ruby on Rails

  對Ruby語言而言,Ruby on Rails是最流行的可用架構。

  15. Django

  Django是一個Python網絡架構,它用來幫助快速開發高性能、優秀的網絡應用程式。

  維基百科上有一份更完整的清單,這個清單包含不同語言的可用網絡應用架構。

  後話 - 合理利用時間

  開發人員有必要花費時間不斷了解哪些新軟體是可用的,這樣對輕松地解決複雜的任務大有裨益。

  而且在項目開發之初,花費一些時間做計劃和調查也是非常有必要的,因為這樣可以明确即将面臨的問題,并确定其最佳解決方案。

  自己程式設計來解決每個問題的時代已經結束,如今更多的是靈活使用現有技術來解決問題。

  不知正在看本文的Web開發人員,在上述這些開源項目中,你用到了哪些?歡迎你在評論中分享你的使用經驗和心得。

繼續閱讀