通过逐步构建我们的 goto 应用,我们几乎遇到了 Go 的所有重要功能。

    虽然这个程序完成了我们要做的事情,但是还有几个方面可以改进:

    • 美观: 用户界面可以更漂亮。你可以使用 Go 的 template 包实现(参见 章节 15.7 )。
    • 可靠性: 主 / 从 RPC 连接可以更可靠: 如果 客户端-服务器端 断开连接,客户端应该尝试重新拨号。一个 「拨号」 协程可以解决这个问题。
    • 资源耗尽: 随着 URL 数据库的增长,内存使用可能成为一个问题。可以通过主服务器上 key 的分割(分片)来解决。
    • 删除: 为了支持删除已经缩短的 URLs , 主从服务器之间的交互将会变得更加复杂。