動態

詳情 返回 返回

SegmentFault 思否技術週刊 Vol.71 — 解讀 Go 語言 - 動態 詳情

剛剛結束的關於「Go」語言的技術徵文活動,參與活動的創作者們,撰寫了很多優質技術內容,本期週刊做了彙總,歡迎大家一起閲讀~

本篇文章較長,建議收藏後慢慢閲讀~

文章推薦

【Go 微服務】開發 gRPC 總共分三步 // 王中陽 Go

通過這篇文章我們已經掌握了 gRPC 相關的知識點,可以獨立用 Go 實現客户端和服務端的編寫,並且通過服務註冊對外提供服務,實現可客户端和服務端的 gRPC 通信。

【Go 微服務】一文帶你玩轉 ProtoBuf // 王中陽 Go

在網絡通信和通用數據交換等應用場景中經常使用的技術是 JSON 或 XML,在微服務架構中通常使用另外一個數據交換的協議的工具 ProtoBuf。
ProtoBuf 也是我們做微服務開發,進行 Go 進階實戰中,必知必會的知道點。

PHP 轉 GO 必看:為什麼我覺得 GoFrame 的 garray 比 PHP 的 array 還好用? // 王中陽 Go

在學習 Go 基礎知識的時候瞭解到 Go 的數組和 PHP 的數組並不一樣;從一定程度上講,Go的 slice 切片類型和 PHP 的數組 array 比較像(不固定長度、引用類型、動態擴容等),但是在開發使用中遠遠不像 PHP 的 array 靈活。

通過閲讀源碼解決項目難題:GToken 替換 JWT 實現 SSO 單點登錄 // 王中陽 Go

今天和大家分享一下使用 GoFrame 的 gtoken 替換 jwt 實現 sso 登錄的經驗。期間我也踩了一些坑,最終是通過閲讀源碼解決了項目中遇到的問題。

三分鐘學會 go 語言的變量定義 // 夕水

特別説明: 本文只適合新手學習,這篇文章帶我們入門 go 語言的定義變量的方式,其實和 javascript 很相似,所以特意總結在此。
在 go 語言中,也有變量和常量兩種,首先我們來看變量的定義,定義變量我們分為定義單個變量和多個變量。

前端如何入門 Go 語言 // robin

類比法是一種學習方法,它是通過將新知識與已知知識進行比較,從而加深對新知識的理解。在學習 Go 語言的過程中,我發現,通過類比已有的前端知識,可以更好地理解 Go 語言的特性。

Go 微服務實戰之如何使用 go-micro 寫微服務應用 // 宇宙之一粟

本文介紹了微服務及其相關概念,重點比較了單體架構和微服務架構的區別,最後介紹了 Go 優秀的微服務框架之一的 Go-micro,並展示該框架的安裝和使用。

Go 微服務實戰之如何實現加解密操作的微服務開發 // 宇宙之一粟

本文通過實現加解密操作展示了一個微服務應用的開發過程。通過編寫服務端,成功運行了一個微服務實例,該服務能夠通過加密請求得到一個加密後的密文,通過解密請求將消息進行解密,並返回明文結果。然後通過編寫客户端向服務端進行 RPC 調用,成功將 Hello world 字符串進行加密並打印出密文和明文的結果。

回聲嘹亮 之 Go 的 Echo 框架 —— 上手初體驗 // 宇宙之一粟

Go 語言的 Web 開發框架其實也有很多: Gin 、 Beego 、 Revel 。
Echo 作為其中的一款。截止到 2022 年,目前已經在 Github 上收穫了 21.7k 的 Star 和 1.9k 的 Fork,可以説是經得起時間檢驗,得到了大家的認可,正可謂對應上標題中的回聲嘹亮。

如何在 Go 代碼中運行 C 語言代碼 // 宇宙之一粟

我們瞭解到,Go 語言脱胎於 C 語言,這就意味着在某些更底層的細節中,我們可以使用 C 語言實現,然後通過 Go 來調用相關的 C 代碼。其實這一特點,在 Java 的 JVM、Python 的解釋器也是通過底層是直接調用 C 實現的。
而本篇文章就來學習一下,如何在 Go 語言中運行 C 程序。

Go 語言如何連接並操作 MySQL 數據庫 // 宇宙之一粟

Go 有 sql 包,它提供了一個圍繞 SQL(或類似 SQL)數據庫的通用接口。 sql 包必須與數據庫驅動程序一起使用。該軟件包提供自動連接池。每次查詢數據庫時,我們都在使用應用程序啓動時設置的連接池中的連接,連接被重用。

Go 十年了,終於想起要統一 log 庫了! // 煎魚

思考一個問題:平時你在寫 Go 工程時,是否很少直接使用官方標準庫 log?
在正式項目中,大多是優先使用幾個爆款第三方庫,例如:Logrus、Zap、zerolog。而標準庫 log,在臨時調試,屏幕輸出的場景居多,佔比較少。

在 Golang 中依賴注入是 解藥 還是 毒藥? // LinkinStar

回過頭來看我一開始説的觀點其實就不矛盾了,就拿我自己舉例來説,如果是一些小項目,並且很多時候 go 並不是做 web 開發,更多的是做工具那麼 DI 有時候並不一定需要。
但是對於一些大項目來説,我覺得為了以後的考慮,還是別挖坑了,無論是從消除全局變量還是擴展性來説,DI 或者説 OOP 都是非常有必要的。

Gin + GORM 入門到實戰 // 程序員海軍

最近一直在學習 Go,目前在做項目熟悉 Go 階段。 本文來分享一下 Gin + GORM 的一些 開發體驗,有喜歡 Go 方向的朋友。

Go入門系列:你好,世界 // 似水流年

Go 源碼需要先編譯,再分發和運行。如果是單 Go 源文件的情況,我們可以直接使用 go build 命令 +Go 源文件名的方式編譯。不過,對於複雜的 Go 項目,我們需要在 Go Module 的幫助下完成項目的構建。

go 如何從零編寫 protoBuf 插件 // 海生

本期的主要內容將手把手教會大家,編寫 probuf 的 go 插件,以我自己編寫的一個生成結構體的插件為例子。

go 語言 web 開發框架 — gin 框架入門 // 良猿

安裝並配置 GO 工作區,在 GOPATH 的 src 目錄下新建項目文件夾,使用 go mod init命令初始化項目,使用 go get -u github.com/gin-gonic/gin 命令安裝 gin。

Go 語言與數據庫 — GORM 入門 // 良猿
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql
Golang Copier 入門到入坑 // 小白要生髮

由於 golang 沒有對複雜結構體的 clone 方法,所以,就需要有 copier 這樣的工具庫。
它看起來很簡單,但實際使用中,有些“坑”還是要注意!

動圖圖解!怎麼讓 goroutine 跑一半就退出? // 小白debug

通過 runtime.Goexit() 可以做到提前結束協程,且結束前還能執行到 defer 的內容
runtime.Goexit() 其實是對 goexit0 的封裝,只要執行 goexit0 這個函數,當前協程就會退出,同時還能調度下一個可執行的協程出來跑。
通過 newproc 可以創建出新的 goroutine,它會在函數棧底部插入一個 goexit。
os.Exit() 指的是整個進程退出;而 runtime.Goexit() 指的是協程退出。兩者含義有區別。

Go 中調用外部命令的幾種姿勢 // darjun

本文介紹了使用 os/exec 這個標準庫調用外部命令的各種姿勢。同時為了便於使用,我編寫了一個 goexec 包封裝對 os/exec 的調用。這個包目前 for 我自己使用是沒有問題的,大家有其他需求可以提 issue 或者自己魔改

微服務框架 go-zero 快速實戰 // 阿兵雲原生

go-zero 是一個集成了各種工程實踐的 web 和 rpc 框架。通過彈性設計保障了大併發服務端的穩定性,經受了充分的實戰檢驗。
go-zero 中的 api,rpc,數據庫等涉及的代碼,都可以給我們一鍵生成,無需耗費我們什麼精力

【5-5 Golang】實戰—Go微服務發現問題分析 // 西紅柿

初次遇到這問題時候,覺得匪夷所思。基於現狀,冷靜分析問題產生情況,一個一個去排查或者排除,切記急躁。
抓包驗證,二進制協議又不方便分析,只能去研究zookeeper通信協議了。最終還是需要一遍一遍Review代碼,尋找蛛絲馬跡,不要忽視任何可能產生的異常。

Go ,淺談包管理模式 // 甜點cc

任何一門編程語言都離不開對各種工具包的使用,工具包的管理就顯得異常重要了。Go 的包管理方式是逐漸演進的,本文介紹 Go 語言的兩種包管理模式。

Go ,函數(包)的使用 // 甜點cc

本文通過一個實現加減乘除運算的小程序來介紹 go 函數的使用,以及使用函數的注意事項,並引出了對包的瞭解和使用。


# SegmentFault 技術週刊 #

「技術週刊」是社區特別推出的技術內容系列,一週一主題。

每週二更新,歡迎「關注」。大家也可以在評論處留言自己感興趣的主題,推薦主題相關的優秀文章。

如有問題可以添加小姐姐微信~

image.png

user avatar littlelyon 頭像 yuzhoustayhungry 頭像 yanyue404 頭像 codesheep_pro 頭像 laomao_5902e12974409 頭像 yils_lin 頭像 youngcoding 頭像 jrainlau 頭像 wangxiao_5cdbd71543154 頭像 obkoro1 頭像 jrue 頭像
點贊 11 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.