---
# System prepended metadata

title: 心得- 關於前後端以及資料庫
tags: [軟體, 學習心得]

---

# 心得- 關於前後端以及資料庫

###### tags: `學習心得` `軟體`

### 前端
複雜起來，專案架構可以像後端，然而本質還是跟後端有很大的差異，主要負責
1. 接收後端傳遞過來的資料
2. 使用者資料的處理
3. 單一(每位使用者都有自己的網頁/應用程式)
4. 著重於使用者體驗
5. 安全性-輸入驗證和使用者身分驗證
6. 語言 JS/TS + HTML + CSS(現為多使用框架Angular, Vue, React)
7. 很喜歡推陳出新的變化


### 後端
相對於前端的快速發展(例如資料流接收的演變，以及框架的推陳出新)，後端的發展顯得緩慢而穩定，確保每個功能推出可以向下相容，並且改動幅度不會太過於可怕，一個大版本的推出會讓後端人員很痛苦，因為基本上是相依於硬體上的架構大調整，例如跨平台。主要負責
1. 處理數千個請求，甚至更多(良好的併發處理是好系統的依據)
2. 安全性-加密，保護資料庫，防止駭客等等，看起來很厲害安全性技術基本上就是在後端實現。
3. 語言 (C#、Java、Python、Ruby)(免不了的框架C# 的.net .net framework, Jave的Spring, Ruby的 Rails )
4. 有時候後端也可以生成前段的東西，但我覺得不好維護(比較喜歡前後端分離模式)


### 資料庫
電子化的紙本資料儲存，並且擁有設計良好的結構和資料夾層，以個人經驗，一開始最不喜歡接觸資料庫，經過多個專案的經歷，好的資料庫帶你飛上天，壞的資料庫設計，只想重新設計。

資料有分為兩種模式

1. 關聯式(RDBMS)
    * 常見程式：MySQL、PostgreSQL、Microsoft SQL Server
    * 必備
    * 使用不同 table 存取不同類型的內容

2. 非關聯式(NoSQL )
    * 類似 JSON 資料進 Database
    * key-value 存法(字典模式)
    * 用來存一些結構不固定的資料(例如 社群網站個人資料關聯)

