尝试学习 Go
在这里您可以找到我为尝试学习 Go 帖子编写的代码,这些代码我一直在Dev.to上编写和发布。
过去几个月我一直在玩围棋,玩得非常开心。现在我有点空闲时间了,是时候加倍努力提升我的围棋技能了。我还想养成多写作的习惯,现在正是绝佳的机会。所以,接下来的几篇文章里,我们一起动手搭建一个小型服务器吧。
我遇到的最大问题之一就是想不出点什么可以做。几天前我就想开始这个系列,但一直没能决定做什么。它需要足够小,以便我能在几个小时内完成框架。同时,它又需要足够复杂,以便我更多地接触这门语言。我仔细思考后,决定设计一个简单的服务器,从远程服务器下载文件。这个想法源于一些实际的原因,我时不时会看到一些我可能需要的东西。这些东西我暂时不需要,但我可以存档,以后需要的时候再用。如果我在浏览网页,我希望右键单击并选择菜单选项,而不必立即再次思考。就像 Dropbox 一样,我可以输入一个文件 URL,然后让它处理其他所有事情。
当然,这可能看起来有点过度(可能确实如此)但是,我需要一个项目来开展......
我们的下载器将是一个简单的 Web 应用。在项目接近尾声时,我将研究使用 Let's Encrypt 为应用提供 HTTPS 服务。由于这是一种存档,服务器将位于异地。为了进行测试,可以使用 Google Compute Engine 的微实例。我将尽可能长时间地尝试只使用 Go标准库。毕竟,这只是一个学习练习。
首先,服务器本身有两个端点:
http://<server>/
http://<server>/download
{
"title": "Name of download (filename probably)",
"location": "URL of download"
}
服务器将接收 JSON 数据,解析它,然后发出 GET 请求下载文件。获取到文件后,我们将文件保存到磁盘。现在,我们先来了解一下 JSON 对象是如何创建的。以后再讨论这个问题。有了基本思路后,我将编写一些代码,并尝试记录我在每个小冲刺阶段的工作内容。
直到明天……
第二部分已发布。
您可以在 GitHub 上的 repo 中找到此代码以及大多数其他“尝试学习 Go”帖子的代码。
在这里您可以找到我为尝试学习 Go 帖子编写的代码,这些代码我一直在Dev.to上编写和发布。
喜欢这篇文章吗? |
---|
请我喝杯咖啡怎么样? |