很難找到一款開發效率高,易上手可以普遍推廣,性能好(節省成本抗住大併發C10k), 部署簡單(一鍵部署,無需配置任何環境)的Http項目開發框架。若是有,那麼必定是用Go語言開發的吧!看到不少php的仁兄還沒接觸Go語言。想起以往用php框架像laravel開發,php-fpm部署運行,併發起來瘋狂加機器的日子,眼淚就流下來。儘管後來有了swoole這種優秀的解決方案。Go的天生底層網絡處理優點仍是獨樹一幟(請忘了它的語法)。因而,我向即將或已經遭受併發之苦,成本之痛,部署之心累的底層碼農們推薦一門神奇的語言Go,以及一個優秀的Web開發框架Gin。Beego?聽過不少吐槽,不敢輕易用。因爲Gin很"簡單",根據一些我的的開發習慣,整理了一個基於Gin新手入門項目開發骨架,歡迎下載一波感覺一下。如下正文:php
地址:https://github.com/chenhg5/mo...css
基於Gin的web項目開發框架。僅供參考。前端
更高的開發效率,
更好的性能,
更簡單整潔的項目組織結構,
更快的部署。mysql
適合於小型項目,大中型項目(pv高、需求複雜度高)移步 kit、go-micro、kitenginx
使用安裝器安裝laravel
cd $GOPATH/src wget https://gitee.com/cg33/morningo-installer/raw/master/morningo-installer # mac wget https://gitee.com/cg33/morningo-installer/raw/master/morningo-installer-linus # linus wget https://gitee.com/cg33/morningo-installer/raw/master/morningo-installer.exe # windows chmod +x morningo-installer ./morningo-installer --project-name web
cd web make deps
make test
make restart
make
瀏覽器訪問 http://localhost:4000/api/indexgit
生成可執行文件github
make build # linus用戶 make cross # mac/windows用戶
將build
下文件上傳到生產環境服務器,並設置好日誌文件路徑以及靜態文件路徑,而後直接運行便可。如端口不爲80端口或有多個域名,能夠配置nginx代理,或者採用反向代理中間件gin-reverseproxy, 關於代理的使用,routers.go
中有示例。運行的同時會在文件夾下生成pid
文件,每次更新完文件後執行以下命令便可平滑熱更。web
kill -INT $(cat pid) && ./morningo # 即中止舊的進程,重啓新的執行文件
. ├── Makefile ├── README.md ├── command │ └── sword.go ├── config 全局配置 │ └── env.go ├── connections 存儲鏈接 │ ├── database │ │ ├── mongodb │ │ └── mysql │ └── redis │ └── redis.go ├── controllers 控制器 │ └── MainController.go ├── filters 中間件 │ └── auth 認證中間件 │ ├── drivers 認證引擎 │ └── auth.go ├── frontend 前端資源 │ ├── assets │ │ ├── css │ │ ├── images │ │ └── js │ ├── dist │ └── templates │ └── index.tpl ├── handle.go 全局錯誤處理 ├── main.go ├── models 模型 │ └── User.go ├── module 項目模塊 │ └── schedule │ └── schedule.go 定時任務模塊 ├── routers.go 路由 ├── routers_test.go api測試 ├── storage │ ├── cache 緩存文件 │ └── logs 項目日誌 │ ├── access.log │ └── error.log └── vendor govendor 第三方包