Web開發(fā)者必知的15個開源項(xiàng)目 你可知道?
如今,構(gòu)建網(wǎng)站和開發(fā)Web應(yīng)用程序已經(jīng)不僅要求開發(fā)人員是一名優(yōu)秀的程序員,更需要聰明的程序員。這也就是說,在可能的情況下,重復(fù)使用已有的代碼和應(yīng)用程序,而不是自己重頭開始。
開源由來已久,并且很多網(wǎng)站的構(gòu)建也使用了開源。開發(fā)人員都知道Linux、Apache、MySQL及 PHP (LAMP)。
但是除那些之外的其他開源項(xiàng)目呢?作為一名Web開發(fā)人員,你可以借助諸多可用的項(xiàng)目,以節(jié)省開發(fā)時間,或提高程序性能。
下面讓我們看一下哪些開源項(xiàng)目可供大家免費(fèi)使用。
可供使用的新型數(shù)據(jù)庫
傳統(tǒng)上講,你可能習(xí)慣使用MySQL。盡管MySQL是一個非常棒的數(shù)據(jù)庫,但諸多試圖解決MySQL存在的問題的新型數(shù)據(jù)庫已經(jīng)問世。
1. MongoDB
MongoDB就是的“非關(guān)系型”數(shù)據(jù)庫之一。它擴(kuò)展性強(qiáng)、性能高。
2. Apache Cassandra
與MongoDB相似,Apache Cassandra也是一種“非關(guān)系型”數(shù)據(jù)庫,它亦擴(kuò)展性強(qiáng)、性能高。并且能夠很好地處理龐大而活躍的數(shù)據(jù)集。(編注:Facebook用Cassandra來做郵箱搜索。)
緩存數(shù)據(jù)
因?yàn)樾枰l繁使用一些數(shù)據(jù),所以相比每次去數(shù)據(jù)庫中查詢,把這些數(shù)據(jù)存放在內(nèi)存中更加合理。這能夠大大提高Web應(yīng)用程序的運(yùn)行速度。
3. Memcached
Memcached是一種在內(nèi)存中緩存小型數(shù)據(jù)塊的簡單但強(qiáng)大的解決方法。(編注: Facebook運(yùn)行著成千上萬的Memcached服務(wù)器,借以及時處理TB級的緩存數(shù)據(jù)。)
4. Redis
Redis的作用與Memcached相同,但包含更多的特性。例如,它也可以存儲本應(yīng)當(dāng)***性保存在磁盤上的數(shù)據(jù)。
加快網(wǎng)絡(luò)請求的速度
大多數(shù)網(wǎng)站使用Apache的網(wǎng)絡(luò)服務(wù)器來提供服務(wù)。它能夠很好地服務(wù)于大多數(shù)網(wǎng)站,但是一旦網(wǎng)站的訪問量增大,就需要做進(jìn)一步優(yōu)化。
5. Nginx
Nginx是一種與Apache非常相像的網(wǎng)絡(luò)服務(wù)器,但它的速度相當(dāng)快。作為負(fù)載平衡器,它常用于處理靜態(tài)內(nèi)容,如圖像文件。
6. Varnish
Varnish是位于常規(guī)網(wǎng)絡(luò)服務(wù)器之前的高速緩存器。它將所有熱門內(nèi)容放入內(nèi)存,直接對其處理,無須將所有內(nèi)容都傳給網(wǎng)絡(luò)服務(wù)器。(編注: Facebook用Varnish 處理圖片和用戶照片,每天都要處理十億級的請求。Facebook所用到的其他開源項(xiàng)目,請參閱《揭秘Facebook背后的那些軟件》一文。)
輕松管理內(nèi)容
如果你在構(gòu)建一個允許用戶添加及編輯內(nèi)容的網(wǎng)站,那么你可能需要一個內(nèi)容管理系統(tǒng)(CMS)。CMS能夠幫助開發(fā)人員輕松地管理博客及網(wǎng)站,并且提供大量的能夠擴(kuò)展網(wǎng)站功能的插件。
7. WordPress
雖然WordPress是個博客平臺,但它也能用于管理大大小小的網(wǎng)站。
8. Drupal
Drupal是一個可用于構(gòu)建強(qiáng)擴(kuò)展性、高靈活性網(wǎng)站的完整平臺。
交互式的網(wǎng)絡(luò)UI
如今,你可以使用JavaScript和AJAX技術(shù),開發(fā)一個類似桌面應(yīng)用程序那樣的以多種方式運(yùn)行的網(wǎng)絡(luò)應(yīng)用。使用JavaScript框架,能夠輕松地開發(fā)大型的網(wǎng)絡(luò)應(yīng)用程序。
9. jQuery
jQuery是一個帶插件的框架,這些插件有主構(gòu)建包含AJAX交互及動畫的動態(tài)網(wǎng)站。
10. MooTools
MooTools就和jQuery一樣,是一個使用JavaScript構(gòu)建強(qiáng)大網(wǎng)絡(luò)應(yīng)用程序的框架。
更多
如果你想嘗試一下其他選擇,請參考維基百科的這個列表。
其他比較炫的資源
當(dāng)你開始開發(fā)一個復(fù)雜的網(wǎng)絡(luò)應(yīng)用程序時,很多軟件、庫及模型能夠幫你解決難題,如果不參考這些資源,你可能會花費(fèi)大量的時間。以下是兩個入門的例子。
11. Node.js
Node.js是一個事件驅(qū)動的輸入/輸出框架,支持用JavaScript編寫應(yīng)用程序,并在V8 JavaScript引擎上運(yùn)行。這是一種開發(fā)快速、可擴(kuò)展網(wǎng)絡(luò)程序的很棒的方式。
12. RabbitMQ
RabbitMQ是一種可靠的、可擴(kuò)展的信息傳送系統(tǒng),它能夠處理高吞吐量。如果需要在系統(tǒng)之間或應(yīng)用程序之間交換數(shù)據(jù),比起傳統(tǒng)的解決方案或直接將數(shù)據(jù)存儲在數(shù)據(jù)庫中,信息傳送系統(tǒng)的更能勝任這一工作。
使用框架來加速開發(fā)進(jìn)程
不管你是使用PHP還是其他的編程語言,有很多不同的可用框架能夠幫助你加速開發(fā)進(jìn)程,并能夠更加輕松地管理代碼。
13. Symfony
Symfony是一個PHP框架,它包含很多能夠加速開發(fā)復(fù)雜網(wǎng)絡(luò)應(yīng)用程序的組件及工具。同時它包含社區(qū)提供的1000多個插件。
14. Ruby on Rails
對Ruby語言而言,Ruby on Rails是***的可用框架。
15. Django
Django是一個Python網(wǎng)絡(luò)框架,它用來幫助快速開發(fā)高性能、優(yōu)秀的網(wǎng)絡(luò)應(yīng)用程序。
后話 - 合理利用時間
開發(fā)人員有必要花費(fèi)時間不斷了解哪些新軟件是可用的,這樣對輕松地解決復(fù)雜的任務(wù)大有裨益。
而且在項(xiàng)目開發(fā)之初,花費(fèi)一些時間做計(jì)劃和調(diào)查也是非常有必要的,因?yàn)檫@樣可以明確即將面臨的問題,并確定其***解決方案。
自己編程來解決每個問題的時代已經(jīng)結(jié)束,如今更多的是靈活使用現(xiàn)有技術(shù)來解決問題。
不知正在看本文的Web開發(fā)人員,在上述這些開源項(xiàng)目中,你用到了哪些?歡迎你在評論中分享你的使用經(jīng)驗(yàn)和心得。
原文鏈接:http://www.jobbole.com/entry.php/503-Web
【編輯推薦】