后端開(kāi)發(fā)是什么? 你是否了解這些語(yǔ)言
后端指的是運(yùn)行在后臺(tái)并且控制著前端的內(nèi)容,它主要負(fù)責(zé)程序設(shè)計(jì)架構(gòu)思想,管理數(shù)據(jù)庫(kù)等。后端更多的是應(yīng)用到數(shù)據(jù)庫(kù)并且進(jìn)行交互以處理相應(yīng)的業(yè)務(wù)邏輯。它需要考慮的是如何實(shí)現(xiàn)功能、數(shù)據(jù)的存取、平臺(tái)的穩(wěn)定性與性能等方面。它涉及到的動(dòng)態(tài)語(yǔ)言如PHP、ASP、JSP等。
后端開(kāi)發(fā)基本知識(shí)框架
1.后端開(kāi)發(fā)語(yǔ)言
后端開(kāi)發(fā)語(yǔ)言眾多,不同領(lǐng)域使用的語(yǔ)言不同,目前比較流行的后端開(kāi)發(fā)語(yǔ)言有:Java、PHP、python、Asp.Net、Node.js、C/C++、C#、Golang、Ruby、Perl等等。但開(kāi)始你的后端開(kāi)發(fā)之旅前,你必須學(xué)習(xí)一門后端開(kāi)發(fā)語(yǔ)言。
?對(duì)于剛開(kāi)始進(jìn)入后端開(kāi)發(fā)的初學(xué)者,我建議你選擇任何腳本語(yǔ)言,因?yàn)樗麄冇泻芏喙δ埽梢宰屇憧焖倨鸩?。如果你有一些前端知識(shí),你可能會(huì)發(fā)現(xiàn) Node.js 更容易(還有一個(gè)很大的就業(yè)市場(chǎng))。如果你已經(jīng)是后端開(kāi)發(fā)并了解一些腳本語(yǔ)言,我建議不要選擇其他腳本語(yǔ)言,而應(yīng)該嘗試使用Java或Golang等,它一定會(huì)幫助你延伸思維,并將你的思想帶到新的視野。

2.?數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)是存放數(shù)據(jù)的倉(cāng)庫(kù)。數(shù)據(jù)庫(kù)主要分為關(guān)系型數(shù)據(jù)庫(kù)(Oracle、MySQL、Microsoft SQL Server、Sybase等)和非關(guān)系型數(shù)據(jù)庫(kù)(MongodDB、Redis、Hbase、Cassandra等),二者在存儲(chǔ)方式、存儲(chǔ)結(jié)構(gòu)和查詢方式等方面有所不同。你需要根據(jù)語(yǔ)言或需求選擇一種數(shù)據(jù)庫(kù)并了解如何將數(shù)據(jù)保存在數(shù)據(jù)庫(kù)中。主流搭配有PHP+MySQL,Asp.Net+ Microsoft SQL Server,Java+ Oracle等
3.?框架
框架通常指的是為了實(shí)現(xiàn)某個(gè)業(yè)界標(biāo)準(zhǔn)或完成特定基本任務(wù)的軟件組件規(guī)范,也指為了實(shí)現(xiàn)某個(gè)軟件組件規(guī)范時(shí),提供規(guī)范所要求之基礎(chǔ)功能的軟件產(chǎn)品。根據(jù)選擇的項(xiàng)目和語(yǔ)言,可能需要也可能不需要框架。每種語(yǔ)言都有幾個(gè)不同的選項(xiàng),看看選擇的語(yǔ)言有哪些選項(xiàng)可供選擇,然后選擇一個(gè)。下面我們著重講講Java和Python。
4.?網(wǎng)絡(luò)知識(shí)
?在后端開(kāi)發(fā)中需要關(guān)注很多的安全問(wèn)題,這些安全問(wèn)題可能來(lái)自惡意的攻擊,也可能來(lái)自系統(tǒng)本身的安全性和健壯性不足。所以我們需要了解一些網(wǎng)絡(luò)知識(shí)來(lái)規(guī)避常見(jiàn)的安全漏洞,處理各種網(wǎng)絡(luò)攻擊事件。包括但不限于權(quán)限管理、防火墻配置、日志系統(tǒng)、異常處理、shell腳本、各種安全攻擊方式等。

使用Java進(jìn)行后端開(kāi)發(fā)
MVC設(shè)計(jì)模式簡(jiǎn)介
MVC軟件設(shè)計(jì)模式即模型(Model)-視圖(View)-控制器(Controller)的縮寫(xiě),是一種軟件設(shè)計(jì)典范。前端發(fā)送請(qǐng)求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請(qǐng)求,持久層與數(shù)據(jù)庫(kù)交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。
1.?Java后端開(kāi)發(fā)簡(jiǎn)介
Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚?。Java具有分布式、健壯性、安全性、平臺(tái)獨(dú)立與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn)。Java是大部分企業(yè)最受歡迎的后端開(kāi)發(fā)語(yǔ)言,不過(guò)java開(kāi)發(fā)難度較大、量級(jí)重,所以適用于企業(yè)級(jí)大型項(xiàng)目的開(kāi)發(fā)。
2.?Java后端開(kāi)發(fā)主流框架技術(shù)
2016年之前SSH框架集(Struts框架+Spring框架+Hibernate框架)是Java較為流行后端開(kāi)發(fā)框架組合;近年來(lái)開(kāi)始流行使用SSM框架集(Spring框架 + SpringMVC框架 + MyBatis框架)來(lái)搭建項(xiàng)目的主體框架,至今多數(shù)Java項(xiàng)目仍使用SSM組合;而目前SpringBoot則是Java最熱門的框架,多數(shù)公司的新項(xiàng)目都將是SpringBoot;另外SpringClound框架也開(kāi)始越來(lái)越受開(kāi)發(fā)者青睞。技術(shù)是永遠(yuǎn)在變的,不要糾結(jié),直接學(xué)一個(gè),明白了,相應(yīng)的另一個(gè)看看文檔隨隨便便也就上手了。

2.1?SSH
SSH框架集是Struts框架、Spring框架、Hibernate框架的一個(gè)合成框架,Struts進(jìn)行流程控制;Spring進(jìn)行業(yè)務(wù)流轉(zhuǎn);Hibernate進(jìn)行數(shù)據(jù)庫(kù)操作的封裝。目前市場(chǎng)上比較流行的框架中也有它的身影。
2.2?SSM
SSM框架集由SpringMVC 、Spring、MyBatis整合而成,SpringMVC相當(dāng)于SSH中的Struts,負(fù)責(zé)進(jìn)行流程控制;Spring進(jìn)行業(yè)務(wù)流轉(zhuǎn);MyBatis相當(dāng)于SSH中的Hibernate,進(jìn)行數(shù)據(jù)庫(kù)操作的封裝。
2.3?SpringBoot
看完上面的介紹你會(huì)發(fā)現(xiàn),傳統(tǒng)的SSH,SSM開(kāi)發(fā)會(huì)有大量的配置文件,需要手動(dòng)的去整合三個(gè)框架,并且需要注意各種配置和兼容,后期的維護(hù)難度也很大。而Python,Node.js,PHP等腳本語(yǔ)言也越來(lái)越流行,能快速開(kāi)發(fā)的一個(gè)網(wǎng)站,這時(shí)候SSH,SSM開(kāi)發(fā)就顯得相對(duì)笨重了。
所以Springboot開(kāi)始變得流行,SpringBoot 簡(jiǎn)化了Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程。該框架使用了特定的方式來(lái)進(jìn)行配置,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置。SSH和SSM就好像開(kāi)手動(dòng)擋的汽車,需要踩離合,掛檔,給油車才能開(kāi)動(dòng)。而SprinBoot就好像自動(dòng)擋的汽車,給油就走,踩剎車就停。
2.4?SpringCloud
Spring Cloud則將目前各家公司開(kāi)發(fā)的比較成熟、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來(lái),基于Spring Boot風(fēng)格進(jìn)行再封裝,進(jìn)一步簡(jiǎn)化配置和實(shí)現(xiàn)原理,最終給開(kāi)發(fā)者留出了一套使用Python進(jìn)行后端開(kāi)發(fā)

Python后端開(kāi)發(fā)簡(jiǎn)介
Python是一種面向?qū)ο蟮膭?dòng)態(tài)類型語(yǔ)言,最初被設(shè)計(jì)用于編寫(xiě)自動(dòng)化腳本(shell),隨著版本的不斷更新和語(yǔ)言新功能的添加,越來(lái)越多被用于獨(dú)立的、大型項(xiàng)目的開(kāi)發(fā)。相對(duì)于其他后端開(kāi)發(fā)語(yǔ)言,Python有著語(yǔ)法簡(jiǎn)單,代碼開(kāi)發(fā)效率非常高,可移植性強(qiáng)、可讀性強(qiáng)、易于維護(hù)等優(yōu)點(diǎn)
1.python后端開(kāi)發(fā)主流框架技術(shù)
Python后端開(kāi)發(fā)有三大主流框架 :Flask、Tornado、Django
1.1?Flask
Flask是一個(gè)輕量級(jí)的可定制框架,較其他同類型框架更為靈活、輕便、安全且容易上手。它可以很好地結(jié)合MVC模式進(jìn)行開(kāi)發(fā),開(kāi)發(fā)人員分工合作,小型團(tuán)隊(duì)在短時(shí)間內(nèi)就可以完成功能豐富的中小型網(wǎng)站或Web服務(wù)的實(shí)現(xiàn)。另外,F(xiàn)lask還有很強(qiáng)的定制性,用戶可以根據(jù)自己的需求來(lái)添加相應(yīng)的功能,在保持核心功能簡(jiǎn)單的同時(shí)實(shí)現(xiàn)功能的豐富與擴(kuò)展,其強(qiáng)大的插件庫(kù)可以讓用戶實(shí)現(xiàn)個(gè)性化的網(wǎng)站定制,開(kāi)發(fā)出功能強(qiáng)大的網(wǎng)站。

1.2?Tornado
Tornado是一種 Web 服務(wù)器軟件的開(kāi)源版本。Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架(包括大多數(shù) Python 的框架)有著明顯的區(qū)別:它是非阻塞式服務(wù)器,而且速度相當(dāng)快。得利于其非阻塞的方式和對(duì)epoll的運(yùn)用,Tornado 每秒可以處理數(shù)以千計(jì)的連接,因此 Tornado 是實(shí)時(shí) Web 服務(wù)的一個(gè)理想框架。
1.3?Django
Django是一個(gè)開(kāi)放源代碼的Web應(yīng)用框架。采用了MVC的框架模式。Django的主要目的是簡(jiǎn)便、快速的開(kāi)發(fā)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的網(wǎng)站。它強(qiáng)調(diào)代碼復(fù)用,多個(gè)組件可以很方便的以“插件”形式服務(wù)于整個(gè)框架,Django有許多功能強(qiáng)大的第三方插件,你甚至可以很方便的開(kāi)發(fā)出自己的工具包。這使得Django具有很強(qiáng)的可擴(kuò)展性。
總結(jié):
Flask:微型框架,體量小,擴(kuò)展能力強(qiáng),自由度高,開(kāi)發(fā)效率高,并發(fā)能力弱。適合用于小型應(yīng)用開(kāi)發(fā);如果開(kāi)發(fā)團(tuán)隊(duì)能力強(qiáng),也可以用來(lái)做大中型應(yīng)用
Django:大而全的框架,采用MVC結(jié)構(gòu),符合現(xiàn)在的主流,開(kāi)發(fā)效率高,擴(kuò)展性強(qiáng),并發(fā)能力弱,適合應(yīng)用用于訪問(wèn)量不大的大中型應(yīng)用
Tornado是異步框架,并發(fā)能力相對(duì)好,可拓展性強(qiáng),開(kāi)發(fā)效率介于flask、django之間,適合用于開(kāi)發(fā)長(zhǎng)連接多的web應(yīng)用。比如股票信息推送、網(wǎng)絡(luò)聊天等。
總結(jié):作為一名合格的后端開(kāi)發(fā)人員應(yīng)該掌握各種各樣的框架和庫(kù),還可以將它們集成到應(yīng)用程序中,以及構(gòu)建代碼和業(yè)務(wù)邏輯中去。
