補一下之前的web前端的圖
詳細的前端技術(shù)什么的,由于筆者是才入門的小白舔痪,技術(shù)相關(guān)的只能從理論開始擎厢,沒有很豐富的知識及實踐能力,所以寫的同時更多的是說明思維以及想法予跌,技術(shù)談不了,也不敢談善茎,頂多引用一下大神的話語.
上次說了不少關(guān)于web前端的相關(guān)知識券册,今天說下web后端這塊的來源及相關(guān)知識.
早期互聯(lián)網(wǎng)的發(fā)展是沒有前后端這么明顯的說法,早期的Web項目是一個封閉的項目垂涯,用戶從瀏覽器里看到的頁面直到后臺數(shù)據(jù)庫都是在一個項目里集成的烁焙,而現(xiàn)在Web系統(tǒng)的規(guī)模越來越大,中大型的Web系統(tǒng)是一個開放式的系統(tǒng)耕赘,開放型的系統(tǒng)用戶在瀏覽器發(fā)起的請求可能會轉(zhuǎn)發(fā)到外部的系統(tǒng)里進行處理骄蝇,或者是本地的系統(tǒng)和外部系統(tǒng)一起完成請求的處理,此外有的請求可能不會直接請求數(shù)據(jù)庫操骡,而是請求緩存服務器九火,這些變化幾乎都是發(fā)生在Web系統(tǒng)的服務端,前后端耦合度很高的Web系統(tǒng)服務端的復雜度提升必然帶來了Web前端的復雜度的提升册招。因此Web前端從系統(tǒng)架構(gòu)的角度也需要更加專業(yè)的管控岔激,管控的作用之一就是前后端進行分離,降低前端對服務端的依耐性是掰,這個時候前后端開始分家做事鹦倚,對應的web框架也就出來了.
首先說下什么是前端,什么時候后端冀惭。
前端:相對靜態(tài)化.前端有且僅有靜態(tài)內(nèi)容,再明確些,只有HTML/CSS/JS等. 其內(nèi)容來自于完全靜態(tài)的資源而不需要任何后臺技術(shù)進行動態(tài)化組裝.前端內(nèi)容的運行環(huán)境和引擎完全基于瀏覽器本身.
后端:后端可以用任何語言,技術(shù)和平臺實現(xiàn),但它們必須遵循一個原則:只提供數(shù)據(jù),不提供任何和界面表現(xiàn)有關(guān)的內(nèi)容.換言之,他們提供的數(shù)據(jù)可以用于任何其他客戶端(如本地化程序,移動端程序).
前后端的接口:數(shù)據(jù)
前后端究竟是什么樣的震叙?
在這個情況下基本就明了了扔嵌,前后分離方便管理,方便維護.
前端呈現(xiàn)效果夺颤,后端邏輯計算痢缎,數(shù)據(jù)管理.
還不懂?
這下從邏輯圖世澜,到詳細的流程圖独旷,你也該看懂了吧..
知乎大神推薦的
需要的技能也列出來:
1/ .net/java
龐大,復雜寥裂。但?Java?的優(yōu)點就是適合處理特別大的數(shù)據(jù)量嵌洼,如果你的項目會很快實現(xiàn)大爆發(fā),需要處理海量的請求封恰,那么?Java?是一個不錯的選擇麻养。
2/ PHP
可以快速上手,相比其他語言诺舔,可以更快的為應用添加各種新功能鳖昌。當然,可維護性就另當別論了低飒。
3/ Ruby
非常接近自然語言遗遵,基本上即使不懂編程,也能看明白?70% 或?80%逸嘀。04?年出現(xiàn)了一個用?Ruby?編寫的?Web?開發(fā)框架?Ruby?on Rails车要,當時的效果是非常震撼的,以前需要一個團隊才能搞定的事情崭倘,使用?Ruby on Rails?后?1?個人就可以勝任了翼岁,所以?Ruby on Rails?在極短的時間內(nèi)就成為了?Ruby?的代名詞,也成為了新手學習?Web?開發(fā)的不二選擇司光,但是?Ruby?語言也并非十全十美琅坡,快的同時,他的最大短板就是性能残家。Twitter?最早就是使用?Ruby on Rails?開發(fā)的榆俺,但是隨著用戶數(shù)的逐步增長,Twitter?的宕機開始變得非常頻繁坞淮,后來他們迫不得已將整個系統(tǒng)從?Ruby?遷移到到了一個從?Java?派生出來的語言?Scala茴晋。
4/ node.js
簡單來說,可以把?node.js?理解為跑在服務器上的?javascript回窘,再直白一點诺擅,就是一個跑在服務器上的瀏覽器,因為?node.js?最早就是從?chrome?瀏覽器的 Javascript?引擎?V8?中剝離出來的啡直。相比?Ruby烁涌,Node.js?程序可以獲得更高的并發(fā)性能苍碟,這在一些高并發(fā)的場景下(比如群聊,多人協(xié)作等)會很有優(yōu)勢撮执。
5/ 其它(python微峰,closure 等)
6/ 無后端(leancloud)
無后端編程是最近的一個新趨勢,但她并非說是真的沒有后端抒钱,而只是把后端交給一些第三方的云平臺蜓肆,比如 Leancloud,F(xiàn)irebase?等继效。如果你開發(fā)一個手機?App症杏,這樣的好處就是你可以在早期沒有后端程序員的情況下快速開工装获,像 Leancloud?這樣的云平臺已經(jīng)可以勝任大部分的應用場景瑞信,如果后期業(yè)務邏輯復雜之后再尋找合適的后端工程師遷移也不遲。
7/ 最強編程語言 Lisp
如果要評選一個最強的編程語言穴豫,該是哪個呢凡简?答案就是 Lisp。為什么是?Lisp精肃?Lisp?的作者在很早以前就從數(shù)學的層面總結(jié)了一個完美的編程語言應該具備的?9?種能力秤涩,而?Lisp?就是為了配合他的這個理論而產(chǎn)生出來的語言。Hacker News 是由?YC?的創(chuàng)始人?Paul Graham?開發(fā)的司抱,而?Paul Graham?本身就是一個?Lisp?程序員筐眷,他為了開發(fā)?Hacker News,專門發(fā)明了一種新語言叫做?Arc习柠,但因為它是基于?Lisp?的匀谣,所以也被歸為了?Lisp?的方言之一。
數(shù)據(jù)庫
我們平常訪問的大部分網(wǎng)站都是需要登錄操作的资溃,登錄之后我們看到的就是只和自己相關(guān)的那部分內(nèi)容武翎。這些用戶信息是保存在什么地方的呢?這就需要用到數(shù)據(jù)庫溶锭。關(guān)于數(shù)據(jù)庫宝恶,代表性的有兩個:
1/ MySQL
2/ MongoDB
MySQL 是最常用的結(jié)構(gòu)化數(shù)據(jù)庫,也是大多數(shù)創(chuàng)業(yè)公司的選擇趴捅。為什么是結(jié)構(gòu)化的垫毙?就是說它的表的結(jié)構(gòu)是固定的
工具及環(huán)境:
來源:知乎
Windows系列(非主流),CoreOS+Docker拱绑,RedHat/Fedora/CentOS, Debain/Ubuntu, Arch, BSD系列.....
按IDE劃分:類編輯器:Sublime Text露久,VisualStudio Code,Notepad++欺栗,IDE類: Visual Studio毫痕,JetBrain系列征峦,Eclipse(老,丑消请,卡)栏笆,NetBeans……極客范:Vim+Emacs
備份相關(guān):rsync,replication臊泰,cluster蛉加,備份工具。
后端這塊大致就是這樣缸逃,詳細的談不來..
網(wǎng)上關(guān)于后端開發(fā)的技能樹很難找到针饥,下面是其他網(wǎng)友分享的一些技能樹
詳細點開就知道了
web前后端基本上介紹的差不多了,詳細的框架什么的會慢慢介紹.
今天就到這里....