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

Go語言之于系統(tǒng)管理員

開發(fā) 項(xiàng)目管理
“就算我從來沒有直接接觸過Go并發(fā)原語,為了其部署的隨意性,我確信我會用Go重寫所有我的命令行程序?!边@是我以前說過的話。我認(rèn)為這句話值得寫一篇更詳細(xì)的博文。

“就算我從來沒有直接接觸過Go并發(fā)原語,為了其部署的隨意性,我確信我會用Go重寫所有我的命令行程序。”

這是我以前說過的話。我認(rèn)為這句話值得寫一篇更詳細(xì)的博文。

NKOTB

大多深入了解我的人都知道關(guān)于我的兩件事情:

  • 對技術(shù)決策,我是相當(dāng)實(shí)用主義并有點(diǎn)保守的。
  • 我是一個(gè)語言旅行者

第二個(gè)是Bryan Berry給我貼的標(biāo)簽,引自一個(gè)FoodFight早期片段。

有趣的是,這兩件事看起來是矛盾的。

我喜歡學(xué)習(xí)新的編程語言。這定期會給我?guī)聿恍〉臎_擊,因?yàn)椴皇莻€(gè)科班的程序員。我沒有去上大學(xué)學(xué)編程(實(shí)際上,我根本沒有讀大學(xué))。我的IT職業(yè)生涯幾乎100%集中于運(yùn)維。所有我接觸過的東西- QA、DBA、 DEV – 都是源于運(yùn)維領(lǐng)域,用于滿足某些運(yùn)維操作上的需求。

因此,我驚訝地發(fā)現(xiàn)18年后,自己擁有ruby,python,perl,java的實(shí)踐知識,并了解其他一些編程語言。我學(xué)習(xí)新的編程語言主要是因?yàn)?ldquo;技癢”。

我就是在這種情況下,遇到了Go。

如果你沒聽說過Go,其實(shí)有無數(shù)的文章,博文和大量新的工具用Go寫成。***的linux容器周邊和新的部署模型就是基 于Go的。也有一些相當(dāng)“大”的用Go編寫的項(xiàng)目,如packer等。Mozilla正在用Go構(gòu)建所有內(nèi)部工具(據(jù)我了解到的是這樣的),很多開發(fā)者也 在轉(zhuǎn)向Go。

你需要知道的是,我并不會因?yàn)闊岫热W(xué)習(xí)編程語言。比如,我根本就不關(guān)心JavaScript和Node。起初,我對Go也沒任何興趣。我認(rèn)為它只不過是Google的眾多學(xué)術(shù)實(shí)驗(yàn)中的一個(gè)。何況,如果我要接觸一個(gè)C風(fēng)格的編程語言,為什么我不直接學(xué)習(xí)C語言呢?

實(shí)際上,我用這個(gè)路子嘗試為StormPath寫一個(gè)PAM模塊。雖然也還滿意,但項(xiàng)目最終很讓人沮喪。

那,為什么開始用Go?

我覺得再嘗試Go的一個(gè)原因是Go似乎一直都在我周圍。這至少給我?guī)硪粋€(gè)競爭者。其次,我使用的部分工具是用Go編寫的,我要修正一些這些工具的問題(尤其是這些工具是新項(xiàng)目,必然會有問題需要修復(fù)),我確實(shí)需要學(xué)習(xí)這們新的編程語言。

然而,一個(gè)工具把我推到了***一步 – etcd。

你自己可以通讀etcd,如果你知道我關(guān)于 Noah的歷史,你就明白為什么我對它如此感興趣。

讓我自己吃驚的是,我決定可能我自己也要用Go寫很多工具。

關(guān)于實(shí)用主義

在Dell Enstratius,我的團(tuán)隊(duì)開發(fā)的所有內(nèi)部工具都是用Python寫成的。對我們而言,這是一個(gè)實(shí)用的選擇:

  • 在我們產(chǎn)品支持的平臺上Python的依賴最?。ㄋ矔谖覀兛蛻舻南到y(tǒng)上)。
  • 對新的開發(fā)者(我們團(tuán)隊(duì)確實(shí)有那么幾個(gè))來說,Python用正確的方式進(jìn)行了嚴(yán)格規(guī)定。
  • 由于上一條,不管你的Python水平如何,你都可以經(jīng)常審閱和學(xué)習(xí)別人的代碼。

為什么我們不用Ruby?考慮到我個(gè)人Ruby技能更好并且我們內(nèi)部也擁有一些Ruby經(jīng)驗(yàn)。

  • 你看過Ruby發(fā)行版的狀態(tài)么?
  • 我們不想和任何潛在的使用Ruby的客戶工具沖突
  • Ruby對新手而言不夠嚴(yán)格
  • 和我一樣對Ruby熟悉的話,由于Ruby的靈活性和元編程,查看別人的代碼會極其困難。

我們團(tuán)隊(duì)考慮了以上所有選項(xiàng),我們?nèi)客馐褂肞ython。我著手寫了一個(gè)訪問我們API的庫。這給我們構(gòu)建工具提供了基礎(chǔ),同時(shí)也作為一個(gè)新工具參考項(xiàng)目(如測試,項(xiàng)目結(jié)構(gòu),可執(zhí)行腳本等等)。

事情進(jìn)展的很順利,直到最近一個(gè)客戶的情況發(fā)生。為了顯而易見的原因,我們努力精簡依賴。有幾個(gè)庫讓這件事變得如此順利- requests, envoy。我們也喜歡使用 Fabric來封裝一些東西。

然后,我們遇到一個(gè)狀況,一個(gè)客戶拒絕我們引入外部的包。因此,雖然我們可以“半死”大部分我們的工具,有些事情就是不能工作。追蹤傳遞的依賴真是痛苦。

這就是導(dǎo)致我上面陳述的原因。

Go構(gòu)建工具

Go,雖然不像Python那么容易調(diào)試,也還非常容易調(diào)試。編譯速度很快,測試速度也相當(dāng)快。但依賴問題才是真正的殺手锏。Go根本就不存在依賴問題。我可以把我編譯好的二進(jìn)制文件任意移動而不出任何問題,也不需要安裝運(yùn)行時(shí)。在標(biāo)準(zhǔn)庫中也有很多有用的東西。

我也可以在osx,windows或者linux上不做任何更改的編譯相同的代碼。這也比我們使用Python方便。

和我說的一樣,雖然我現(xiàn)在寫的工具一點(diǎn)也沒用上Go的高級并發(fā)特性,但是Go確實(shí)擁有這個(gè)特性,如果我要用,還是很好的。

這不是一個(gè)轉(zhuǎn)換語言的故事。

我們還沒有轉(zhuǎn)向用Go來構(gòu)建工具,但我很可能會用的。我已經(jīng)致力于用Go來寫一個(gè)我們API的封裝,因此我也可以重寫其他一些工具。在依賴受限的系統(tǒng)上,這種做法還是很好用的。這就是這篇博文的重點(diǎn)所在。

如果你的工作和運(yùn)維相關(guān),學(xué)習(xí)Go沒什么壞處。

語法簡潔。C帶來的頭痛的問題基本都會消失不見。同時(shí),你也不用擔(dān)心系統(tǒng)的Python或者Ruby版本是多少。Go是 一個(gè)開發(fā)bootstrap工具的絕妙語言——因?yàn)閎ootstrap工具的運(yùn)行環(huán)境沒有任何安裝好的依賴。如果你開始使用像docker, packer 或者etcd的工具,Go也會很有幫助。

試試Go吧。

原文鏈接:http://blog.lusis.org/blog/2013/08/11/go-for-system-administrators/

譯文鏈接:http://blog.jobbole.com/45939/

責(zé)任編輯:陳四芳 來源: 伯樂在線
相關(guān)推薦

2012-06-06 10:41:37

系統(tǒng)管理員運(yùn)維

2010-08-10 09:13:52

Unix系統(tǒng)管理員Ubuntu

2010-05-06 18:07:33

Unix命令

2010-08-11 17:11:15

2013-03-30 21:59:13

系統(tǒng)管理員必備工具iftop

2019-09-09 14:45:29

系統(tǒng)管理員SRE

2018-08-01 08:12:34

Linux管理員網(wǎng)絡(luò)管理

2011-10-20 10:29:22

VMwareVMworld虛擬化

2010-04-12 09:33:58

系統(tǒng)管理員

2010-11-10 09:36:38

系統(tǒng)管理員守則

2018-08-15 14:00:18

LinuxBash系統(tǒng)管理員

2013-06-26 09:29:30

系統(tǒng)管理員

2013-09-29 09:50:21

系統(tǒng)管理員Ubuntu JujuJuju

2009-10-22 16:53:08

2019-08-23 08:00:00

系統(tǒng)管理架構(gòu)

2010-05-07 16:35:44

2019-08-13 19:34:45

容器鏡像DockerLinux

2012-08-07 09:40:58

系統(tǒng)管理員職業(yè)生涯

2011-06-16 09:35:28

系統(tǒng)管理員iPad應(yīng)用

2013-12-09 16:15:08

系統(tǒng)管理員WebminLinux服務(wù)
點(diǎn)贊
收藏

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