自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

回歸現(xiàn)實:Go Leader 對 1.18 泛型的期望

開發(fā) 后端
如果不出現(xiàn)嚴重的問題,Go 1.18 將會包括對泛型的支持,并且這次泛型的支持將會是有史以來最大的一次語言變化。

[[432412]]

大家好,我是煎魚。

前段時間根據(jù) Go 泛型的最新動態(tài),我寫了一篇《出泛型后 API 怎么辦?Go 開發(fā)者要注意了》文章,引發(fā)了不少小伙伴的熱議。

Go 核心開發(fā)團隊的現(xiàn)任 Leader @Russ Cox 在 golang-dev 中正式發(fā)表《expectations for generics in Go 1.18》對 Go 泛型給出了 “期待”,其實大家可以認為是后續(xù)泛型的配套迭代計劃了。

如果不出現(xiàn)嚴重的問題,Go 1.18 將會包括對泛型的支持,并且這次泛型的支持將會是有史以來最大的一次語言變化。

對以下幾點有顧慮:

  • 最佳實踐.
  • 生產(chǎn)經(jīng)驗
  • 兼容性承諾。

接下來,煎魚帶大家一起了解 Russ Cox 發(fā)表的 Go 泛型進程,知悉官方一手消息。

最佳實踐

Go 團隊表示不知道使用泛型的最佳實踐是什么,所以給出的官方文檔將無法就何時使用泛型和何時不使用泛型給出精確、明確的答案,只可以給出粗略的指導。

此處可以參考《Effective Go》的最初版本,是在不間斷地寫了一整年的 Go 代碼后,才正式輸出的。

按照現(xiàn)有的計劃,官方只會提供關(guān)于如何使用泛型的文檔,暫時無法提供任何關(guān)于風格、最佳實踐的規(guī)定性文檔。

在提供的標準庫上,先是已經(jīng)通過提案的 maps 和 slices庫會先放到 golang.org/x/exp 中作為實驗,不會保證向后兼容。待成熟后,再推廣到標準庫中。

可以明確,Go 泛型出來后,社區(qū)就會陸續(xù)開始百花齊放,接著有官方輸出推薦方法了,歷史是如此的相似。

生產(chǎn)經(jīng)驗

目前 Go 團隊沒有關(guān)于泛型的生產(chǎn)經(jīng)驗,因此會在文檔中給出明確提示,讓大家在生產(chǎn)中使用泛型的時候應該適當謹慎。

泛型出來后,會陸續(xù)涉及到大量的重寫工作,但是由于現(xiàn)在處于中間階段。正在重寫的 Go 1.18 工具鏈去同時適配泛型、非泛型代碼是需要時間和經(jīng)驗的,有一定的風險。

因此泛型出來后,可能會出現(xiàn)一些意想不到的問題,僅在生產(chǎn)發(fā)現(xiàn)(教訓)。

兼容性承諾

Go1.18 會和其他 Go1.x 版本一樣,保證向后兼容的承諾:不會破壞用 Go 1.18 構(gòu)建的代碼,包括使用泛型的代碼。

如果是最壞的情況,如果發(fā)現(xiàn) Go 1.18 的語義有一些致命的問題,并需要改變它們(例如:在Go 1.19 中)。

將會使用 go.mod 文件的 go 行來確定該模塊中的源文件是期待 Go 1.18 還是 Go 1.19+ 語義,以此實現(xiàn)版本控制。但目前來看,不需要這樣做。

也建議急于使用 Go 泛型的開源庫作者,做好泛型和非泛型版本代表的支持和隔離,這樣對用戶會更加的友好。

總結(jié)

可以明確的是,Go 泛型的整體推進方案,在這篇文章中均已說明。Go 官方團隊也與許多第三方工具的作者進行溝通。

第三方工具可能不會在 Go 1.18 發(fā)布時就完全支持泛型,這會由各作者自行根據(jù)自己的時間表來更新。

煎魚猜測推進節(jié)奏就是:

  • 支持泛型語法。
  • 觀察。
  • 推進標準/工具庫。
  • 逐步替換。
  • 修 BUG。
  • 觀察、優(yōu)化
  • 生產(chǎn)可用。

 

大概需要 2~3 個 Go 版本,需要 1~2 年,Go 泛型的各類配套組件就會基本完善,可用,轉(zhuǎn)為持續(xù)優(yōu)化了。

 

責任編輯:武曉燕 來源: 腦子進煎魚了
相關(guān)推薦

2021-10-29 10:55:07

Go 泛型語言

2021-12-15 10:23:56

Go 1.18 Bet語言泛型

2021-12-28 07:20:44

泛型Go場景

2022-07-12 06:17:43

GoogleGolang開發(fā)工作

2021-10-18 10:53:26

Go 代碼技術(shù)

2021-12-15 12:59:56

Go泛型版Beta1

2021-09-29 18:17:30

Go泛型語言

2023-11-29 08:19:45

Go泛型缺陷

2024-10-28 00:40:49

Go語法版本

2022-03-18 18:00:00

編程語言泛型支持模糊測試

2022-04-15 09:55:59

Go 泛型Go 程序函數(shù)

2021-11-27 22:20:13

SlicesGo泛型

2022-03-28 13:34:26

Go泛型部署泛型

2023-11-03 14:02:04

Go切片泛型庫

2022-02-25 10:59:18

AWSGORust

2021-12-03 18:29:31

GoAny 泛型

2021-12-05 23:45:23

Go泛型Maps

2020-11-24 13:05:35

Go語言泛型

2021-12-02 18:21:49

GoIP 包設(shè)計

2022-01-05 07:07:37

Go核心設(shè)計
點贊
收藏

51CTO技術(shù)棧公眾號