# 心得- 關於前後端以及資料庫 ###### 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 存法(字典模式) * 用來存一些結構不固定的資料(例如 社群網站個人資料關聯)