AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Go 哪里沒(méi)有做好?Rob Pike 深刻反思了

來(lái)源: 責(zé)編: 時(shí)間:2024-04-08 17:19:33 152觀看
導(dǎo)讀今天這篇將會(huì)繼續(xù)延續(xù)前文,一起深入探究 Go 做錯(cuò)、失敗的地方在哪。學(xué)習(xí)前人的經(jīng)驗(yàn)。沒(méi)有引導(dǎo)好并發(fā)理念從歷史背景來(lái)看,在 Go 誕生的那個(gè)年代,并發(fā)編程是一個(gè)比較新穎的理念。許多其他編程語(yǔ)言、論文甚至?xí)紝戇^(guò)關(guān)于

今天這篇將會(huì)繼續(xù)延續(xù)前文,一起深入探究 Go 做錯(cuò)、失敗的地方在哪。學(xué)習(xí)前人的經(jīng)驗(yàn)。YlX28資訊網(wǎng)——每日最新資訊28at.com

沒(méi)有引導(dǎo)好并發(fā)理念

從歷史背景來(lái)看,在 Go 誕生的那個(gè)年代,并發(fā)編程是一個(gè)比較新穎的理念。許多其他編程語(yǔ)言、論文甚至?xí)紝戇^(guò)關(guān)于并發(fā)編程的內(nèi)容。并發(fā)編程還沒(méi)有成為主流思想。YlX28資訊網(wǎng)——每日最新資訊28at.com

Go 團(tuán)隊(duì)發(fā)明了 “goroutine” 這個(gè)詞,Go 讓協(xié)程的使用變得非常簡(jiǎn)單。也正因?yàn)橛辛瞬l(fā),讓這一切看起來(lái)像是一種新鮮的事物。YlX28資訊網(wǎng)——每日最新資訊28at.com

聽(tīng)起來(lái)都很美妙。但是,Go 做錯(cuò)了什么?YlX28資訊網(wǎng)——每日最新資訊28at.com

rob 認(rèn)為:Go 團(tuán)隊(duì)在并發(fā)上,缺乏對(duì)使用 Go 的開(kāi)發(fā)者進(jìn)行并發(fā)編程的指導(dǎo)。認(rèn)為這是重大錯(cuò)誤。YlX28資訊網(wǎng)——每日最新資訊28at.com

為此 Go 團(tuán)隊(duì)整體上花了非常多的時(shí)間做教育和宣導(dǎo),來(lái)澄清并行和并發(fā)之間的區(qū)別。YlX28資訊網(wǎng)——每日最新資訊28at.com

這一現(xiàn)象,直到 2012 年在技術(shù)大會(huì)上做了以下分享:YlX28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片YlX28資訊網(wǎng)——每日最新資訊28at.com

Concurrency is not Parallelism by Rob Pike[1]YlX28資訊網(wǎng)——每日最新資訊28at.com

自此,“并發(fā)不是并行” 這句 Go 哲學(xué)用語(yǔ)流行了起來(lái)。一直到現(xiàn)在。YlX28資訊網(wǎng)——每日最新資訊28at.com

編譯器有些困擾

早期的 Go 編譯器是用 C 編寫的。對(duì)社區(qū)里的開(kāi)發(fā)者造成一定的困擾。YlX28資訊網(wǎng)——每日最新資訊28at.com

普遍上正確的方式是使用 LLVM 或類似的工具包,或者用 Go 本身編寫編譯器。這被稱為自托管或自舉。YlX28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片YlX28資訊網(wǎng)——每日最新資訊28at.com

The Go compiler architecture post Go 1.5YlX28資訊網(wǎng)——每日最新資訊28at.com

后面 rsc 加入后寫了個(gè)工具,半自動(dòng)地將編譯器從 C 翻譯為 Go。再到后面(現(xiàn)在)絕大部分都是 Go 編寫的了。YlX28資訊網(wǎng)——每日最新資訊28at.com

編譯器的正式完善,Go 團(tuán)隊(duì)一開(kāi)始優(yōu)先級(jí)是放的比較低的。只是 ken 用 C 快速寫了個(gè) plan9 風(fēng)格的編譯器。直至后面 Go 核心相對(duì)穩(wěn)定,也有了新的人員進(jìn)入后才逐步改變。YlX28資訊網(wǎng)——每日最新資訊28at.com

有的同學(xué)看到這,可能在想。這有什么錯(cuò)誤的?rob 的解釋是:有些人對(duì)這一選擇感到不快,但這是我們當(dāng)時(shí)最正確的選擇。YlX28資訊網(wǎng)——每日最新資訊28at.com

項(xiàng)目管理沒(méi)做好

這里特指的是開(kāi)源社區(qū)。Go 團(tuán)隊(duì)一開(kāi)始就知道,Go 如果希望成功,必須要是一個(gè)開(kāi)源項(xiàng)目。YlX28資訊網(wǎng)——每日最新資訊28at.com

但是 Go 團(tuán)隊(duì)向開(kāi)源的過(guò)渡的不是很順利,也比較缺乏經(jīng)驗(yàn)?;ㄙM(fèi)了大量的時(shí)間與社區(qū)溝通、互動(dòng)、討論。YlX28資訊網(wǎng)——每日最新資訊28at.com

最終花了很長(zhǎng)時(shí)間才了解轉(zhuǎn)為開(kāi)放源代碼項(xiàng)目的影響,以及如何進(jìn)行管理這個(gè)項(xiàng)目。YlX28資訊網(wǎng)——每日最新資訊28at.com

另外,Go 項(xiàng)目曾使用過(guò) 4 種不同的內(nèi)容管理系統(tǒng):SVN、Perforce、Mercurial 和 Git。Russ 做了一項(xiàng)艱巨的工作,讓所有的歷史都得以保留,這非常有價(jià)值。YlX28資訊網(wǎng)——每日最新資訊28at.com

包管理做的不太好

開(kāi)發(fā) Go 軟件包管理的過(guò)程并不順利。YlX28資訊網(wǎng)——每日最新資訊28at.com

嚴(yán)謹(jǐn)來(lái)講,Go 本身的軟件包設(shè)計(jì)非常出色,但包管理和過(guò)程不太好。YlX28資訊網(wǎng)——每日最新資訊28at.com

主要分為以下兩點(diǎn):YlX28資訊網(wǎng)——每日最新資訊28at.com

1、沒(méi)有使用包管理的經(jīng)驗(yàn):早期 Go 核心團(tuán)隊(duì)的成員都很熟悉 Google 的工作方式,即使用 monorepo 和每個(gè)人都在進(jìn)行構(gòu)建。但是,我們?cè)谑褂密浖芾砥鳑](méi)有足夠的經(jīng)驗(yàn),軟件包版本眾多,解決依賴關(guān)系圖的問(wèn)題也非常困難。YlX28資訊網(wǎng)——每日最新資訊28at.com

2、與社區(qū)的合作不太成功:讓社區(qū)參與幫助解決依賴管理問(wèn)題的初衷是好的,但當(dāng)最終設(shè)計(jì)出來(lái)時(shí),即使有大量的文檔和關(guān)于理論的文章,社區(qū)中的許多人還是覺(jué)得被輕視了。YlX28資訊網(wǎng)——每日最新資訊28at.com

Go 團(tuán)隊(duì)認(rèn)為這次失敗給團(tuán)隊(duì)上了一課,讓他們知道如何真正與社區(qū)互動(dòng),并且自此取得了很大的進(jìn)步。YlX28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在包模塊的事情已經(jīng)塵埃落定,新出現(xiàn)的設(shè)計(jì)在技術(shù)上非常出色,而且似乎對(duì)大多數(shù)用戶來(lái)說(shuō)都很好用。只是時(shí)間太長(zhǎng),道路崎嶇。YlX28資訊網(wǎng)——每日最新資訊28at.com

本煎魚表示,這次包管理的社區(qū)和官方的斗爭(zhēng)事件,也成為了 Go 團(tuán)隊(duì)在社區(qū)里顯著的黑料,這么多年了也一直被記著。反復(fù)被人提起。YlX28資訊網(wǎng)——每日最新資訊28at.com

文檔和示例沒(méi)寫好

前期沒(méi)有做好的事情是文檔。Go 團(tuán)隊(duì)寫了很多文檔,并認(rèn)為自己做得很好,但很快就發(fā)現(xiàn),社區(qū)需要的文檔水平與團(tuán)隊(duì)的預(yù)期不同。YlX28資訊網(wǎng)——每日最新資訊28at.com

原先的文檔,即使是最簡(jiǎn)單的功能,我們也缺少示例。原以為只要說(shuō)出某個(gè)功能的作用就可以了,我們花了很長(zhǎng)時(shí)間才認(rèn)識(shí)到,展示如何使用這些功能才更有價(jià)值。YlX28資訊網(wǎng)——每日最新資訊28at.com

Executable examplesExecutable examplesYlX28資訊網(wǎng)——每日最新資訊28at.com

劃重點(diǎn),要有例子!YlX28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片YlX28資訊網(wǎng)——每日最新資訊28at.com

后面這些問(wèn)題都已經(jīng)解決,現(xiàn)在的文檔中有很多示例,可以在瀏覽器上直接運(yùn)行這些代碼片段。YlX28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

在 rob 對(duì) Go 過(guò)去那么多年做回顧時(shí),我們能夠發(fā)現(xiàn)無(wú)論是做得好,做的不好,都不是單純一點(diǎn)就能夠涵蓋的。YlX28資訊網(wǎng)——每日最新資訊28at.com

在本篇文章中,我認(rèn)為更多的是 Go 團(tuán)隊(duì)的成長(zhǎng)過(guò)程中,一開(kāi)始不懂,后面慢慢才懂的事情。我們可以以此吸取好的地方,爭(zhēng)取站在大佬的肩膀上。YlX28資訊網(wǎng)——每日最新資訊28at.com

最后 rob 也再次強(qiáng)調(diào)了,Google 對(duì) Go 的支持慷慨得令人難以置信,Google 并不制定議程。社區(qū)的參與度要高得多。核心 Go 團(tuán)隊(duì)由 Google 支付報(bào)酬,但他們是獨(dú)立的。YlX28資訊網(wǎng)——每日最新資訊28at.com

參考資料

[1]Concurrency is not Parallelism by Rob Pike: https://www.youtube.com/watch?v=oV9rvDllKEgYlX28資訊網(wǎng)——每日最新資訊28at.com

YlX28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-82038-0.htmlGo 哪里沒(méi)有做好?Rob Pike 深刻反思了

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 基于TTL 解決線程池中 ThreadLocal 線程無(wú)法共享的問(wèn)題

下一篇: Java中的String,這一篇就夠了

標(biāo)簽:
  • 熱門焦點(diǎn)
  • Find N3入網(wǎng):最高支持16+1TB

    OPPO將于近期登場(chǎng)的Find N3折疊屏目前已經(jīng)正式入網(wǎng),型號(hào)為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號(hào)的橫向折疊屏,而是跟別的廠商一樣采用了較為常見(jiàn)的
  • 0糖0卡0脂 旭日森林仙草烏龍茶優(yōu)惠:15瓶到手29元

    旭日森林無(wú)糖仙草烏龍茶510ml*15瓶平時(shí)要賣為79.9元,今日下單領(lǐng)取50元優(yōu)惠券,到手價(jià)為29.9元。產(chǎn)品規(guī)格:0糖0卡0脂,添加草本仙草汁,清涼爽口,富含茶多酚,保留
  • 十個(gè)可以手動(dòng)編寫的 JavaScript 數(shù)組 API

    JavaScript 中有很多API,使用得當(dāng),會(huì)很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對(duì)它們進(jìn)行一次小總結(jié)。現(xiàn)在開(kāi)始吧。1.forEach()forEach()用于遍歷數(shù)組接收一參
  • 把LangChain跑起來(lái)的三個(gè)方法

    使用LangChain開(kāi)發(fā)LLM應(yīng)用時(shí),需要機(jī)器進(jìn)行GLM部署,好多同學(xué)第一步就被勸退了,那么如何繞過(guò)這個(gè)步驟先學(xué)習(xí)LLM模型的應(yīng)用,對(duì)Langchain進(jìn)行快速上手?本片講解3個(gè)把LangChain跑起來(lái)
  • 只需五步,使用start.spring.io快速入門Spring編程

    步驟1打開(kāi)https://start.spring.io/,按照屏幕截圖中的內(nèi)容創(chuàng)建項(xiàng)目,添加 Spring Web 依賴項(xiàng),并單擊“生成”按鈕下載 .zip 文件,為下一步做準(zhǔn)備。請(qǐng)?jiān)谶M(jìn)入步驟2之前進(jìn)行解壓。圖
  • 破圈是B站頭上的緊箍咒

    來(lái)源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準(zhǔn)追劇女孩們的古偶劇集,2021年有優(yōu)酷的《山河令》,2022年有愛(ài)奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 三星電子Q2營(yíng)收60萬(wàn)億韓元 存儲(chǔ)業(yè)務(wù)營(yíng)收同比仍下滑超過(guò)50%

    7月27日消息,據(jù)外媒報(bào)道,從三星電子所發(fā)布的財(cái)報(bào)來(lái)看,他們主要利潤(rùn)來(lái)源的存儲(chǔ)芯片業(yè)務(wù)在今年二季度仍不樂(lè)觀,營(yíng)收同比仍在大幅下滑,所在的設(shè)備解決方案
  • 三星推出Galaxy Tab S9系列平板電腦以及Galaxy Watch6系列智能手表

    2023年7月26日,三星電子正式發(fā)布了Galaxy Z Flip5與Galaxy Z Fold5。除此之外,Galaxy Tab S9系列平板電腦以及三星Galaxy Watch6系列智能手表也同期
  • “買真退假” 這種“羊毛”不能薅

    □ 法治日?qǐng)?bào) 記者 王春   □ 本報(bào)通訊員 胡佳麗  2020年初,還在上大學(xué)的小東加入了一個(gè)大學(xué)生兼職QQ群。群主“七王”在群里介紹一些刷單賺
Top