偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

[[432412]]

大家好,我是煎魚。

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

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

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

對(duì)以下幾點(diǎn)有顧慮:

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

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

最佳實(shí)踐

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

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

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

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

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

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

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

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

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

兼容性承諾

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

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

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

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

總結(jié)

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

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

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

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

 

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

 

責(zé)任編輯:武曉燕 來源: 腦子進(jìn)煎魚了
相關(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 泛型

2020-11-24 13:05:35

Go語言泛型

2022-01-05 07:07:37

Go核心設(shè)計(jì)

2021-12-05 23:45:23

Go泛型Maps

2021-12-02 18:21:49

GoIP 包設(shè)計(jì)
點(diǎn)贊
收藏

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