global
- 管理配置 Conf
*toml.TomlTree
- 日志管理 Log
MultiLogger
- http路由 Mux
*mux.Router
- 站点根目录 DocRoot
string
- 安全的ShutDown
toml
前文说过选用 TOML 格式作为配置文件. 这也是作者第一次使用 TOML. 在当前的版本下有几点体会
- 虽然类型是 ,但是读取配置数据的时候只能从根对象读取, 这与
go-toml
内部实现有关 - 由于
Get
等方法返回的都是interface{}
, 所以要用到type assertion
大量使用type assertion
的写法可能会让使用者不喜. 作者感觉可以接受.
main
随着项目的进展作者发现在控制台 Ctrl+C
并不会立即结束进程, 这应该是受 socket
释放周期影响. 到底该如何处理, 现在还不明朗.
静态文件
对于裸奔的服务器
, 完成静态文件访问是最基本的. 路由分派器gorilla/mux
没有提供静态文件支持, 这很正常, 这不是路由负责的, 要由应用自己完成. TypePress采用这样的路由方式
log
文件日志是最常见的日志方案. TypePress选用的log
包提供了很好的机制,但是没有提供文件日志. 没关系, 自己实现. 主要做了2件事
- 注册到OnShutDown,以便正常的关闭日志文件
GracefulListen
当ShutDown
的时候应该关闭监听. 所以就有了全局的 GracefulListen, ShutDown
的行为应该由控制器负责. 当前还没有具体实现.