成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

出泛型后 API 怎么辦?Go 開發(fā)者要注意了

開發(fā) 后端
在今天這篇文章中,我們針對 Rob Pike 為什么會要調(diào)整 Go 泛型后的標準庫 API 等的提議進行了分析。為此我們了解到 Go 核心團隊對 ”how to update APIs for generics“ 的顧慮,以及現(xiàn)有社區(qū)的激情,綜合來看,給出的逐步演進的泛型方案建議。

 [[431027]]

 大家好,我是煎魚。

前段時間社區(qū)里一下子就爆了,主要是各大媒體引用了 Go 語言之父 Rob Pike 所提的《go: don't change the libraries in 1.18》。

很多社交媒體都做了跟進,認為 Rob Pike 是硬性的反對 Go 泛型的 API 改造!

如果讀者只看了標題,有可能會產(chǎn)生一些誤解實際上其表達的意思和近期 Go 社區(qū)討論的事項是有關聯(lián)的,要一起綜合來看。

為此,今天煎魚就和大家一起來理一理,看看 Go 泛型 API 的改造工程,是個怎么一回事?

現(xiàn)狀

馬上就是 2021.11 月,連深圳都變冷了...根據(jù) Go 語言的發(fā)布周期,Go1.18 版本的發(fā)布,那就是 2022.02 月左右。

現(xiàn)在給到 Ian Lance Taylor、 Robert Griesemer 等大佬僅剩 3 個月的時間給大家討論泛型細節(jié),進一步完善實現(xiàn),達到生產(chǎn)可用。

拋出 Go 泛型的實現(xiàn)進度不說,現(xiàn)在遇到了一個比較大的問題。那就是實現(xiàn)泛型后 ”如何更新泛型的 API“。

這之中包含好幾個方面,分別是:既有標準庫、開源庫,新標準庫等。不同庫之間是不同的人在維護。

但這里存在一個大問題,如下圖:

Russ Cox 在 9 月就提出了 ”how to update APIs for generics“ 的疑惑,當時顯然這一塊還沒有共識。在 11 月的現(xiàn)在,從討論的記錄來看,怎么做還沒有達成一個最終的明確共識(初步已有,未正式答復)。

但存在一個問題,Go 社區(qū)對于泛型的迫切度,熱情非常高,各種泛型化的標準庫的提案都提出來了,推著設計者往前走。

爭議

結(jié)合來看 Rob Pike,更多是:建議和提醒 Go 社區(qū)和核心開發(fā)團隊,要 ”悠著點“,Go1.18 想支持泛型,做完成庫的改造,還得代價小,畢竟細節(jié)很多。

引用其理由,核心論據(jù)是:

在一個版本中,做泛型、標準庫等,要做的事情太多,很可能會弄錯。

  • 沒有在 Go 中使用新類型的經(jīng)驗,無法為其設計提供有力的依據(jù)。
  • Go1 兼容性的承諾,在任何細節(jié)上出錯的代價都很高,要等待、觀察和學習。
  • 和一句諺語很接近:”不要一口氣吃胖子“,何況沒有相關的經(jīng)驗,都只是詳細的推理、預演,需要晉升。

在 Go issues 中也有人吐槽,1.18 空有泛型的實現(xiàn)。其他配套的標準庫等都沒有,那這個 Go1.18 出來的泛型意義是?

后續(xù)

雖然還沒有最終拍板,但是根據(jù)討論的過程和社區(qū)贊同數(shù)(??)來看,如下:

后續(xù)仍然會設計、構(gòu)建、測試和使用用于切片(Slice)、地圖(Map)、通道(Channel)等的新庫。

這些庫并沒有生產(chǎn)可用,會把他們放在 golang/x/exp 倉庫中,可以使用,僅作為現(xiàn)階段的實驗性的庫,沒有兼容性保障。

該實驗庫會在一兩個周期內(nèi)會改變、調(diào)整和發(fā)展。能夠讓 Go 社區(qū)的開發(fā)者們嘗試一下使用,以便接受更多的意見。

再根據(jù)使用者的反饋通過經(jīng)驗和分析進行更新,就會把它們移到主倉庫中,才達到正式生產(chǎn)可用的級別。

總結(jié)

在今天這篇文章中,我們針對 Rob Pike 為什么會要調(diào)整 Go 泛型后的標準庫 API 等的提議進行了分析。

為此我們了解到 Go 核心團隊對 ”how to update APIs for generics“ 的顧慮,以及現(xiàn)有社區(qū)的激情,綜合來看,給出的逐步演進的泛型方案建議。

以此可知,Go 完整泛型(含配套庫)的生產(chǎn)可用,可能還要經(jīng)歷幾個 Go 版本,讓不少人望穿秋水了...

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

2020-10-26 14:01:22

Java泛型

2020-10-21 15:00:29

開發(fā)者IDFA禁用

2022-03-21 11:15:03

SafariWebKit

2015-09-23 10:27:25

2009-04-07 11:24:16

Java開發(fā)注意事項

2011-05-16 16:11:21

java

2015-10-08 10:07:29

游戲開發(fā)內(nèi)存使用

2009-11-03 08:56:02

linux死機操作系統(tǒng)

2022-12-19 11:31:57

緩存失效數(shù)據(jù)庫

2022-07-05 11:48:47

MySQL死鎖表鎖

2013-08-13 09:44:42

iOS 7開發(fā)者

2021-09-29 18:17:30

Go泛型語言

2022-04-15 09:55:59

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

2022-07-05 14:19:30

Spring接口CGLIB

2022-10-14 08:18:07

Guavaweb應用

2011-11-18 10:52:00

2011-11-16 10:02:48

DNSDNS記錄DNS記錄消失

2012-08-31 14:31:03

開發(fā)者蘋果

2022-02-24 10:31:14

前端API命令

2023-12-25 08:22:02

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 人人澡人人射 | 精品在线观看一区二区 | 视频一二三区 | 黄色一级大片在线免费看产 | 99亚洲精品| 日韩中文字幕av | 犬夜叉在线观看 | 大香在线伊779 | 国产一区二区三区在线免费 | 人人人人人爽 | 亚洲一区二区三区福利 | re久久 | 在线只有精品 | 久久久久久久久久久久久九 | 精品美女久久久 | 91久久久精品国产一区二区蜜臀 | 国产一伦一伦一伦 | 91xxx在线观看 | 天天综合网91 | 欧美一级片中文字幕 | 福利片在线观看 | 成人福利在线 | 精品国产一区一区二区三亚瑟 | 亚洲av毛片| 国产女人叫床高潮大片免费 | 精品一区二区久久久久久久网精 | 亚洲欧美日韩电影 | 有码一区| 日韩成人在线看 | 成人精品鲁一区一区二区 | 亚洲精品久久久久avwww潮水 | 久久久美女 | 国产精品美女一区二区 | 欧美日韩国产在线观看 | 日本免费网 | 亚洲综合久久久 | www国产成人免费观看视频 | 久久不卡 | 午夜爽爽男女免费观看hd | 欧美五月婷婷 | 日韩免费一区二区 |