<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Go語言愛好者周刊:第 103 期 — Go 實現(xiàn)的聊天機器人

          共 3749字,需瀏覽 8分鐘

           ·

          2021-07-13 22:20

          這里記錄每周值得分享的 Go 語言相關內容,周日發(fā)布。

          本周刊開源(GitHub:polaris1119/golangweekly[1]),歡迎投稿,推薦或自薦文章/軟件/資源等,請提交 issue[2]

          鑒于一些人可能沒法堅持把英文文章看完,因此,周刊中會盡可能推薦優(yōu)質的中文文章。優(yōu)秀的英文文章,我們的 GCTT 組織會進行翻譯。

          由于微信公眾號不支持外鏈,文中大量鏈接可通過文末「閱讀原文」查看。

          題圖:Go 實現(xiàn)的開源聊天機器人

          刊首語

          上期是一道關于 channel 的題目,正確率還不錯,達到了 66%。現(xiàn)簡單解釋下。

          package main

          import (
           "fmt"
          )

          func main() {
           c := make(chan int)
           close(c)
           val, _ := <-c
           fmt.Println(val)
          }

          A:運行時死循環(huán);B:0;C:編譯不通過;D:不確定

          答案 B。答案來自標準庫 close 函數(shù)的文檔說明:

          After the last value has been received from a closed channel c, any receive from c will succeed without blocking, returning the zero value for the channel element.

          即從關閉了的 channel 接收不會堵塞,并返回零值,因此答案是 B。

          本期是一道關于 reflect 的題,以下代碼輸出什么?

          package main

          import (
           "fmt"
           "reflect"
          )

          func main() {
           i := 1
           j := 1
           no1 := &i
           no2 := &j
           if reflect.DeepEqual(no1, no2) {
            fmt.Println("equal")
            return
           }
           fmt.Println("not equal")
          }

          資訊

          1、Russ Cox 關于內存模型的系列文章[3]

          rsc 通過研究,希望能夠更好的服務 Go 內存模型。

          2、Kratos 2.0 發(fā)布[4]

          一個國產的 Go 微服務框架。

          3、GoLand 2021.2 發(fā)布[5]

          表示不增加新特性了。

          誰在招 Gopher

          整理近期的 Go 職位。有招聘需求可以到「Go招聘」發(fā)布!

          1、CloudFine多云轉晴 尋找優(yōu)秀的你

          文章

          1、Go項目實戰(zhàn):從零構建一個并發(fā)文件下載器

          今天為大家?guī)硪粋€實戰(zhàn)項目。建議你一定要動手實踐。

          2、網(wǎng)友很強大,發(fā)現(xiàn)了Go并發(fā)下載的Bug

          處理上篇的留言問題。

          3、詳解 Go 語言 Protobuf 之 Message

          Protobuf 幾乎必學的了?

          4、在 Go 中我是如何組織包的

          你一般怎么組織?

          5、在Go中如何用Redlock實現(xiàn)分布式鎖呢?

          在多線程編程環(huán)境中,我們通常使用鎖來限制對共享資源的訪問。互斥鎖就是其中的一個例子。

          關于Go Test這些小技巧,Gopher應該知道

          關于測試的必要性,這里就不多說了,很多人反感寫測試代碼,覺得浪費時間。但實際上寫好測試代碼后,后期代碼調整,能夠節(jié)省大量的調試時間。

          7、在 5 分鐘之內部署一個 Go 應用

          很方便。

          8、類似 Go 中的表格驅動測試的步驟驅動評估

          如果你聽說過表驅動測試,那你就能更容易理解本文所描述的概念,因為它們使用的是相同的技術,只不過本文使用在非測試場景中。

          9、如何選擇一門編程語言

          考慮哪些因素?

          10、為什么把 dig 遷移到 wire

          dig 和 wire 都是 Go 依賴注入的工具,那么,本質上功能相似的工具,為什么要從 dig 切換成 wire?

          開源項目

          1、certmagic[6]

          為任意 Go 程序自動加上 HTTPS,Caddy 使用的一個庫。

          2、bluemonday[7]

          一個快速的 Go HTML sanitizer,不受信任的用戶輸入的內容,返回可以安全顯示的 HTML 內容。

          3、di[8]

          一個小巧的依賴注入框架。

          4、dragon[9]

          簡單的 Web 框架。

          5、dtm[10]

          國人開源的分布式事務框架。

          6、rony[11]

          快速可擴展的 RPC 框架。

          7、olivia[12]

          Olivia 是一個使用機器學習技術用 Golang 建立的開源聊天機器人。它的目標是提供一個免費的、開源的服務來替代像 DialogFlow 這樣的大型服務。

          資源&&工具

          1、Go 播客第 187 期[13]

          討論將要加入 Go 標準庫的 Fuzzing。

          2、balerter[14]

          基于 Lua 腳本的報警管理,可以發(fā)送到 Slack、Telegram 等。

          3、semverbot[15]

          一個根據(jù) git 信息自動進行 semver 版本管理的 cli 工具。

          4、ADBTuiFM[16]

          基于 tui 的 ADB 文件管理器。

          5、Dave 講故事(視頻)[17]

          Go 是如何避免隱式整數(shù)提升和類型轉換的。

          6、d0zer[18]

          用 Go 編寫的 Elf 二進制感染器(infector)。

          7、GopherChina[19](fanjindong 投稿)

          15~21 年歷屆 GopherChina 大會資料。

          訂閱

          這個周刊每周日發(fā)布,同步更新在Go語言中文網(wǎng)[20]微信公眾號[21]

          微信搜索"Go語言中文網(wǎng)"或者掃描二維碼,即可訂閱。

          wechat

          往期推薦
          Go語言愛好者周刊:第 102 期

          參考資料

          [1]

          polaris1119/golangweekly: https://github.com/polaris1119/golangweekly

          [2]

          提交 issue: https://github.com/polaris1119/golangweekly/issues

          [3]

          Russ Cox 關于內存模型的系列文章: https://research.swtch.com/hwmm

          [4]

          Kratos 2.0 發(fā)布: https://github.com/go-kratos/kratos

          [5]

          GoLand 2021.2 發(fā)布: https://blog.jetbrains.com/go/2021/07/08/goland-2021-2-reaches-beta/

          [6]

          certmagic: https://github.com/caddyserver/certmagic

          [7]

          bluemonday: https://github.com/microcosm-cc/bluemonday

          [8]

          di: https://github.com/go-tk/di

          [9]

          dragon: https://github.com/azerothyang/dragon

          [10]

          dtm: https://github.com/yedf/dtm

          [11]

          rony: https://github.com/ronaksoft/rony

          [12]

          olivia: https://github.com/olivia-ai/olivia

          [13]

          Go 播客第 187 期: https://changelog.com/gotime/187

          [14]

          balerter: https://github.com/balerter/balerter

          [15]

          semverbot: https://github.com/restechnica/semverbot

          [16]

          ADBTuiFM: https://github.com/darkhz/adbtuifm

          [17]

          Dave 講故事(視頻): https://www.youtube.com/watch?v=bwQS7PO6_Ho

          [18]

          d0zer: https://github.com/sad0p/d0zer

          [19]

          GopherChina: https://github.com/fanjindong/GopherChina

          [20]

          Go語言中文網(wǎng): https://studygolang.com/go/weekly

          [21]

          微信公眾號: https://weixin.sogou.com/weixin?query=Go%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91


          瀏覽 89
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲黄片在线看 | 欧美日韩18 | 蜜桃视频91 | 国产精品一极二极 | 青娱乐97超碰 |