Go语言博客实践.pdf
文本预览下载声明
目 录
介绍
第1章 :选择 Martini 框架
第2章 :永远的MVC
第3章 面向对象和并发
第4章 :服务器裸奔
第5章 静态博客
第6章 解析器与舞台剧
第7章 解析器与ABNF
第8章 Rivet
本文档使用 看云 构建 - 2 -
介绍
介绍
Go语言博客实践
作者 :achun
来源 :Go-Blog-In-Action
(Martini 版本) 老版本点击这里
Go Blog In Action 中文名 Go语言博客实践. 是对 TypePress 开发过程中的想法, 方法, 探讨等任何方面同
步整理成的电子书.
作者 喻恒春
目录
第1章 :选择 Martini 框架
第1节 :为什么是Martini
第2节 :Package选择与修改
第3节 :依赖注入
第2章 :永远的MVC
第1节 :永远的MVC
第2节 :常见的方法
第3节 :TypePress的方法
第3章 面向对象和并发
第1节 :面向对象
第2节 :并发下维护上下文
第3节 :Martini下的并发
第4章 :服务器裸奔
第1节 :配置基本参数
第2节 :基本功能
第3节 :模块化
第5章 静态博客 未完待续, 穿插解析器部分
第6章 解析器与舞台剧
本文档使用 看云 构建 - 3 -
介绍
第1节 :汤姆的故事
第2节 :PEG
第7章 解析器与ABNF
第1节 ABNF
第2节 四则运算表达式
第3节 解析器
第4节 手工至上
第8章 Rivet
第1节 Router
第2节 Rivet
第3节 Module
授权许可
除特别声明外 ,本书使用CC BY-SA 3.0 License (创作共用 署名-相同方式共享3.0许可协议 )授权。
本文档使用 看云 构建 - 4 -
第1章 :选择 Martini 框架
第1章 :选择 Martini 框架
为什么是Martini
在上一版 Go语言博客实践 中, 作者提到不使用框架来完成一个 Blog 系统. 现在选择 Martini 作为基础框
架确实和 Martini 设计的独特性有关. Martini 的核心 Injector 实现了依赖注入 ( 参见 控制反转 ).
这里有两篇博客可供参考 Martini的工作方式 和 Martini中的Handler.
简单的说 Injector 通过 reflect 削弱了合作对象间引用依赖.
对于 Martini 的使用可以简单总结为
Martini 对象方法 Map/MapTo/Use/Handlers/Action 非并发安全, 服务器运行前使用.
Router 对象也是非并发安全的, 服务器运行前使用.
Context 对象是在 http Request 时动态创建的.
所有要使用的对象必须先 Map/MapTo.
对 http.ResponseWriter 任何的 Write 都会完结响应. 内部方法是终止了响应 Handler.
善用 Context 对象的 Next 方法会产生奇效.
上一版本因为不能找到 解耦 的框架而放弃使用框架. Martini 在 Injector 的支持下为解耦提供了可能.
这正是笔者希望的.
Package选择与修改
Martini社区 martini-contrib
Martini 社区贡献的 package, 可能会使用一些.如果您研究了 Martini 和这些 contrib package, 您会
发现真的解耦了.
角色控制 accessfl
显示全部