編寫go語(yǔ)言代碼三條基本原則

這是一篇翻譯文章废菱,為了使讀者更好的理解膊畴,會(huì)在原文翻譯的基礎(chǔ)增加一些講解或描述黄琼。 > 軟件工程是當(dāng)您添加時(shí)間和其他程序員時(shí)編程發(fā)生的事情相赁。 — Russ Cox Russ 正在區(qū)分軟件編程和軟件工程崭参。 前者是您為自己編寫的程序呵曹,后者是隨著時(shí)間的推移許多人會(huì)使用的產(chǎn)品。 工程師會(huì)來來去去何暮,團(tuán)隊(duì)會(huì)擴(kuò)大和縮小奄喂,需求會(huì)改變,功能會(huì)被添加海洼,錯(cuò)誤會(huì)被修復(fù)跨新。 這是軟件工程的本質(zhì)。 # 三條基本原則 - 清晰可讀 - 化繁為簡(jiǎn) - 生產(chǎn)力 > 你會(huì)注意到我沒有說性能或并發(fā)性坏逢。 有些語(yǔ)言比 Go 快一點(diǎn)域帐,但它們肯定不像 Go 那樣簡(jiǎn)單。 有些語(yǔ)言將并發(fā)作為最高目標(biāo)是整,但它們的可讀性和生產(chǎn)力都不高肖揣。 性能和并發(fā)性是重要的屬性,但不如清晰浮入、簡(jiǎn)單和生產(chǎn)力重要龙优。 ### 1.1 清晰可讀 程序代碼應(yīng)該主要是方便人類閱讀,并且可以在機(jī)器上運(yùn)行事秀。代碼的閱讀次數(shù)比編寫次數(shù)多得多彤断。 一段代碼在其生命周期中將被閱讀數(shù)百次,甚至數(shù)千次秽晚。清晰很重要瓦糟,因?yàn)樗熊浖灿蓿粌H僅是go程序赴蝇,都是由人類編寫的,以供其他人閱讀巢掺。 機(jī)器也使用軟件這一事實(shí)是次要的句伶。 如果你正在為自己編寫一個(gè)程序劲蜻,也許它只需要運(yùn)行一次,或者你是唯一會(huì)看到它的人考余,那么就做對(duì)你有用的事情先嬉。 但是,如果這是一個(gè)多人貢獻(xiàn)的軟件楚堤,或者人們會(huì)在足夠長(zhǎng)的時(shí)間內(nèi)使用它疫蔓,要求、功能或運(yùn)行它的環(huán)境可能會(huì)發(fā)生變化身冬,那么您的目標(biāo)必須是為您的 程序是可維護(hù)的衅胀。 ### 1.2 化繁為簡(jiǎn) > 簡(jiǎn)單是可靠性的先決條件∷煮荩— Edsger W. Dijkstra 為什么我們要追求簡(jiǎn)單滚躯?為什么 Go 程序簡(jiǎn)單很重要? > 控制復(fù)雜性是計(jì)算機(jī)編程的本質(zhì)嘿歌〉停— Brian Kernighan 我們都遇到過你說“我無法理解這段代碼”的情況,是嗎宙帝?我們都參與過你害怕做出改變的程序丧凤,因?yàn)槟銚?dān)心它會(huì)破壞程序的另一部分;您不了解且不知道如何修復(fù)的部分步脓。這是復(fù)雜性息裸。 > 構(gòu)建軟件設(shè)計(jì)有兩種方式:一種是簡(jiǎn)單到?jīng)]有明顯的缺陷,另一種是復(fù)雜到?jīng)]有明顯的缺陷沪编。第一種方法要困難得多呼盆。— C. A. R. Hoare 復(fù)雜性將可靠的軟件變成了不可靠的軟件蚁廓。復(fù)雜性會(huì)扼殺軟件項(xiàng)目访圃。因此簡(jiǎn)單是 Go 的最高目標(biāo)。無論我們編寫什么程序相嵌,我們都應(yīng)該同意它們很簡(jiǎn)單腿时。 ### 1.3 生產(chǎn)力 > 設(shè)計(jì)是一門藝術(shù),要求編寫的代碼當(dāng)前可用饭宾,并且以后仍能被改動(dòng) --Metz 我要強(qiáng)調(diào)的最后一個(gè)基本原則是生產(chǎn)力批糟。開發(fā)人員的生產(chǎn)力是一個(gè)龐大的話題,但歸結(jié)為這一點(diǎn)看铆;你花多少時(shí)間做有用的工作而不是等待你的工具或絕望地迷失在外國(guó)代碼庫(kù)中徽鼎。 Go 程序員應(yīng)該覺得他們可以用 Go 完成很多工作。 有玩笑說 Go 是在等待 C++ 程序編譯時(shí)設(shè)計(jì)的》裼伲快速編譯是 Go 的一個(gè)關(guān)鍵特性悄但,也是吸引新開發(fā)人員的關(guān)鍵特性。編譯速度是經(jīng)久不衰的話題石抡,公平地說檐嚣,在其他靜態(tài)語(yǔ)言中需要幾分鐘的操作,在 Go 中只需要幾秒鐘啰扛。這有助于 Go 開發(fā)人員感覺與使用動(dòng)態(tài)語(yǔ)言工作的同行一樣高效柱衔,而不會(huì)出現(xiàn)那些動(dòng)態(tài)語(yǔ)言固有的可靠性問題吃型。 Go 程序員需要意識(shí)到編寫代碼是為了閱讀,因此將閱讀代碼的行為置于編寫代碼的行為之上。 Go 甚至通過工具和自定義來強(qiáng)制所有代碼都以特定樣式格式化脆炎。這消除了學(xué)習(xí)項(xiàng)目特定方言的困難慎颗,并有助于發(fā)現(xiàn)錯(cuò)誤待错,因?yàn)樗鼈兛雌饋聿徽_拗踢。 Go 程序員不會(huì)花幾天時(shí)間調(diào)試難以理解的編譯錯(cuò)誤。他們不會(huì)在復(fù)雜的構(gòu)建腳本或?qū)⒋a部署到生產(chǎn)環(huán)境中浪費(fèi)時(shí)間溜嗜。最重要的是宵膨,他們不會(huì)花很長(zhǎng)時(shí)間去理解同事寫的代碼。 Go 是一種旨在提高生產(chǎn)力的語(yǔ)言炸宵,它是為大規(guī)模辟躏、工業(yè)規(guī)模的軟件設(shè)計(jì)而構(gòu)建的。 ![](https://upload-images.jianshu.io/upload_images/28199768-df5d761e65a802b7.png) 本文由[mdnice](https://mdnice.com/?platform=6)多平臺(tái)發(fā)布
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末土全,一起剝皮案震驚了整個(gè)濱河市捎琐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌裹匙,老刑警劉巖瑞凑,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異概页,居然都是意外死亡籽御,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門惰匙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來技掏,“玉大人,你說我怎么就攤上這事项鬼⊙剖幔” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵绘盟,是天一觀的道長(zhǎng)鸠真。 經(jīng)常有香客問我悯仙,道長(zhǎng),這世上最難降的妖魔是什么弧哎? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任雁比,我火速辦了婚禮稚虎,結(jié)果婚禮上撤嫩,老公的妹妹穿的比我還像新娘。我一直安慰自己蠢终,他們只是感情好序攘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著寻拂,像睡著了一般程奠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祭钉,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天瞄沙,我揣著相機(jī)與錄音,去河邊找鬼慌核。 笑死距境,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的垮卓。 我是一名探鬼主播垫桂,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼粟按!你這毒婦竟也來了诬滩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤灭将,失蹤者是張志新(化名)和其女友劉穎疼鸟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庙曙,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡愚臀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了矾利。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姑裂。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖男旗,靈堂內(nèi)的尸體忽然破棺而出舶斧,到底是詐尸還是另有隱情,我是刑警寧澤察皇,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布茴厉,位于F島的核電站泽台,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏矾缓。R本人自食惡果不足惜怀酷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗜闻。 院中可真熱鬧蜕依,春花似錦、人聲如沸琉雳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)翠肘。三九已至檐束,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間束倍,已是汗流浹背被丧。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留绪妹,地道東北人甥桂。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像喂急,于是被迫代替她去往敵國(guó)和親格嘁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容