天天看點

20年秃頭小生淺講後端的工作原理,後端開發語言及架構,聽着爽哉

作者:程式員進階碼農II

後端架構

前面介紹了前端架構需要關注的問題及其解決方法。

本篇将介紹後端架構需要關注的問題及其解決方法。需要注意的是,這裡的後端指的是B/S架構網站中的後端應用軟體。

注意:本篇的具體例子都以Java作為開發語言,以Spring Boot作為基礎架構。雖然在一些細節上與其他語言或架構有一些差別,但是大體原理是相通的。

後端的工作原理

在讨論後端架構之前,我們先對比一下後端開發語言,然後搭建一個後端應用程式的伺服器,接着構造一個簡單的應用程式,之後再講解後端應用軟體的工作原理。了解了後端應用軟體的工作原理之後,我們才能更好地了解後端架構需要關注的細節。

注意:本節的例子将以Java作為開發語言,如果你使用的開發語言不是Java,可以适當跳過一些内容。

後端開發語言及架構

與基礎技術相對固定(HTML+CSS+JavaScript)的前端網頁不同,後端應用程式的開發語言和對應架構都是多種多樣的。下面介紹比較流行的後端程式開發語言及其架構。

1.PHP

PHP(PHP:Hypertext Preprocessor,超文本預處理器)是一種腳本語言,主要應用于Web開發領域,發展得比較成熟。PHP是弱類型的開發語言,文法上混合了C、Java、Perl及PHP自創的文法,是以上手比較容易。PHP可以跨平台使用,可以運作在Windows及Linux等平台。

PHP的架構有ThinkPHP、Laravel和Yii等,這些架構都有一定的難度,部分架構需要編譯、打包等操作。

PHP擁有足夠的Web開發擴充,在Web開發上效率較高。PHP是一門腳本語言,運作效率有限。雖然PHP也可以實作B/S架構中的後端應用程式,但是在大多數情況下用其制作的網站還是動态網站。是以,PHP一般适用于中小型網站的開發。

2.Python

Python是一種腳本語言,應用的領域比較多,如Web開發、科學計算和統計、人工智能、網絡爬蟲等。Python是弱類型的開發語言,其文法十分簡潔,是以極易上手,而且開發效率相當高。Python可以跨平台運作,可以運作在Windows和Linux等平台上。

Python的Web開發架構有Django、Tornado和Flask等,這些架構有一定的學習成本,但是相對來說還是比較容易上手的。

Python除了Web開發的擴充外,還包含其他領域的擴充(如網絡爬蟲等),這使得使用Python編寫的後端應用程式在功能上可以豐富一些。由于Python文法十分簡潔,開發效率比較高,是以适合開發一些需要快速上線的網站功能。但是Python是一門腳本語言,運作效率有限,應對高并發的場景時有些乏力。

3.Java

Java是需要編譯的一種語言,應用的領域也比較多,在Web應用程式開發領域是比較流行的。Java是強類型的開發語言,文法上類似于C++,不過不需要像C++一樣關注位址,但是Java上手還是比較困難的。Java可以跨平台使用,可以運作在Windows及Linux等平台上。

Java的Web開發架構有Spring MVC、Spring Boot和Spring Cloud等,并且這3個架構的基本原理類似,不過Spring Cloud是微服務架構。

Java的Web開發效率沒有PHP或Python高,但是Java的運作效率相對較高,應對高并發的場景時表現比較好,是以适用于大型網站開發。

4.其他語言

除了PHP、Python和Java外,可以用作後端應用程式的開發語言還有很多,如C++、Ruby和C#等。但這些語言由于開發成本或平台限制等因素,在Web開發領域并不流行,是以這裡不展開介紹。

注意:雖然C++比Java的運作效率更高,理論上來講,C++在應對高并發的場景時表現得更好一些,但是C++的開發成本比Java高,而且在Web開發領域沒有充足的擴充,是以C++不作為Web開發的推薦語言。

對于大型網站而言,由于開發成本和功能上線時間限制等因素,大型網站的應用程式部分可能是用多種語言開發的。但是,由于大型網站需要應對大量使用者,即需要應對高并發的場景比較多,是以一般采用Java作為主要開發語言。

Java的Web開發架構一般采用Spring Boot。這是因為相比Spring MVC,Spring Boot具有更好的包管理和配置方式,而Spring Cloud是微服務架構,我們在前面中提到過,微服務是有一定争議的技術架構。

綜上所述,本篇的具體例子将會以Java作為開發語言,以Spring Boot作為基礎架構。值得一提的是,不同的開發語言和架構在處理一些問題時是有差別的,但是需要處理的問題都是雷同的。

本文給大家講解的内容是大型網站架構的技術細節:後端架構,後端的工作原理,後端開發語言及架構

  1. 下篇文章給大家講解的内容是大型網站架構的技術細節:後端架構,後端的工作原理,搭建Web應用伺服器
  2. 覺得文章不錯的朋友可以轉發此文關注小編;
  3. 感謝大家的支援

繼續閱讀