2018-12-26 分類(lèi): 網(wǎng)站建設(shè)
其實(shí)現(xiàn)在網(wǎng)站的后端開(kāi)發(fā)語(yǔ)言有很多,列出來(lái)普及一下知識(shí)!
1、.net/java
龐大,復(fù)雜。但Java的優(yōu)點(diǎn)就是適合處理特別大的數(shù)據(jù)量,如果你的項(xiàng)目會(huì)很快實(shí)現(xiàn)大爆發(fā),需要處理海量的請(qǐng)求,那么Java是一個(gè)不錯(cuò)的選擇。
2、PHP
可以快速上手,相比其他語(yǔ)言,可以更快的為應(yīng)用添加各種新功能。當(dāng)然,可維護(hù)性就另當(dāng)別論了。
3、Ruby
非常接近自然語(yǔ)言,基本上即使不懂編程,也能看明白70% 或80%。04年出現(xiàn)了一個(gè)用Ruby編寫(xiě)的Web開(kāi)發(fā)框架Rubyon Rails,當(dāng)時(shí)的效果是非常震撼的,以前需要一個(gè)團(tuán)隊(duì)才能搞定的事情,使用Ruby on Rails后1個(gè)人就可以勝任了,所以Ruby on Rails在極短的時(shí)間內(nèi)就成為了Ruby的代名詞,也成為了新手學(xué)習(xí)Web開(kāi)發(fā)的不二選擇,但是Ruby語(yǔ)言也并非十全十美,快的同時(shí),他的大短板就是性能。Twitter最早就是使用Ruby on Rails開(kāi)發(fā)的,但是隨著用戶(hù)數(shù)的逐步增長(zhǎng),Twitter的宕機(jī)開(kāi)始變得非常頻繁,后來(lái)他們迫不得已將整個(gè)系統(tǒng)從Ruby遷移到到了一個(gè)從Java派生出來(lái)的語(yǔ)言Scala。
4、node.js
簡(jiǎn)單來(lái)說(shuō),可以把node.js理解為跑在服務(wù)器上的javascript,再直白一點(diǎn),就是一個(gè)跑在服務(wù)器上的瀏覽器,因?yàn)閚ode.js最早就是從chrome瀏覽器的Javascript引擎V8中剝離出來(lái)的。相比Ruby,Node.js程序可以獲得更高的并發(fā)性能,這在一些高并發(fā)的場(chǎng)景下(比如群聊,多人協(xié)作等)會(huì)很有優(yōu)勢(shì)。
5、其它(python,closure 等)
6、無(wú)后端(leancloud)
無(wú)后端編程是最近的一個(gè)新趨勢(shì),但她并非說(shuō)是真的沒(méi)有后端,而只是把后端交給一些第三方的云平臺(tái),比如 Leancloud,F(xiàn)irebase等。如果你開(kāi)發(fā)一個(gè)手機(jī)App,這樣的好處就是你可以在早期沒(méi)有后端程序員的情況下快速開(kāi)工,像Leancloud這樣的云平臺(tái)已經(jīng)可以勝任大部分的應(yīng)用場(chǎng)景,如果后期業(yè)務(wù)邏輯復(fù)雜之后再尋找合適的后端工程師遷移也不遲。
7、最強(qiáng)編程語(yǔ)言 Lisp
如果要評(píng)選一個(gè)最強(qiáng)的編程語(yǔ)言,該是哪個(gè)呢?答案就是Lisp。為什么是Lisp?Lisp的作者在很早以前就從數(shù)學(xué)的層面總結(jié)了一個(gè)好的編程語(yǔ)言應(yīng)該具備的9種能力,而Lisp就是為了配合他的這個(gè)理論而產(chǎn)生出來(lái)的語(yǔ)言。Hacker News 是由YC的創(chuàng)始人Paul Graham開(kāi)發(fā)的,而Paul Graham本身就是一個(gè)Lisp程序員,他為了開(kāi)發(fā)Hacker News,專(zhuān)門(mén)發(fā)明了一種新語(yǔ)言叫做Arc,但因?yàn)樗腔贚isp的,所以也被歸為了Lisp的方言之一。
數(shù)據(jù)庫(kù)
我們平常訪(fǎng)問(wèn)的大部分網(wǎng)站都是需要登錄操作的,登錄之后我們看到的就是只和自己相關(guān)的那部分內(nèi)容。這些用戶(hù)信息是保存在什么地方的呢?這就需要用到數(shù)據(jù)庫(kù)。關(guān)于數(shù)據(jù)庫(kù),代表性的有兩個(gè):
1、MySQL
2、MongoDB
MySQL 是最常用的結(jié)構(gòu)化數(shù)據(jù)庫(kù),也是大多數(shù)創(chuàng)業(yè)公司的選擇。為什么是結(jié)構(gòu)化的?就是說(shuō)它的表的結(jié)構(gòu)是固定的,比如我們常見(jiàn)的 User 表在 MySQL 中就是這樣的:
id name email password
1 一元 y@modao.io $2a$10$ZxNhLyDTdagtUc...
2 產(chǎn)品集小妹 xiaomei@36kr.com$2a$10$zK7TnBXYYFz...
如果我們需要取得一條用戶(hù)記錄來(lái)檢查他輸入的密碼是否正確,這時(shí)我們就需要使用 SQL,SQL 就是結(jié)構(gòu)化查詢(xún)語(yǔ)言。
簡(jiǎn)單來(lái)說(shuō),SQL 數(shù)據(jù)庫(kù)保存的是結(jié)構(gòu)化數(shù)據(jù),NOSQL 數(shù)據(jù)庫(kù)則可以保存非結(jié)構(gòu)化數(shù)據(jù)。舉個(gè)例子,還拿上面的用戶(hù)表來(lái)舉例,如果我們現(xiàn)在想要給產(chǎn)品集小妹增加一些額外的屬性,比如她給某個(gè)產(chǎn)品點(diǎn)贊可以效果 x2,那么如果是 SQL 數(shù)據(jù)庫(kù),我們就需要給數(shù)據(jù)庫(kù)增加一個(gè)新的字段來(lái)保存這個(gè)屬性:
id name email x2
1 一元 y@modao.io false
2 產(chǎn)品集小妹 xiaomei@36kr.com true
但是如果是 MongoDB 這樣的 NOSQL 數(shù)據(jù)庫(kù),我們就不需要給所有用戶(hù)都增加一個(gè)x2的屬性,只需要給產(chǎn)品集小妹單獨(dú)增加就可以了,NOSQL 中保存到數(shù)據(jù)是如下這個(gè)樣子的:
{id: ‘1’, name: ‘一元’, email: 'y@modao.io’, password: ‘…’}
{id: ‘1’, name: ‘產(chǎn)品集小妹’, email: 'xiaomei@36kr.com’, password: ‘…’, x2: true}
Cookie 和 Session
服務(wù)器要處理成千上萬(wàn)用戶(hù)的請(qǐng)求,那么他是如何區(qū)分每個(gè)用戶(hù),并返回給每個(gè)用戶(hù)他所需要的內(nèi)容的 ?這就要涉及到 Cookie 和 Session。我們可以將 Cookie 理解為是服務(wù)器給每個(gè)用戶(hù)分配的唯一 ID,這個(gè) ID 由用戶(hù)瀏覽器保存,而 Session 則是服務(wù)器為了維護(hù)這個(gè)會(huì)話(huà)在服務(wù)器端保存的與 cookie 對(duì)應(yīng)的用戶(hù)數(shù)據(jù)。
本文標(biāo)題:網(wǎng)站的后端開(kāi)發(fā)語(yǔ)言。
文章出自:http://www.rwnh.cn/news45/78895.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、云服務(wù)器、定制網(wǎng)站、虛擬主機(jī)、自適應(yīng)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容