1
raincious 2016-01-10 20:00:40 +08:00
不是很懂 Golang ,但貌似还可以优化:
0 、其实我觉得这种项目太小,没必要弄个仓库出来吧?随时用随时写就行了,再不羁可以放 Gist 。建议有空再实现个上传功能,这样意义就大了。 1 、`fmt.Printf("Listening is on` …… 放在 Routine 里是基于什么考虑?直接打印出来然后继续执行貌似效果差不太大(对这个功能来说); 2 、`ListenAndServe`最好做一下检查,因为 Port 很有可能会有听失败的情况; 3 、 Shutdown 流程不优雅,最好是拦截系统信号之后自己组织关闭流程(虽然这里问题不大); 4 、`ListenAndServe`后面有空行。 |
2
linghutf OP @raincious 没有用库方式,差不多是个小工具,方便用而已。主要是为了后续改成自己博客的静态文件服务器的,之后会改进。
|
3
raincious 2016-01-10 21:34:28 +08:00
@linghutf
要点还是太小了,一行就能实现: https://github.com/golang/go/wiki/HttpStaticFiles 或许得等你做成 Blog 之后才能看到价值。 另外,`socket_str := ip_str + ":" + strconv.Itoa(*port)` 不要自己拼,用 net.JoinHostPort 可以兼容 Common Name 、 IPv4 和 IPv6 : https://golang.org/pkg/net/#JoinHostPort |
4
linghutf OP @raincious 刚刚把博客的静态文件服务写完跑起来了。可以去看一下[blog]( https://linghutf.gitcafe.io),就是服务器地址怎么隐藏还没改,感觉 hexo md 文件中没有模板。
|
5
linghutf OP @raincious [My Blog]( https://linghutf.gitcafe.io)
|
7
mengzhuo 2016-01-11 09:04:46 +08:00 via iPhone
…这一行就搞定的事
楼主至少打包三大平台,才算随时用 |
10
mengzhuo 2016-01-11 10:49:32 +08:00
@Niphor 真要学,还可以看 Fileserver 里的代码,特别美,那种上层统一,底层接口自适应的美
http.Write -> fd.Stats -> io.Copy -> file.ReadFrom -> syscall.Syscall -> sendfile |