iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
自我挑戰組

富士大顆系列 第 2

vol.02 前端後端全端李四端(下)探索後端工程師的必備技能

  • 分享至 

  • xImage
  •  

Demo Day 結束的隔天,迎來星期日的大爆睡,今天只有燃燒 0.02 大卡,一堆事情還沒做:夢幻沒領、超夢沒打、文章還沒寫。
老師把 Demo Day 的影片上傳,還沒膽看。


OK, 今天來講二端:後端與全端。

後端牽涉的主要就是開發和維護 APP 的後端(廢話?),舉凡像是搭建伺服器環境、資料庫設計、使用者驗證、安全性設定、效能優化等等,還包括 API 開發。

伺服器是什麼?是硬硬的東西嗎?

伺服器(Server)是一種硬體或軟體設備,用於接收、處理和回應來自網路或其他計算機的請求。
硬體伺服器是實體的設備,通常儲存在數據中心或伺服器房間中。而軟體伺服器則是運行在這些硬體上的軟體程式。
簡單來說,伺服器是一種計算機,但它的目的不同於一般的計算機(不是放在桌上的那種),主要是用來提供服務、處理請求和儲存資料。以下是關於伺服器的功能:

接收/處理/回應請求:

伺服器等待來自使用者端的請求,這些請求可以使用不同通訊協定(例如 HTTP、FTP、SMTP)。一旦伺服器接收到請求,它會根據請求的類型和內容進行處理,例如:資料查詢、文件寫入、安全驗證等。接著伺服器會生成回應,包括所需的數據、資源或操作結果。回應通常以指定的格式(例如 HTML、JSON、XML)返回給使用者端,所以通常開發者要把這些資料再進行調整,讓使用者可以看得懂。

安全性與管理:

伺服器通常包括安全性措施,以保護數據和資源免受未經授權的瀏覽和攻擊。包括防火牆、加密、身份驗證和授權機制。伺服器需要定期監視和管理,以確保它們的運行狀態正常,並迅速應對故障或問題。

其他服務:

包括網頁托管(Cloudflare, go Daddy)、電子郵件、文件共享、數據暫存、應用程序運行等。不同類型的伺服器用於不同的用途,例如 Web 伺服器、電子郵件伺服器、資料庫伺服器等。

那 API(Application Programming Interface) 是什麼?

一種軟體設計和開發的概念,用於定義不同軟體組件之間的互動方式和通信協議。簡單來說,API 允許不同的軟體系統之間進行溝通,以執行特定的功能或執行特定的任務。例如專案需要抓到 Google Map ,就要串連 Google 的 API,當使用者點開網站,想看到的地圖(發送請求),就是在進行「打 API 」,為什麼要用「打」,我猜是跟「打」電話的「打」有異曲同工之妙。
軟體庫和框架通常提供 API,供開發者方便在自己的 APP 中使用。例如,JavaScript 框架如 React和 Angular 就提供了用於建構前端 APP 的 API。

以下是一些有關 API 的重要概念:

介面(Application Programming Interface):

API 提供介面(這個介面並非使用者端的介面),開發者可以用它來進行某軟體或服務功能。通常會有一些使用規範。只要開發者照著規範執行,就可以簡單調用 API 提供的操作。

互動與 HTTP 請求:

透過 API,不同的軟體可以相互交流,API 互動通常涉及到一方發送請求,另一方發送回應的過程。請求是一種向另一方請求特定操作或數據的方式,而回應是對請求的回應,包含所需的數據或操作結果。以 Web API 而言,常見的互動方式是使用 HTTP 請求,例如 GET、POST、PUT、DELETE 等,伺服器收到請求後執行相應的操作,並返回 HTTP 回應(通常包含 JSON 或 XML 數據)。

端點(Endpoint):

API 提供的特定 URL 或路徑,用於執行指定的操作。例如:/api/users/register,使用者可以進到此端點註冊新帳戶。/api/posts/create,則是讓使用者可以撰寫文章。Endpoint 在 Web API 中通常遵守 RESTful 設計原則,建立具有可讀性和可預測性(就是字面上可以看得懂這個連結要幹嘛)的 API。RESTful 的詳細介紹我們之後再說~

身份驗證和授權:

有時候一些 API 會需要身份驗證,以驗證請求的來源和權限,像 Ruby 在接收前端資料前,會需要寫 params,所謂的「清洗」資料,才能傳進來,避免有心人士送來奇怪的東西。而身份驗證通常通過 API 金鑰、令牌或用戶名密碼等方式進行,尤其在串金流的時候,那個 API...會滿複雜的^^"。

狀態碼:

回應中的狀態碼指示請求的結果,例如,200 表示成功得到結果,404 表示未找到,500 表示伺服器錯誤等。

API 互動是現代應用程序中的基本概念之一,它使不同系統能夠相互協作,從而提供更強大和靈活的功能。開發人員通過了解和正確使用 API,可以做出功能豐富的應用程序,並將它們連接到各種服務和數據資源。

說這麼多,那到底後端工程師要會什麼?

-程式語言: 後端工程師通常需要掌握至少一種後端程式語言,例如:

  • Ruby(例如 Ruby on Rails 框架)
  • Python(例如 Django 框架)
  • Java(例如 Spring 框架)
  • JavaScript(例如 Node.js)
  • PHP(例如 Laravel 框架)
  • Go(Golang)
  • C#(例如 ASP.NET)

-伺服器和網路: 需要了解伺服器、網路協議(如 HTTP、HTTPS )、網路安全性和基本的網路架構。

-資料庫: 操作和管理資料庫是後端工程師的關鍵職責。他們需要了解關聯資料庫(如 MySQL、PostgreSQL、SQLite)和NoSQL 資料庫(如 MongoDB、Redis ),及資料庫設計、優化、查詢和索引。

-API 開發: 後端工程師通常負責設計和執行應用程式的 API,讓不同的應用程式可以相互「溝通」。

-會用框架: 使用後端框架可以提高開發效率。具體的框架取決於所選擇的程式語言,例如 Ruby on Rails、Django、Express.js、Laravel 等。

-安全性: 需要了解常見的網路安全威脅,並實施相應措施,包括身份驗證、授權、跨站腳本(XSS)和跨站請求偽造(CSRF)保護。

-伺服器管理: 應該知道如何配置、監視和管理伺服器,包括使用伺服器操作系統(如 Linux )和容器化技術(如Docker)。

-效能優化: 理解快取機制(Cache)和網站效能優化。

-問題排除和監控: 能夠快速排除錯誤並設置監控工具以檢測問題。

-雲端服務: 了解雲端服務提供商(如 AWS、Azure、Google Cloud )以及如何在雲端上部署和管理應用程式。

總之,後端工程師的角色相當多樣且具有挑戰性,他們需要掌握多種技術並解決複雜的問題,以確保應用程式的正常運行。隨著科技的不斷發展,後端工程師的技能和知識也需要不斷更新和擴展。

那全端當然就是前面後面都要懂的啦!
這個也是 AstroCamp 的期許,希望同學們不要把路走窄了
只是對於新手來說,學好一種語言就真的是滿厲害的,還要學兩個以上...
那自然是沒問題的啦因為我們都很棒> <


上一篇
vol.01 前端後端全端李四端(上)轉職前端前,你要知道的 3 個重點
下一篇
vol.03 全端學習推薦大禮包:10 個你無法說 no 的線上免費資源
系列文
富士大顆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言