欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

千鋒扣丁學(xué)堂淺談為什么區(qū)塊鏈用go語言開發(fā)

2019-07-02 14:54:51 2295瀏覽

今天千鋒扣丁學(xué)堂區(qū)塊鏈培訓(xùn)老師給大家分享一篇關(guān)于為什么區(qū)塊鏈用go語言開發(fā)?首先Go語言現(xiàn)在常常被用來做去中心化系統(tǒng)(decentralisedsystem)。其他類型的公司也都把Go用在產(chǎn)品的核心模塊中,并且它在網(wǎng)站開發(fā)中也占據(jù)了一席之地。



我們?cè)跊Q定做Karachain的時(shí)候,考量(benchmark)了C,C++,Java,甚至NodeJs,我們也試著用一些算法來作為考量標(biāo)準(zhǔn)。而現(xiàn)在,我表示我們正在用Go來實(shí)現(xiàn)此目標(biāo),并且感覺不錯(cuò)。

現(xiàn)在建造一個(gè)區(qū)塊鏈,恰如當(dāng)時(shí)建造一個(gè)操作系統(tǒng),我們?cè)诮ㄔ煜駞^(qū)塊鏈平臺(tái)這樣復(fù)雜的東西時(shí),把注意力放在了那些核心問題上。經(jīng)過差不多4周的開發(fā)與探索,我們才發(fā)現(xiàn)這門奇妙的語言是如何優(yōu)雅地解答了我們的難題。

Go語言很簡(jiǎn)單。并且每次你中途休息(cessation)之后回到代碼中時(shí),它沒有那么多詭異的錯(cuò)誤(quirk)來浪費(fèi)你的時(shí)間。再加上,它所需要的學(xué)習(xí)量很少,因?yàn)樗恼Z法比較大眾,開發(fā)者的學(xué)習(xí)曲線很平緩,這樣的特性本身就很吸引開發(fā)者。這也導(dǎo)致(facilitate)出現(xiàn)Bug的幾率很低。所以整個(gè)開發(fā)過程顯得如此簡(jiǎn)單快速。

一般來講,代碼量越多,項(xiàng)目越難維護(hù)。而一個(gè)區(qū)塊鏈系統(tǒng)需要的代碼可達(dá)幾千行,所以我們需要一門語言,來讓維護(hù)變得輕松。

我們初期有20位出色的工程師,大多來自JavaScript,Java,和Python,也有的是系統(tǒng)工程師,善使C器。

我們自然需要同一個(gè)語言來協(xié)同工作。說服(convince)他們來學(xué)習(xí)Go非常容易,但讓他們一個(gè)月速成Go語言工程師,卻也是挺簡(jiǎn)單。。。我倒不確定選擇其他語言是否也能有此神速。

不似Python,Go不是一種解釋型語言——它是編譯型的。這大大地(drastically)減少了在運(yùn)行中突然出現(xiàn)的Bug。這一點(diǎn)有點(diǎn)像C語言,代碼先被編譯,錯(cuò)誤會(huì)在編譯時(shí)出現(xiàn)并得到處理,然后才能運(yùn)行;但是,它比C更高級(jí),比JavaScript和Python更具生產(chǎn)力。

一個(gè)區(qū)塊鏈非常需要高效性,鑒于其使用的是加密(cryptographic)算法,鑒于它把大量數(shù)據(jù)傳輸(propagate)于網(wǎng)絡(luò),并存儲(chǔ)于網(wǎng)絡(luò)。

這一點(diǎn),在那些用Golang打造的工具和軟件中顯而易見。Docker,作為一種微服務(wù)的容器,也是用Golang打造。

我們已經(jīng)看到了我們能用Golang打造的微服務(wù)輕松駕馭百萬數(shù)量的請(qǐng)求。

并發(fā)(Concurrency)是讓幾個(gè)程序或者一個(gè)程序的幾個(gè)部分同時(shí)間運(yùn)行,或者說并行,以提升計(jì)算機(jī)的吞吐量(throughput)。通常,在Java或其他一些語言中,通過線程(threads)來實(shí)現(xiàn)并發(fā)。而Go則用的是“Goroutines”方法。Goroutines就是說一些函數(shù),它們可以同另外的一些函數(shù)同時(shí)被執(zhí)行。一個(gè)Goroutine在內(nèi)存中占用大概4kb,而一個(gè)線程需要大約1024kb的內(nèi)存。所以,Goroutines同其他語言所使用的線程比起來,小了250倍,這使得它也可以同時(shí)執(zhí)行不斷增加的其他Goroutines。

以下是Go語言在處理線程方面與Java的不同之處:

在Java中,對(duì)象(object)在工作單元間共享,其中某一單元為了訪問到這個(gè)數(shù)據(jù),必須先得到它的對(duì)象鎖。在Golang中,工作單元間共享一種被稱為信道(channel)的東西,一個(gè)信道基本上就是一個(gè)先入先出通道(FIFOpipe)——工作單元可以向信道發(fā)起數(shù)據(jù)讀寫。

Go語言遵循著它的準(zhǔn)則——“不要通過內(nèi)存共享進(jìn)行通訊,應(yīng)當(dāng)通過通訊來共享內(nèi)存”(nottocommunicatebysharingmemory,insteadsharememorybycommunicating)。

并行操作對(duì)于區(qū)塊鏈?zhǔn)怯兄厥庖饬x的。同時(shí)跑大量函數(shù)——這一巧妙而天然的特性使得Go程序靈活地運(yùn)行于分布式系統(tǒng),這正是區(qū)塊鏈的主要需求。不過這一特性早已被發(fā)掘,有Docker,MongoDB,Netflix,Uber等等等,他們的產(chǎn)品功能也都主要依賴于高并發(fā)。

很多基于穩(wěn)定區(qū)塊鏈的DApps和tools都是用的Go語言。你所需要的某個(gè)功能,很輕松就能找到一個(gè)相對(duì)應(yīng)的庫。

Go是編譯型的,所以直接由操作系統(tǒng)執(zhí)行。這讓我們可以更自如地實(shí)現(xiàn)像以太坊沙盒(EVM(EthereumVirtualMachine))一樣的技術(shù)。而如果是Java,因?yàn)樗旧淼倪\(yùn)行載體JVM就是一個(gè)虛擬機(jī),要再在上面做一個(gè)沙盒,實(shí)質(zhì)是更高一層的抽象,這完全沒有必要,會(huì)浪費(fèi)計(jì)算機(jī)資源。

當(dāng)然,Go的使用體驗(yàn)像是腳本語言,學(xué)習(xí)成本很低,所以非常適合小型項(xiàng)目。而在QPS(TheQueriespersecond)上,比起Java好太多,所以又適合用來構(gòu)建高請(qǐng)求量的服務(wù)。

一些美妙的Go代碼片段

1、這個(gè)是輕易地從一個(gè)函數(shù)返回一個(gè)指針到局部變量:

2、你可以在函數(shù)內(nèi)部再定義另外的函數(shù)并可以用函數(shù)作為返回值,其中的局部變量會(huì)被當(dāng)做閉包內(nèi)變量:

3、基于對(duì)象編程:Go語言是簡(jiǎn)單而易學(xué)的,是簡(jiǎn)潔而易懂的。“實(shí)用主義”是它的標(biāo)簽,性能高于觀感。它被設(shè)計(jì)用于團(tuán)隊(duì)型工作,并且,效果十分出色。

以上就是千鋒扣丁學(xué)堂淺談為什么區(qū)塊鏈用go語言開發(fā)的全部?jī)?nèi)容,想要了解更多關(guān)于區(qū)塊鏈方面內(nèi)容的小伙伴,請(qǐng)關(guān)注扣丁學(xué)堂區(qū)塊鏈培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育有專業(yè)的區(qū)塊鏈講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的區(qū)塊鏈視頻教程定能讓你快速掌握區(qū)塊鏈從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂區(qū)塊鏈交流群:850351616。


                          【掃碼進(jìn)入HTML5VIP免費(fèi)公開課】  


     【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】        【掃碼進(jìn)入HTML5前端開發(fā)VIP免費(fèi)公開課】  



查看更多關(guān)于“區(qū)塊鏈培訓(xùn)技術(shù)資訊”的相關(guān)文章>>

標(biāo)簽: 區(qū)塊鏈培訓(xùn) 區(qū)塊鏈技術(shù) 區(qū)塊鏈開發(fā) 區(qū)塊鏈視頻教程 Go語言 golang

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部