Web Symphony

採用前後端分離架構,前端透過Hugo框架管理網站內容,後端使用Gin框架處理CRUD資料API。分離的架構使前端呈現更為流暢,後端數據處理更可靠高效。整體提升網站效能、可維護性,並便於擴展與迭代。

架構與技術說明

專案介紹 本專案主要使用Go語言撰寫的Web應用: [ChatGPT Shared Chat] 可以管理ChatGPT導出的分享連結,讓使用者可以方便的管理和分享這些ChatGPT生成的連結。 主要特色 前後端分離架構: 前端使用Hugo框架來管理網站的內容,而後端則使用Gin框架來處理CRUD(建立、讀取、更新、刪除)資料API。這種分離的架構讓前端的呈現變得更流暢,而後端的資料處理也更可靠和高效。整體而言,這樣的設計可以提升網站的效能、可維護性,並且也更容易進行擴展和迭代。 自動化單元測試: 透過GitHub Actions在每次push時自動執行backend的單元測試,這可以確保每次的更動都不會對已經存在的功能產生不期望的影響。 自動化部署: 使用GitHub Actions自動進行HUGO的發版和部署,降低手動發版的可能錯誤,並且提升了部署的效率。 後端使用技術 後端專案github repository: [YuanData/SharedBoard] Gin-gonic: Gin是用Go語言編寫的web框架,它是高效且靈活的。 sqlc: 是用Go實作之SQL Compiler,可以使用SQL語句來生成類型安全的Go語言程式碼的工具。 postgres: 使用postgres作為資料庫系統,它是功能強大且穩定的開源資料庫系統。 go migrate: 是用Go語言撰寫的資料庫遷移工具,可以方便的進行資料庫的版本控制。 go mockgen: 是用於生成Go語言的mock物件的工具,可以方便的進行單元測試。 go test: Go語言的內建測試工具。 前端使用技術 前端專案github repository: [YuanData/SharedForm] HUGO: HUGO是用Go語言撰寫的靜態網站生成器,這裡使用HUGO的template系統來進行版面的元件控制。 AJAX: 透過原生Javascript語法控制互動介面,對接API進行非同步的資料存取。 DevOps使用技術 Docker: 利用容器技術,可以方便的進行應用程式的擴展和部署,這裡使用docker-compose up命令來完成整個架構的部署。 GitHub Actions: 這是一個CI/CD(持續整合/持續部署)工具,可以自動執行單元測試,並且自動部署到GitHub Pages site。 架構圖