>
學(xué)校機(jī)構(gòu) >
沈陽(yáng)北大青鳥(niǎo) >
學(xué)習(xí)資訊>
開(kāi)發(fā)大型web應(yīng)用,你會(huì)選擇什么作為后端語(yǔ)言?
開(kāi)發(fā)大型web應(yīng)用,你會(huì)選擇什么作為后端語(yǔ)言?
79 2017-05-04
1.Java
hendzen寫(xiě)道
對(duì)于一個(gè)“大型”的web應(yīng)用,我會(huì)老老實(shí)實(shí)地使用Java,并會(huì)選擇Jetty作為HTTP服務(wù)器,Jersey/JAX-RS作為web框架。JVM是無(wú)與倫比的,并且新員工入職培訓(xùn)也相對(duì)輕松得多,因?yàn)榇蟛糠秩硕剂私釰ava。
盡管不像Rails/Django那么時(shí)髦,但是你將得益于眾多高性能、可靠的Java庫(kù),更不用說(shuō)那些偉大的分析工具。
meddlepal寫(xiě)道
我同意,我會(huì)選擇Java來(lái)開(kāi)發(fā)核心功能,對(duì)于一些非核心功能,我可能會(huì)選擇Groovy或JRuby。
Jersey/JAX-RS非常不錯(cuò),但我感覺(jué)有些風(fēng)險(xiǎn),我更傾向于Play2。
Java/JVM生態(tài)系統(tǒng)中有很多非常積極的東西,如偉大的虛擬機(jī)、庫(kù)、龐大的社區(qū)以及大量的開(kāi)發(fā)者。這是開(kāi)發(fā)一個(gè)大型web應(yīng)用真正要考慮的。
2..NET
Avalaxy寫(xiě)道
比起Java平臺(tái),我更傾向于ASP.NETMVC(比如C#)。.NET棧是非常強(qiáng)大的,我個(gè)人認(rèn)為比Java強(qiáng)得多,并且ASP.NETMVC框架包含了大量RoR中的優(yōu)秀特性。
ralphael寫(xiě)道
我投.NET、MVC和SQLServer一票。
這個(gè)平臺(tái)上擁有大量的示例程序,況且stackoverflow就是基于.NET的。
spobo寫(xiě)道
.NET絕對(duì)不是一個(gè)壞的選擇。
過(guò)去幾年,微軟已經(jīng)真正到達(dá)了頂峰,它們最新的框架非常易于開(kāi)發(fā)者掌握和使用,微軟同時(shí)也開(kāi)始基于.NET來(lái)推動(dòng)其開(kāi)源項(xiàng)目,比如codeplex和NuGet,微軟同時(shí)還是jQuery的核心貢獻(xiàn)者。微軟最近還發(fā)布了WebAPI,為開(kāi)發(fā)者創(chuàng)建REST-fulJSON/XML應(yīng)用提供了一個(gè)相當(dāng)平緩的方式。
3.PHP
interwho寫(xiě)道
對(duì)我個(gè)人而言,我會(huì)選擇PHP:
更快地解決事情;
網(wǎng)上有大量的類可以使用,這讓事情變得簡(jiǎn)單;
個(gè)人認(rèn)為,比其他一些語(yǔ)言更容易維護(hù);
可在幾乎所有的網(wǎng)站托管服務(wù)器中運(yùn)行,價(jià)格便宜;
可擴(kuò)展。
如果你需要其他更強(qiáng)大的功能,你可以無(wú)縫過(guò)渡到另一種語(yǔ)言。
4.Ruby或Python
olalonde寫(xiě)道
Ruby/Rails和Python/Django似乎是YC初創(chuàng)企業(yè)最常見(jiàn)的選擇,它們?cè)陂_(kāi)發(fā)時(shí)間、成本、可維護(hù)性方面具備一定的優(yōu)勢(shì)。
spdy寫(xiě)道
Python/Django或RubyonRails。如果你行動(dòng)快速、經(jīng)常改變主意,就選它們。
在面向服務(wù)架構(gòu)中,我會(huì)選擇Ruby。在不同系統(tǒng)之間使用HTTP/JSON用于內(nèi)部API。如果性能是瓶頸,你可以考慮在部分系統(tǒng)中使用一個(gè)稍低級(jí)別的語(yǔ)言(Java、Haskell、Go、Erlang等)。
Rails使SOA開(kāi)發(fā)更加容易和快速,除了API客戶端,我沒(méi)有其他好的解決方案。
3pt14159寫(xiě)道
Python(Tornado或Twisted)+Riak。為什么呢?你可以輕松擴(kuò)展,并且有大量的庫(kù),開(kāi)箱即用,并且你也無(wú)須擔(dān)心你的數(shù)據(jù)庫(kù)受影響。
5.Clojure
Zak寫(xiě)道
我傾向于Clojure,因?yàn)椋?/strong>
屬性清單和類似于繼承的行為對(duì)于映射和記錄是非常自然和方便的。我認(rèn)為,這些特性將有益于大型應(yīng)用程序。
Clojure可以抽象數(shù)據(jù)庫(kù),保存和執(zhí)行關(guān)系模型比ORM更加直接。
Clojure可以利用Java庫(kù),這意味著你在實(shí)現(xiàn)一些常用功能時(shí)會(huì)非常輕松。
6.選擇喜歡(擅長(zhǎng))的語(yǔ)言
spobo寫(xiě)道
使用一個(gè)更高級(jí)的編程語(yǔ)言,同時(shí)使用標(biāo)準(zhǔn)接口與前端進(jìn)行通信。如果你為后端構(gòu)建了一個(gè)RESTAPI,使用什么語(yǔ)言是不重要的。你可以隨時(shí)更換更高性能的部件,也可以使用不同的語(yǔ)言來(lái)開(kāi)發(fā)不同的功能。
如果你想降低開(kāi)發(fā)成本,就使用大多數(shù)開(kāi)發(fā)者已選擇的生態(tài)系統(tǒng),Python、PHP、Ruby、Java、.NET都可以,這些語(yǔ)言都有一些偉大的框架,幫助你進(jìn)行快速開(kāi)發(fā)。
但是,不管你做什么,不要強(qiáng)制讓你的開(kāi)發(fā)人員去使用不喜歡的語(yǔ)言。聽(tīng)從你的開(kāi)發(fā)團(tuán)隊(duì),要相信每種語(yǔ)言都有很大的潛力。
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號(hào)
獵學(xué)網(wǎng)服務(wù)號(hào)