review 13.1md,13.2md,and 13.3md,updated some word

This commit is contained in:
cwl
2012-12-26 21:24:05 +08:00
parent b2955f2577
commit c4983ed7eb
3 changed files with 40 additions and 35 deletions

30
13.1.md
View File

@@ -1,29 +1,29 @@
# 13.1 项目规划
做任何事情都需要做好规划,那么我们在开发博客系统之前,需要好项目的规划,如何设置目录结构,如何理解整个的流程图,当我们理解了应用的执行过程,那么接下来的设计编码就会变得相对容易了
做任何事情都需要做好规划,那么我们在开发博客系统之前,同样需要好项目的规划,如何设置目录结构,如何理解整个项目的流程图,当我们理解了应用的执行过程,那么接下来的设计编码就会变得相对容易了
## gopath以及项目设置
gopath是一个文件系统的目录,我们可以随便设置一个目录为gopath前面介绍过gopath可以是多个目录在window系统设置环境变量在linux/MacOS系统只要`export gopath=/home/astaxie/gopath`但是必须保证gopath目录下面有三个目录pkg、bin、src目录。我们新建项目放在src目录下面我们暂定我们的博客目录叫做beeblog下面是在window下的环境变量和目录结构的截图
假设指定gopath是文件系统的普通目录名,当然我们可以随便设置一个目录然后将其路径存入GOPATH。前面介绍过GOPATH可以是多个目录在window系统设置环境变量在linux/MacOS系统只要输入终端命令`export gopath=/home/astaxie/gopath`但是必须保证gopath这个代码目录下面有三个目录pkg、bin、src新建项目的源码放在src目录下面现在暂定我们的博客目录叫做beeblog下面是在window下的环境变量和目录结构的截图
![](images/13.1.gopath.png?raw=true)
![](images/13.1.gopath2.png?raw=true)
## 应用程序流程图
博客系统是基于模型-视图-控制器这一设计模式的。MVC是一种将应用程序的逻辑层和表现层进行分离的方法。在实践中由于表现层从Go中分离了出来所以它允许你的网页中只包含很少的脚本。
博客系统是基于模型-视图-控制器这一设计模式的。MVC是一种将应用程序的逻辑层和表现层进行分离的结构方式。在实践中由于表现层从Go中分离了出来所以它允许你的网页中只包含很少的脚本。
- 模型 (Model) 代表你的数据结构。通常来说,你的模型类将包含取出、插入、更新你的数据库资料这些功能。
- 视图 (View) 是展示给用户的信息。一个视图通常是一个网页但是在Go中一个视图也可以是一个页面片段如页头、页尾。它还可以是一个 RSS 页面,或任何其它类型的“页面”Go实现的template包已经很好的现了View这个概念
- 模型 (Model) 代表数据结构。通常来说,模型类将包含取出、插入、更新数据库资料这些功能。
- 视图 (View) 是展示给用户的信息的结构及样式。一个视图通常是一个网页但是在Go中一个视图也可以是一个页面片段如页头、页尾。它还可以是一个 RSS 页面或其它类型的“页面”Go实现的template包已经很好的现了View层中的部分功能
- 控制器 (Controller) 是模型、视图以及其他任何处理HTTP请求所必须的资源之间的中介并生成网页。
下图设计了我们接下来的博客系统数据流如何贯穿整个系统:
下图显示了项目设计中博客系统数据流如何贯穿整个系统:
![](images/13.1.flow.png?raw=true)
1. main.go作为应用入口初始化运行博客所需要的基本资源配置信息监听端口。
2. 路由功能检查HTTP请求根据URL以及method来确定谁来处理请求
3. 如果缓存文件存在,它将绕过通常的系统执行顺序,被直接发送给浏览器。
4. 安全检测应用程序控制器调用之前HTTP请求和任用户提交的数据将被过滤。
5. 控制器装载模型、核心库、辅助函数,以及任何处理特定请求所需的其它资源,控制器主要处理业务逻辑。
6. 输出视图用来渲染需要发送到Web浏览器中的内容。如果开启缓存视图首先被缓存所以将可用于以后的请求。
1. main.go作为应用入口初始化一些运行博客所需要的基本资源,配置信息,监听端口。
2. 路由功能检查HTTP请求根据URL以及method来确定谁(控制层)来处理请求的转发资源
3. 如果缓存文件存在,它将绕过通常的流程执行,被直接发送给浏览器。
4. 安全检测应用程序控制器调用之前HTTP请求和任用户提交的数据将被过滤。
5. 控制器装载模型、核心库、辅助函数,以及任何处理特定请求所需的其它资源,控制器主要负责处理业务逻辑。
6. 输出视图层中渲染好的即将发送到Web浏览器中的内容。如果开启缓存视图首先被缓存用于以后的常规请求。
## 目录结构
根据上面的应用程序流程设计,博客的目录结构设计如下:
@@ -37,11 +37,11 @@ gopath是一个文件系统的目录我们可以随便设置一个目录为go
|——views 视图库
## 框架设计
为了实现博客的快速搭建打算基于上面的流程设计开发一个最小化的框架框架包括路由功能、支持REST的控制器、自动化的模板渲染日志系统、配置管理。
为了实现博客的快速搭建打算基于上面的流程设计开发一个最小化的框架框架包括路由功能、支持REST的控制器、自动化的模板渲染日志系统、配置管理
## 总结
本小节介绍了博客系统从设置gopath到目录建立这样的基础信息,也介绍了将要采用的MVC模式博客系统中数据流的执行流程最后通过这些流程设计了博客系统的目录结构至此我们完成一个框架的搭建,接下来的几个小节我们将会逐个实现。
本小节介绍了博客系统从设置GOPATH到目录建立这样的基础信息,也简单介绍了框架结构采用的MVC模式博客系统中数据流的执行流程最后通过这些流程设计了博客系统的目录结构至此我们基本完成一个框架的搭建,接下来的几个小节我们将会逐个实现。
## links
* [目录](<preface.md>)
* 上一章: [构建博客系统](<13.md>)
* 下一节: [自定义路由器设计](<13.2.md>)
* 下一节: [自定义路由器设计](<13.2.md>)