怎么正确的复制代码

今年有一个目标是用 Go 语言写几个应用,并且这几个应用一定要放到线上去,订了一个小目标,每一个应用帮 10 万人,我以前是写 C 的,也写过 php,后来负责大数据的时候,也用过 java,scala 之类的,Go 语言没有完整的学习过,只是看了一下 A Tour of Go,发现 Go 语言有 C 语言的一些影子,我就开始用 Go 来写我的第一个应用,实现一个格式化的 Google 服务翻译,工作量全部加起来不超过 3 天,到目前为止,使用人数已经超过 1 万人。

20220506CpPY36

翻译服务

为什么要写这个翻译服务,我是没能力去实现整个翻译引擎的,一是没这么多语料,二是也没这个算法和工程能力,认清这一点就非常重要了,我主要是解决我经常遇到的两个问题:

  • 长文翻译
  • 有格式的翻译(markdown、HTML)

在 Google 或者 DeepL 是不能翻译长文的,也不支持 markdown 之类的富文本翻译,我就解决这两个问题。

功能点

  • 前端实现一个 markdown 编辑器
  • 后端提供一个 api 的封装,可以调用 google translate 等翻译服务。
  • 防止机器人来滥用 api,要加一个防止机器人策略。
  • 超过某一个额度,要求用户认证(google sign)。

技术栈

  • 语言选择 Go lang
  • web 框架选择 Gin
  • 机器人验证 recaptcha
  • 用户认证 google oauth2
  • 配置文件 multiconfig
  • 日志 zerolog
  • session 用的是 gin sessions
  • 统计 google analytics
  • 前端构架 bootstrap
  • 编辑器 Stacks Editor (stackoverflow.design)

依赖服务

  • Google translate

复制代码

做任何一件事情,都可以拆分成很小的点,这些小的点肯定很多人实现过了,我要做的是把我要实现的功能拆分成这些小的点,看看有没有人实现过,如果有人实现过,我就参考他们的实现,自己只要做集成就可以了。

Github

github 里面有各种代码,但是很多是不能跑的,我找代码的首选站点。
davidleitw/gin-oauth2-example: a simple example use gin to login with oauth2. (github.com)

hotexamples

Golang Sessions Examples, github.com/gin-gonic/contrib/sessions.Sessions Golang Examples – HotExamples

这个网站可以查找各种 demo,非常好用,比如我查找 sessions 的使用,就给出了 30 多个 example。

medium

这个网站的质量相对来说比较高,我也会从这种地方找例子。
How To Manage Your Sessions in Golang using Gin Framework And Redis ? | by Bikash dulal | wesionaryTEAM | Medium

OAuth2 with Google Account (gmail) in GO — GoLang | by Balakrishnan Nalin Prashanth | Medium

发表评论