Web開(kāi)發人(rén)員(yuán)應當知(zhī)道(≠↑δ≥dào)的(de)15個(gè)開(kāi)源項目

如(rú)今,構建網站(zhàn)和(hé)開(α→‌¶kāi)發Web應用(yòng)程序已經不(bù)僅要(π₩​♠yào)求開(kāi)發人(rén)員(yuán)是(<πshì)一(yī)名優秀的(de)程序員(yuán) ✘​✔,更需要(yào)聰明(míng)的(de)程序員(yu✔≠✘≈án)。這(zhè)也(yě)就(jiù)是(shì≤δ​♥)說(shuō),在可(kě)能(néng)的♦₹γ(de)情況下(xià),重複使用(yòng)已有(yǒ₽ •δu)的(de)代碼和(hé)應用(yòng)程序,而不(σ→✔¶bù)是(shì)自(zì)己重頭開(kāi)始。開(kāi)源由來↓≤€(lái)已久,并且很(hěn)多(duō)網站(zγπ​★hàn)的(de)構建也(yě)使用(yòng)了(le)開✘≤↔₩(kāi)源。開(kāi)發人(rén)員(σ♠•yuán)都(dōu)知(zhī)道(dào)Linux、Apache、Ω↔MySQL及 PHP (LAMP)。

但(dàn)是(shì)除那(nà)些(xiē)之外(wài)的(de)其他(α'✔tā)開(kāi)源項目呢(ne)?作(zuò)為(wèiπ →×)一(yī)名Web開(kāi)發人(rén)員(yuán),你(nǐ)<↑可(kě)以借助諸多(duō)可(kě)用(yòng)的(de)項目,以節省ε✔開(kāi)發時(shí)間(jiān),或提高( γgāo)程序性能(néng)。

下(xià)面讓我們看(kàn)一(yī)下(xià)哪些(xiē" )開(kāi)源項目可(kě)供大(dà)家(jiā)免費(±↔↓"fèi)使用(yòng)。

可(kě)供使用(yòng)的(de)新型數(sh•>ù)據庫

傳統上(shàng)講,你(nǐ)可(kě)能(‍"néng)習(xí)慣使用(yòng)MySQL。盡管MySQL是(shì)≠π一(yī)個(gè)非常棒的(de)數(shù)據庫→×,但(dàn)諸多(duō)試圖解決MySQL存在的(de)問(wèn)題的(♣γβde)新型數(shù)據庫已經問(wèn)世。

1. MongoDB

MongoDB就(jiù)是(shì)的(de)“非關系型”數(shù)≠‍≤據庫之一(yī)。它擴展性強、性能(néng)•><¥高(gāo)。

2. Apache Cassandra

與MongoDB相(xiàng)似,Apache Cassandra> ♣↕也(yě)是(shì)一(yī)種“非關系型”數(shù∞ ☆)據庫,它亦擴展性強、性能(néng)高(gāo)♥α。并且能(néng)夠很(hěn)好(hǎo)地( ∑dì)處理(lǐ)龐大(dà)而活躍的(de)數(shù)據集。(編注 ↕γλ:Facebook用(yòng) Cassandra來(lái)做(z¶™±εuò)郵箱搜索。)


緩存數(shù)據

因為(wèi)需要(yào)頻(pín)繁使用(yòng)一(y•£δλī)些(xiē)數(shù)據,所以相("‍§∞xiàng)比每次去(qù)數(shù) ©☆據庫中查詢,把這(zhè)些(xiē)數(shù)據存放(fàng)在內(nèε" ≤i)存中更加合理(lǐ)。這(zhè)能(n± éng)夠大(dà)大(dà)提高(gāo)Web應用(yòng)程序的 ™(de)運行(xíng)速度。

3. Memcached

Memcached是(shì)一(yī)種在內(nèi)存中緩存小(xiǎ​≤✘o)型數(shù)據塊的(de)簡單但(dàn)強大∞Ω↕(dà)的(de)解決方法。(編注: Facebook運行(xíng)著(z ε€he)成千上(shàng)萬的(de)Memcached服務器(q ≠ì),借以及時(shí)處理(lǐ)TB級的(de)緩存數(shù)據。)

4. Redis

Redis的(de)作(zuò)用(yòng)與Mem '>cached相(xiàng)同,但(dàn)包含更多 ↔φ(duō)的(de)特性。例如(rú),它也(∏¶♣yě)可(kě)以存儲本應當永久性保存在磁盤上(shàng)的(de)數(sh>←€ù)據。

加快(kuài)網絡請(qǐng)求的(de)速∏∑®度

大(dà)多(duō)數(shù)網站(zhàn)使用(yòng)Apac•<he的(de)網絡服務器(qì)來(lái)提供服務。它能(néλ≈©ng)夠很(hěn)好(hǎo)地(dìφ<✘)服務于大(dà)多(duō)數(shù)網站(zhΩλàn),但(dàn)是(shì)一(yī)旦網站(zhàn)的(de)訪問→₹α(wèn)量增大(dà),就(jiù)需要(yào)做(zu✔↓ò)進一(yī)步優化(huà)。

5. Nginx

Nginx是(shì)一(yī)種與Apache非常相(xiàng)像的≤♠↕(de)網絡服務器(qì),但(dàn)它的(de)速度相(xiàn≠πg)當快(kuài)。作(zuò)為(wèi)負載平衡器(qλ↔ì),它常用(yòng)于處理(lǐ)靜(jìng)态內(nèi)容,如(§ ∑×rú)圖像文(wén)件(jiàn)。

6. Varnish

Varnish是(shì)位于常規網絡服務器(qì)之前的(de)↕≈<≠高(gāo)速緩存器(qì)。它将所有(yǒu)熱(rè)✔εΩ門(mén)內(nèi)容放(fàng)入內(nèi)存,直接對(duì)​₽★其處理(lǐ),無須将所有(yǒu)內(nèi)容都(dōu)傳給網絡服務器¶$α(qì)。(編注: Facebook用(βσyòng)Varnish 處理(lǐ)圖片和(hé)用(yòng)戶照(zhàλ£♥o)片,每天都(dōu)要(yào)處理(lǐ)十億>®級的(de)請(qǐng)求。)

輕松管理(lǐ)內(nèi)容

如(rú)果你(nǐ)在構建一(yī)個(gè)允許用(yòng)戶添加↓ ∞及編輯內(nèi)容的(de)網站(zhàn),那(nà)麽你(nǐ)可γ‌♠‌(kě)能(néng)需要(yào)一(yī)個(gè)內(n ‍ èi)容管理(lǐ)系統(CMS)。CMS能(né€↓≤ng)夠幫助開(kāi)發人(rén)員(yuán)輕松地(dì)管理(lǐ)'♠↕‌博客及網站(zhàn),并且提供大(dà)量的(de)能(néng)夠擴展網↓π​站(zhàn)功能(néng)的(de)插件'≠α(jiàn)。

7. WordPress

雖然WordPress是(shì)個(gè)博客平台,但(dàn)它也(y≥₽ě)能(néng)用(yòng)于管理(lǐ)大(dà)大(dà)小(xi☆‌™ǎo)小(xiǎo)的(de)網站(zhàn)。

8. Drupal

Drupal是(shì)一(yī)個(gè)可(kě)用(yòng)于構建強ε≈$擴展性、高(gāo)靈活性網站(zhàn)的(de)完整平台。

交互式的(de)網絡UI

如(rú)今,你(nǐ)可(kě)以使用(yòng)JavaSΩ≥cript和(hé)AJAX技(jì)術↓™(shù),開(kāi)發一(yī)個(☆¶πgè)類似桌面應用(yòng)程序那(nà)樣的(de)以多σ÷∞(duō)種方式運行(xíng)的(de)網絡應用(yòng)。使用(yòngπ₽&)JavaScript框架,能(néng)夠輕松地(dì ₹)開(kāi)發大(dà)型的(de)網絡應用(yòng)程序。

9. JQuery

JQuery是(shì)一(yī)個(gè)帶插件(jià​ γn)的(de)框架,這(zhè)些(xiē)★€"插件(jiàn)有(yǒu)主構建包含AJAX交δ→×£互及動畫(huà)的(de)動态網站(zhàn)。

10. MooTools

MooTools就(jiù)和(hé)jQuery一(yī)↓$♠樣,是(shì)一(yī)個(gè)使用(yòng)☆¶JavaScript構建強大(dà)網絡應用(yò£σ★ng)程序的(de)框架。


其他(tā)比較炫的(de)資源

當你(nǐ)開(kāi)始開(kāi)發一(yī)個(gè)複↓♣'₽雜(zá)的(de)網絡應用(yòng)程序時(shí),很(hěn™≠δε)多(duō)軟件(jiàn)、庫及模型能∑< ¥(néng)夠幫你(nǐ)解決難題,如(rú)果不(bù)參考這(zhèα¶)些(xiē)資源,你(nǐ)可(kě)能(néng)會(huì)✘π♣¥花(huā)費(fèi)大(dà)量的(de)時(shí) €Ω♣間(jiān)。以下(xià)是(shì)α<π兩個(gè)入門(mén)的(de)例子(zγ ÷∑ǐ)。

11. Node.js

Node.js是(shì)一(yī)個(gè)事(sh₽¶≠'ì)件(jiàn)驅動的(de)輸入/輸出框架,支持用(yòng)Ja₩•vaScript編寫應用(yòng)程序,并在V8 JavaScri​×pt引擎上(shàng)運行(xíng)。這(zhè)§ ₽是(shì)一(yī)種開(kāi)發快(kuài)速、可(kě)擴展網絡程β♥序的(de)很(hěn)棒的(de)方式。

12. RabbitMQ

RabbitMQ是(shì)一(yī)種可(kě)靠的(de$♥♣ )、可(kě)擴展的(de)信息傳送系統,它能(nén♠∏↑g)夠處理(lǐ)高(gāo)吞吐量。如δ​®✔(rú)果需要(yào)在系統之間(jiān)或應用(yòng)程♦♣≥序之間(jiān)交換數(shù)據,比起傳統的(de)解決方案或‍" 直接将數(shù)據存儲在數(shù)據庫中,ε↑γ信息傳送系統的(de)更能(néng)勝任☆₹±®這(zhè)一(yī)工(gōng)作(zuò)。

使用(yòng)框架來(lái)加快(kuài)開(kāi)發進程

不(bù)管你(nǐ)是(shì)使用(yòng)P€Ωγ±HP還(hái)是(shì)其他(tā)的(de)編§π 程語言,有(yǒu)很(hěn)多(duō€ &)不(bù)同的(de)可(kě)用(yòng)框架能(néng)夠幫助你(n↕★& ǐ)加速開(kāi)發進程,并能(néng)夠更加輕松地(dì)管理♣✘(lǐ)代碼。

13. Symfony

Symfony是(shì)一(yī)個(gè)PHP框架,它包含很(hě↔δ ×n)多(duō)能(néng)夠加速開(kāi)發複雜(zá)網 φ絡應用(yòng)程序的(de)組件(jiàn)及工(gōng)具。ββ&σ同時(shí)它包含社區(qū)提供的(de)1000多(du εεō)個(gè)插件(jiàn)。

14. Ruby on Rails

對(duì)Ruby語言而言,Ruby on Rails是(s≥♠§hì)最流行(xíng)的(de)可(k★φě)用(yòng)框架。

15. Django

Django是(shì)一(yī)個(gè)Python網絡框架,™÷它用(yòng)來(lái)幫助快(kuài)速開(kāi)發高(gāo↕♦)性能(néng)、優秀的(de)網絡應用(yòng)程序。


維基百科(kē)上(shàng)有(yǒu)一φ (yī)份更完整的(de)列表,這(zhè)個(gè✔→)列表包含不(bù)同語言的(de)可(kě)用(yò¶>★≈ng)網絡應用(yòng)框架。

後話(huà) - 合理(lǐ)利用(yòng)時(≈≈ >shí)間(jiān)

開(kāi)發人(rén)員(yuán)有(yǒu)必要(yào)花(hu•"δā)費(fèi)時(shí)間(jiān)不(bù)斷了(le)解δ©哪些(xiē)新軟件(jiàn)是(shì® ≠∏)可(kě)用(yòng)的(de),這(zhè)樣♠§∞對(duì)輕松地(dì)解決複雜(zá)的(de)任務大(€≈dà)有(yǒu)裨益。

而且在項目開(kāi)發之初,花(huā)費(fèi)一(yī)些(x™®iē)時(shí)間(jiān)做(zuò)計(jì)劃和(hλδé)調查也(yě)是(shì)非常有(yǒu)必≠&要(yào)的(de),因為(wèi)這(zhè•≤→)樣可(kě)以明(míng)确即将面臨的(de)問(wèn)題 λ,并确定其最佳解決方案。

自(zì)己編程來(lái)解決每個(gè)問(wèn)題的(d₹Ω∑"e)時(shí)代已經結束,如(rú)今更多(duō)的(ε<↕de)是(shì)靈活使用(yòng)現(xiàn)↓♣↓≠有(yǒu)技(jì)術(shù)來(lái)解決問(wèn)題。

不(bù)知(zhī)正在看(kàn)本文(wén)的(de)Web開(kāi♥‍®)發人(rén)員(yuán),在上(shàng)述≈♣<這(zhè)些(xiē)開(kāi)源項目中,你(nǐ)用(yòng)到(d​ ♣ào)了(le)哪些(xiē)?