在 go 语言下要跑起一个HTTP服务器是很容易的.
package main
import "net/http"
func main() {
http.ListenAndServe(":8080", http.FileServer(http.Dir("/usr/share/doc")))
}
这就行了,一个静态文件服务器就跑起来了. TypePress 下的代码是这样的
package main
import "github.com/typepress/server"
func main() {
server.Simple()
}
这个服务器没有设置任何 Route, 只返回 404, 裸奔的服务器. 这只是表面, 下面来列举下这个 Simple Server 背后都做了哪些工作
有三种方法设置服务器基本参数:
有些基本的功能是一个框架需要提供的
这样列举起来, 貌似这个 Simple Server 貌似已经不轻量了. 不! 他依然是轻量的, 因为这些接口设计的很轻量, 当你不用他们的时候, 他们不会产生过多的消耗. 这些接口的代码都很短, 引入他们, 怎加不了多少代码空间. 应该可以看出仅仅是这些基础的功能已经形成了一个服务器框架.
这些都已经准备好了. 哦还有模板, 这个东西不打算默认引入, 各种口味难调.
这些很多都是独立的 package, 可以单独使用. 从 typepress org 可以看出, 模块以独立的 rep 出现. typepress 特别注意降低依赖, 写成独立 rep 是最基本的方法.