在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ GO/ 13.1 項(xiàng)目規(guī)劃
7 文本處理
3 Web基礎(chǔ)
14 擴(kuò)展Web框架
10.4 小結(jié)
2.2 Go基礎(chǔ)
2.8 總結(jié)
6.1 session和cookie
5.5 使用beedb庫(kù)進(jìn)行ORM開(kāi)發(fā)
8.3 REST
13.6 小結(jié)
5.4 使用PostgreSQL數(shù)據(jù)庫(kù)
14.6 pprof支持
14.1 靜態(tài)文件支持
11.2 使用GDB調(diào)試
7.7 小結(jié)
1 GO環(huán)境配置
14.5 多語(yǔ)言支持
7.1 XML處理
1.5 總結(jié)
13 如何設(shè)計(jì)一個(gè)Web框架
14.3 表單及驗(yàn)證支持
12 部署與維護(hù)
10 國(guó)際化和本地化
1.1 Go 安裝
6.2 Go如何使用session
5.6 NOSQL數(shù)據(jù)庫(kù)操作
6.5 小結(jié)
9.4 避免SQL注入
12.1 應(yīng)用日志
4.2 驗(yàn)證表單的輸入
10.1 設(shè)置默認(rèn)地區(qū)
1.3 Go 命令
9.6 加密和解密數(shù)據(jù)
4.1 處理表單的輸入
4.4 防止多次遞交表單
11.3 Go怎么寫(xiě)測(cè)試用例
8 Web服務(wù)
12.3 應(yīng)用部署
5.7 小結(jié)
12.5 小結(jié)
11 錯(cuò)誤處理,調(diào)試和測(cè)試
9.2 確保輸入過(guò)濾
14.2 Session支持
6.4 預(yù)防session劫持
12.4 備份和恢復(fù)
8.1 Socket編程
13.1 項(xiàng)目規(guī)劃
13.4 日志和配置設(shè)計(jì)
7.6 字符串處理
13.2 自定義路由器設(shè)計(jì)
6.3 session存儲(chǔ)
3.4 Go的http包詳解
8.2 WebSocket
10.3 國(guó)際化站點(diǎn)
7.5 文件操作
7.4 模板處理
9.1 預(yù)防CSRF攻擊
13.3 controller設(shè)計(jì)
2.6 interface
14.4 用戶認(rèn)證
2.3 流程和函數(shù)
附錄A 參考資料
11.1 錯(cuò)誤處理
9.5 存儲(chǔ)密碼
9.3 避免XSS攻擊
12.2 網(wǎng)站錯(cuò)誤處理
6 session和數(shù)據(jù)存儲(chǔ)
2.4 struct類型
3.3 Go如何使得Web工作
2.5 面向?qū)ο?/span>
3.1 Web工作方式
1.2 GOPATH與工作空間
2.1 你好,Go
9.7 小結(jié)
13.5 實(shí)現(xiàn)博客的增刪改
7.2 JSON處理
10.2 本地化資源
7.3 正則處理
2 Go語(yǔ)言基礎(chǔ)
5.1 database/sql接口
4.5 處理文件上傳
8.5 小結(jié)
4.3 預(yù)防跨站腳本
5.3 使用SQLite數(shù)據(jù)庫(kù)
14.7 小結(jié)
3.2 Go搭建一個(gè)Web服務(wù)器
2.7 并發(fā)
5 訪問(wèn)數(shù)據(jù)庫(kù)
4 表單
3.5 小結(jié)
1.4 Go開(kāi)發(fā)工具
11.4 小結(jié)
9 安全與加密
5.2 使用MySQL數(shù)據(jù)庫(kù)
4.6 小結(jié)
8.4 RPC

13.1 項(xiàng)目規(guī)劃

做任何事情都需要做好規(guī)劃,那么我們?cè)陂_(kāi)發(fā)博客系統(tǒng)之前,同樣需要做好項(xiàng)目的規(guī)劃,如何設(shè)置目錄結(jié)構(gòu),如何理解整個(gè)項(xiàng)目的流程圖,當(dāng)我們理解了應(yīng)用的執(zhí)行過(guò)程,那么接下來(lái)的設(shè)計(jì)編碼就會(huì)變得相對(duì)容易了

gopath以及項(xiàng)目設(shè)置

假設(shè)指定gopath是文件系統(tǒng)的普通目錄名,當(dāng)然我們可以隨便設(shè)置一個(gè)目錄名,然后將其路徑存入GOPATH。前面介紹過(guò)GOPATH可以是多個(gè)目錄:在window系統(tǒng)設(shè)置環(huán)境變量;在linux/MacOS系統(tǒng)只要輸入終端命令export gopath=/home/astaxie/gopath,但是必須保證gopath這個(gè)代碼目錄下面有三個(gè)目錄pkg、bin、src。新建項(xiàng)目的源碼放在src目錄下面,現(xiàn)在暫定我們的博客目錄叫做beeblog,下面是在window下的環(huán)境變量和目錄結(jié)構(gòu)的截圖:

http://wiki.jikexueyuan.com/project/go-web-programming/images/13.1.gopath.png" alt="" />

圖13.1 環(huán)境變量GOPATH設(shè)置

http://wiki.jikexueyuan.com/project/go-web-programming/images/13.1.gopath2.png" alt="" />

圖13.2 工作目錄在$gopath/src下

應(yīng)用程序流程圖

博客系統(tǒng)是基于模型-視圖-控制器這一設(shè)計(jì)模式的。MVC是一種將應(yīng)用程序的邏輯層和表現(xiàn)層進(jìn)行分離的結(jié)構(gòu)方式。在實(shí)踐中,由于表現(xiàn)層從Go中分離了出來(lái),所以它允許你的網(wǎng)頁(yè)中只包含很少的腳本。

  • 模型 (Model) 代表數(shù)據(jù)結(jié)構(gòu)。通常來(lái)說(shuō),模型類將包含取出、插入、更新數(shù)據(jù)庫(kù)資料等這些功能。
  • 視圖 (View) 是展示給用戶的信息的結(jié)構(gòu)及樣式。一個(gè)視圖通常是一個(gè)網(wǎng)頁(yè),但是在Go中,一個(gè)視圖也可以是一個(gè)頁(yè)面片段,如頁(yè)頭、頁(yè)尾。它還可以是一個(gè) RSS 頁(yè)面,或其它類型的“頁(yè)面”,Go實(shí)現(xiàn)的template包已經(jīng)很好的實(shí)現(xiàn)了View層中的部分功能。
  • 控制器 (Controller) 是模型、視圖以及其他任何處理HTTP請(qǐng)求所必須的資源之間的中介,并生成網(wǎng)頁(yè)。

下圖顯示了項(xiàng)目設(shè)計(jì)中框架的數(shù)據(jù)流是如何貫穿整個(gè)系統(tǒng):

http://wiki.jikexueyuan.com/project/go-web-programming/images/13.1.flow.png" alt="" />

圖13.3 框架的數(shù)據(jù)流

  1. main.go作為應(yīng)用入口,初始化一些運(yùn)行博客所需要的基本資源,配置信息,監(jiān)聽(tīng)端口。
  2. 路由功能檢查HTTP請(qǐng)求,根據(jù)URL以及method來(lái)確定誰(shuí)(控制層)來(lái)處理請(qǐng)求的轉(zhuǎn)發(fā)資源。
  3. 如果緩存文件存在,它將繞過(guò)通常的流程執(zhí)行,被直接發(fā)送給瀏覽器。
  4. 安全檢測(cè):應(yīng)用程序控制器調(diào)用之前,HTTP請(qǐng)求和任一用戶提交的數(shù)據(jù)將被過(guò)濾。
  5. 控制器裝載模型、核心庫(kù)、輔助函數(shù),以及任何處理特定請(qǐng)求所需的其它資源,控制器主要負(fù)責(zé)處理業(yè)務(wù)邏輯。
  6. 輸出視圖層中渲染好的即將發(fā)送到Web瀏覽器中的內(nèi)容。如果開(kāi)啟緩存,視圖首先被緩存,將用于以后的常規(guī)請(qǐng)求。

目錄結(jié)構(gòu)

根據(jù)上面的應(yīng)用程序流程設(shè)計(jì),博客的目錄結(jié)構(gòu)設(shè)計(jì)如下:

|——main.go         入口文件
|——conf            配置文件和處理模塊
|——controllers     控制器入口
|——models          數(shù)據(jù)庫(kù)處理模塊
|——utils           輔助函數(shù)庫(kù)
|——static          靜態(tài)文件目錄
|——views           視圖庫(kù)

框架設(shè)計(jì)

為了實(shí)現(xiàn)博客的快速搭建,打算基于上面的流程設(shè)計(jì)開(kāi)發(fā)一個(gè)最小化的框架,框架包括路由功能、支持REST的控制器、自動(dòng)化的模板渲染,日志系統(tǒng)、配置管理等。

總結(jié)

本小節(jié)介紹了博客系統(tǒng)從設(shè)置GOPATH到目錄建立這樣的基礎(chǔ)信息,也簡(jiǎn)單介紹了框架結(jié)構(gòu)采用的MVC模式,博客系統(tǒng)中數(shù)據(jù)流的執(zhí)行流程,最后通過(guò)這些流程設(shè)計(jì)了博客系統(tǒng)的目錄結(jié)構(gòu),至此,我們基本完成一個(gè)框架的搭建,接下來(lái)的幾個(gè)小節(jié)我們將會(huì)逐個(gè)實(shí)現(xiàn)。

上一篇:4 表單下一篇:附錄A 參考資料