《Go語(yǔ)言四十二章經(jīng)》
作者:ffhelicopter(李驍) 時(shí)間:2018-04-15
起因
一直想寫(xiě)點(diǎn)什么但懶得動(dòng)筆或者是不知道寫(xiě)什么。而這次寫(xiě)《Go語(yǔ)言四十二章經(jīng)》虐杯,純粹是因?yàn)殚_(kāi)發(fā)過(guò)程中碰到過(guò)的一些問(wèn)題,踩到過(guò)的一些坑昙读,感覺(jué)在Go語(yǔ)言學(xué)習(xí)使用過(guò)程中,有必要深刻理解這門(mén)語(yǔ)言的核心思維膨桥、清晰掌握語(yǔ)言的細(xì)節(jié)規(guī)范以及反復(fù)琢磨標(biāo)準(zhǔn)包代碼設(shè)計(jì)模式蛮浑,于是才有了這本書(shū)。
Go語(yǔ)言以語(yǔ)法簡(jiǎn)單只嚣、門(mén)檻低沮稚、上手快著稱(chēng)。但入門(mén)后很多人發(fā)現(xiàn)要寫(xiě)出地道的册舞、遵循 Go語(yǔ)言思維的代碼卻是不易蕴掏。
在剛開(kāi)始學(xué)習(xí)中,我?guī)е容^強(qiáng)的面向?qū)ο缶幊趟季S慣性來(lái)寫(xiě)代碼调鲸。但后來(lái)發(fā)現(xiàn)盛杰,帶著面向?qū)ο蟮乃悸穪?lái)寫(xiě)Go 語(yǔ)言代碼會(huì)很難繼續(xù)寫(xiě)下去,或者說(shuō)看了系統(tǒng)源代碼或其他知名開(kāi)源包源代碼后藐石,圍繞著Struct和Interface來(lái)寫(xiě)代碼會(huì)更高效即供,代碼更美觀。雖然有人認(rèn)為贯钩,Go語(yǔ)言的Strcut 和 Interface 一起募狂,配合方法办素,也可以理解為面向?qū)ο蠼抢祝@點(diǎn)我姑且認(rèn)可,但開(kāi)發(fā)中不要過(guò)意考慮這些性穿。因?yàn)樵贕o 語(yǔ)言中勺三,Interface接口的使用將更為靈活,刻意追求面向?qū)ο笮柙瑫?huì)導(dǎo)致你很難理解接口在Go 語(yǔ)言中的妙處吗坚。
作為Go語(yǔ)言的愛(ài)好者,在閱讀系統(tǒng)源代碼或其他知名開(kāi)源包源代碼時(shí)呆万,發(fā)現(xiàn)大牛對(duì)這門(mén)語(yǔ)言的了解之深入商源,代碼實(shí)現(xiàn)之巧妙優(yōu)美,所以我建議你有時(shí)間多多閱讀這些代碼谋减。網(wǎng)上有說(shuō)Go大神的標(biāo)準(zhǔn)是“能理解簡(jiǎn)潔和可組合性哲學(xué)”牡彻,的確Go語(yǔ)言追求代碼簡(jiǎn)潔到極致,而組合思想可謂借助于struct和interface兩者而成為Go的靈魂出爹。
Function庄吼,Method缎除,Interface,Type等名詞是程序員們接觸比較多的關(guān)鍵字总寻,但在Go語(yǔ)言中器罐,你會(huì)發(fā)現(xiàn),其有了更強(qiáng)大渐行,更靈活的用法轰坊。當(dāng)你徹底理解了Go語(yǔ)言相關(guān)基本概念,以及對(duì)其特點(diǎn)有深入的認(rèn)知祟印,當(dāng)然這也這本書(shū)的目的衰倦,再假以時(shí)日多練習(xí)和實(shí)踐,我相信你應(yīng)該很快就能徹底掌握這門(mén)語(yǔ)言旁理,成為一名出色的Gopher樊零。
這本書(shū)適合Go語(yǔ)言新手來(lái)細(xì)細(xì)閱讀,對(duì)于有一定經(jīng)驗(yàn)的開(kāi)發(fā)人員孽文,也可以根據(jù)自己的情況驻襟,選擇一些章節(jié)來(lái)看。
第一章到第二十六章主要講Go語(yǔ)言的基礎(chǔ)知識(shí)芋哭,其中第十七章的type沉衣,第十八章的struct,第十九章的interface减牺,以及第二十章的方法豌习,都是Go語(yǔ)言中非常非常重要的部分。
而第二十一章的協(xié)程拔疚,第二十二章的通道以及第二十三章的同步與鎖肥隆,這三章在并發(fā)處理中我們通常都需要用到,需要弄清楚他們的概念和彼此間聯(lián)系稚失。
從第二十七章開(kāi)始栋艳,到第三十八章,講述了Go標(biāo)準(zhǔn)包中比較重要的幾個(gè)包句各,可以仔細(xì)看源代碼來(lái)學(xué)習(xí)大師們的編程風(fēng)格吸占。
從第三十九章開(kāi)始到結(jié)尾,主要講述了比較常用的第三方包凿宾,但由于篇幅有限矾屯,也就不展開(kāi)來(lái)講述,有興趣的朋友可直接到相關(guān)開(kāi)源項(xiàng)目詳細(xì)了解初厚。
最后件蚕,希望更多的人了解和使用Go語(yǔ)言,也希望閱讀本書(shū)的朋友們多多交流。雖然本書(shū)中例子都經(jīng)過(guò)實(shí)際運(yùn)行骤坐,但難免出現(xiàn)錯(cuò)誤和不足之處绪杏,煩請(qǐng)您指出;如有建議也歡迎交流纽绍。聯(lián)系郵箱:roteman@163.com
祝各位Gopher們工作開(kāi)心蕾久,愉快編碼!
閱讀
本書(shū)內(nèi)容在github會(huì)持續(xù)更新:https://github.com/ffhelicopter/Go42
交流
雖然本書(shū)中例子都經(jīng)過(guò)實(shí)際運(yùn)行拌夏,但難免出現(xiàn)錯(cuò)誤和不足之處僧著,煩請(qǐng)您指出;如有建議也歡迎交流障簿。
感謝以下網(wǎng)友對(duì)本書(shū)提出的修改建議:Joyboo 盹愚、林遠(yuǎn)鵬、Mr_RSI站故、magic-joker皆怕、3lackrush、Jacky2西篓、tanjibo愈腾、wisecsj、eternal-flame-AD岂津、isLishude虱黄、morya、adophper吮成、ivanberry橱乱、xjl662750、huanglizhuo粱甫、xianyunyh泳叠、榮怡、pannz魔种、yaaaaaaaan析二、sidbusy粉洼、NHibiki节预、awkj 、yufy属韧、lazyou安拟、 liov 、飛翔不能的翔哥宵喂、橡_皮泥糠赦、劉沖_54ac、henng
更新
本書(shū)會(huì)持續(xù)更新!為了更簡(jiǎn)單表述清楚拙泽,某些章節(jié)的內(nèi)容我會(huì)根據(jù)情況隨時(shí)更新淌山;當(dāng)然也會(huì)隨Go語(yǔ)言版本的不斷更新,不斷修改完善相關(guān)章節(jié)的內(nèi)容和代碼顾瞻。請(qǐng)關(guān)注GitHub本書(shū)網(wǎng)址:https://github.com/ffhelicopter/Go42