# 19.1 简介

由于 web 无处不在，本章我们将开发一个完整的程序：`goto`，它是一个 web 缩短网址应用程序。示例来自 Andrew Gerrand 的讲座（见参考资料 22）。我们将把项目分成 3 个阶段，每一个都会比之前阶段包含更多的功能，并逐渐展示更多 Go 语言中的特性。我们会大量使用在 [15 章](15.0.md)所学的网页应用程序的知识。

**版本 1：** 利用映射和结构体，与 `sync` 包的 `Mutex` 一起使用，以及一个结构体工厂。

**版本 2：** 数据以 `gob` 格式写入文件以实现持久化。

**版本 3：** 利用协程和通道重写应用（见 [14 章](14.0.md)）。

**版本 4：** 如果我们要使用 json 格式的文件该如何修改？

**版本 5：** 用 rpc 协议实现的分布式版本。

由于代码变更频繁，不会展示在此处，仅给出访问地址。

## 链接

- [目录](directory.md)
- 上一节：[构建一个完整的应用程序](19.0.md)
- 下一节：[短网址项目简介](19.2.md)
