# 16-Summary

前两章部署之后，我们的程序其实就能顺利在服务器上运行，接受用户使用了

我们也终于来到了本系列的最后一章，让我们来总结一下

## 知识点

本系列教程使用 Go 语言从无到有实现一个类似初级版 Twitter 的 web网站，主要涉及到了以下的知识点:

* 表单
* 模板
* 数据库
* 路由
* 登陆验证
* MVC
* 分页
* Mail
* 部署
* Ajax
* Jwt

与原教程 Flask-Mega 相比，我们主要少了 `全文搜索`、`Docker`、`用户通知` 这几个章节

* 其中 Docker 对于 Go 程序来说还是很方便的，因为 Go 可以直接编译成二进制程序，所以一种写 Dockerfile 的思路就是先编译 然后 COPY 进 container 就行了
* 全文搜索 其实是对 Elasticsearch 的依赖，其实 Go 也有响应的库支持，这里不引入只是一开始就只打算加一个数据库，不想涉及更多的依赖，增加程序的复杂性
* 用户通知其实是对 Ajax 和 API 的更深入的一种实现，其实有了前面的知识，还是很容易能完成这个功能，如果说有点难度，只是 Go 的Template 没有Flask 那么灵活而已

## 总结

这是我第一次系统性地完成编写一套系列教程

由于有个Flask-Mega的模板在，在章节设计方面已经节省了好多时间，不过 代码 和 文字方面还是要花费不少的精力，基本上3天一章已经是极限（毕竟还是要上班养家糊口的）

通过编写这个系列教程，也算是我自己重新梳理了下知识结构，相信有这个教程在，也避免了我写完就忘的神奇特性（以前也写过好多程序，过段时间回首，知识剩下的就不多了）

好记性不如烂笔头，写下来方便自己，如果还能方便他人，那真的是再好不过了。

## 后续

后续首要第一件事情就是休息，先休息一段时间

然后在下面几方面好好整理，写点东西

* Test
* Restful API
* GraphQL

## 支持我

如果您感觉有收获，欢迎给我打赏，以激励我输出更多优质内容，感谢支持！

![感谢支持](/files/-LNIhG0Z3FreAiCXBFsn)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://go-mega.bonfy.im/16-summary.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
