※這篇是寫給非技術人的介紹,會用些許精確性換取更加通俗易懂。

前端跟後端其實都是跑在電腦上的應用程式,只不過他們運行的地方不同,後端運行在世界上的某個機房的伺服器裡面,前端則運行在人們面前的那台電腦上。

上面所說的伺服器其實也是由電腦組成的,只不過那種電腦跟平常見到的不太一樣,他是長這樣子的:

https://www.lenovo.com/medias/lenovo-data-center-servers-rack-thinksystem-sr250-subseries-gallery-1.jpg?context=bWFzdGVyfHJvb3R8MTk4MTR8aW1hZ2UvanBlZ3xoNzAvaGY1Lzk4NDM4MzY1ODM5NjYuanBnfDJkN2U1MmI1NDZjMjEzZmM4YWY4Nzk2NjA4ZGViOGZjNjA4NjFkN2Q3ZDcxY2ZkM2NiZDY2N2Q1MTBjYjU3ZWM

大部分的時候這種特製的電腦並不會單獨出現,他們會被一整群的安裝在一個設計好的櫃子哩,這種櫃子就稱作機櫃,是長這樣子的:

https://superworld.com.sg/wp-content/uploads/2019/12/server.jpg

大公司的資料中心裡面會有無數的機櫃,數百至上千台伺服器主機,看起來就會像電影中能夠看到的資料中心的樣子:

https://static.coindesk.com/wp-content/uploads/2020/04/servers.jpg

一般會把這些硬體設施加上裡面運行的軟體稱為伺服器,當我們在講後端的時候其實講的就是運行在伺服器裡面的軟體。打個比方來說伺服器其實就像一個人,一個人有身體也有看不見的心靈,可以把一台台伺服器主機想像成腦細胞,數台伺服器主機會組合成一顆人腦,可以記憶也可以思考(計算),而後端就像伺服器的心智。

電腦比較單純,不叫他做事情就不會動,也不知道怎麼做,工程師寫的 code 就像一本很詳細操作指南,工程師把這本指南交給伺服器,伺服器就能夠根據上面的指示去做事情。拿到了指南之後伺服器就學會了怎麼「思考」,也就是後端。既然是電腦思考跟記憶的過程,理所當然的看不到也摸不到,想要知道一個人在想什麼只能問他,想要知道伺服器現在想什麼(運行的狀況)也是一樣的,要去問伺服器,我們可以透過伺服器對外連接的線路(網路線)或設備(鍵盤)去跟他做溝通。

問了伺服器問題通常會有答案,當然也可能因為他沒聽到(網路斷了)所以沒有答案,然而這答案很難懂,反正一般人是看不懂的,所以我們需要另外一台電腦來幫忙翻譯成人能看懂的樣子,這就是前端。前端是運行在面前能夠看到的電腦上,可以把這當成另外一個人,這個人的職責跟伺服器不太一樣,工程師拿給伺服器的操作指南是要他幫忙記住一些資訊跟做一些計算,工程師拿給面前這台電腦的操作指南則是教這台電腦怎麼把那很難理解的答案處理成人們容易理解的樣子,就像專業簡報大師,除此之外也要把人想做的事情翻譯成伺服器懂得樣子。其實也可以把上面的那堆文字變成比較好理解的圖片:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8ee2d897-4695-4251-be09-90285be084f1/front-back.png

而程式語言其實就真的是一種「語言」,工程師可以透過這種語言描述事情具體要怎麼做,機器如果學過這種語言,就可以讀這本操作手冊,然後知道該怎麼思考。機器如果沒學過呢?那就讓他學就好了,所有電腦都是記憶大師,學起語言來可比人類快多了。