青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

戰(zhàn)魂小筑

討論群:309800774 知乎關(guān)注:http://zhihu.com/people/sunicdavy 開(kāi)源項(xiàng)目:https://github.com/davyxu

   :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  257 隨筆 :: 0 文章 :: 506 評(píng)論 :: 0 Trackbacks

滿打滿算, 從好友推薦Golang至發(fā)文時(shí), 使用Golang已經(jīng)有1年多了. 這種時(shí)間對(duì)于C/C++ Java這些老者來(lái)說(shuō), 簡(jiǎn)直是菜鳥(niǎo)級(jí)別的經(jīng)驗(yàn)

但作為新生代語(yǔ)言的特點(diǎn)就是實(shí)戰(zhàn). Golang這一年里, 已經(jīng)為項(xiàng)目提供了穩(wěn)定的服務(wù)器和強(qiáng)大的擴(kuò)展能力, 與客戶端的Unity3D里的C#一樣, 都是強(qiáng)大, 極致開(kāi)發(fā)效率代表的優(yōu)秀開(kāi)發(fā)語(yǔ)言.

用途篇

Golang到底拿來(lái)做啥? 我需要么?

高效(性能,開(kāi)發(fā))的服務(wù)器語(yǔ)言. 包括Web, 游戲, App

編寫(xiě)桌面級(jí)UI暫不是很適合

我需要把現(xiàn)在的C++, Python, Erlang等服務(wù)器改成Golang么?

性能有瓶頸, 開(kāi)發(fā)效率低, 有錢有時(shí)間的話, 完全可以

 

評(píng)價(jià)篇

聽(tīng)過(guò)太多的人對(duì)Golang的評(píng)價(jià), 大概分為這么幾類:

C/C++性能黨

此類黨員對(duì)任何事物都追求極致的 性能. 還好Golang是直接生成native code, 否則會(huì)被批的體無(wú)完膚. 但是由于Golang底層為并發(fā)和開(kāi)發(fā)效率而做出的一些系統(tǒng), 類似于GC, 調(diào)度器和分配器等, 會(huì)在語(yǔ)言層上損失很多性能. 因此C/C++黨還是有理由批Golang性能低下

Erlang并發(fā)黨

作為電信級(jí)元老, Erlang的模型和架構(gòu)當(dāng)之無(wú)愧, OTP擴(kuò)展性超級(jí)強(qiáng). 完美的Actor模型也讓邏輯編寫(xiě)比OO更加直觀

CSP與Actor區(qū)別僅僅只是在channel的歸屬范圍而已, 但這點(diǎn)細(xì)微差別卻對(duì)兩種語(yǔ)言的開(kāi)發(fā)變的迥然不同

Golang在并發(fā)模型上選擇了CSP, 就是考慮把架構(gòu)的設(shè)計(jì)留給使用者. 像C#一樣建立一個(gè)類庫(kù)的世界, 而不是MFC一樣的框架世界. 讓開(kāi)發(fā)更自由

Erlang的Actor也沒(méi)錯(cuò). 讓開(kāi)發(fā)更直觀, 讓崩潰提前來(lái)到, 盡快處理

Rust黨

Rust在發(fā)文時(shí)已經(jīng)發(fā)布了1.0. 這讓R粉興奮的穿梭于各大技術(shù)論壇和討論群

但Rust的理念在我看來(lái)有點(diǎn)偏執(zhí)了, 一定要把各種錯(cuò)誤在編譯期暴露出來(lái), 所以造出了很多不需要的類型和概念, 連語(yǔ)言都比C語(yǔ)言更符號(hào)話

大白話說(shuō)來(lái), 有點(diǎn)編程經(jīng)驗(yàn)的人看到JavaScript完全看得懂, 但看Rust卻像天書(shū)

對(duì)比同時(shí)期的TypeScript, Dart, Swift. Rust就是有點(diǎn)那么獨(dú)辟蹊徑

該黨黨員經(jīng)常性的用各種特性對(duì)比Golang, 追求單特性的優(yōu)秀.

但其實(shí), Golang本身是一門完整哲學(xué). 很多語(yǔ)言特性互相之間有關(guān)聯(lián). 有設(shè)計(jì)不當(dāng)?shù)牡胤? 當(dāng)然更多的是完整體系. 不求和其他語(yǔ)言比

只追求解決問(wèn)題的速度

自定義黨

云風(fēng)看過(guò)Golang后, 因?yàn)樵撜Z(yǔ)言本身就是強(qiáng)化版的C, 因此頗受云風(fēng)喜歡. 但在一堆評(píng)價(jià)后, 云風(fēng)還是果斷選擇了C+lua的組合寫(xiě)出的Skynet

雖然不知道原因, 但我猜的話, 畢竟是對(duì)語(yǔ)言本身的可控性還不那么看好

同時(shí), 我們發(fā)現(xiàn)Skynet使用的是Actor模型, 也發(fā)現(xiàn)大神級(jí)的程序員就是有先見(jiàn).

轉(zhuǎn)載請(qǐng)注明: 戰(zhàn)魂小筑http://m.shnenglu.com/sunicdavy

感觸篇

設(shè)計(jì)

踏入Golang, 就不要嘗試設(shè)計(jì)模式

傳統(tǒng)的OO在這里是非法的, 嘗試模擬只是一種搞笑

把OO在Golang里換成復(fù)合+接口

對(duì)實(shí)現(xiàn)者來(lái)說(shuō), 把各種結(jié)構(gòu)都復(fù)合起來(lái), 對(duì)外暴露出一個(gè)或多個(gè)接口, 接口就好像使用者在實(shí)現(xiàn)模型上打出的很多洞

別怕全局函數(shù), 包(Package)可以控制全局函數(shù)使用范圍.

沒(méi)必要什么都用interface對(duì)外封裝, struct也是一種良好的封裝方法

Golang無(wú)繼承, 因此無(wú)需類派生圖. 沒(méi)有派生這種點(diǎn)對(duì)點(diǎn)的依賴, 因此不會(huì)在大量類關(guān)系到來(lái)時(shí), 形成繁雜不可變化的樹(shù)形結(jié)構(gòu)

 

容器

用了很長(zhǎng)時(shí)間map, 才發(fā)現(xiàn)Golang把map內(nèi)建為語(yǔ)言特性時(shí), 已經(jīng)去掉了外置型map的api特性. 一切的訪問(wèn)和獲取都是按照語(yǔ)言特性來(lái)做的, 原子化

數(shù)組可以理解為底層對(duì)象, 你平時(shí)用的都是切片, 不是數(shù)組, 切片就是指針, 指向數(shù)組. 切片是輕量的, 即便值拷貝也是低損耗的

 

內(nèi)存

Golang在實(shí)際運(yùn)行中, 你會(huì)發(fā)現(xiàn)內(nèi)存可能會(huì)瘋漲. 但跑上一段時(shí)間后, 就保持穩(wěn)定. 這和Golang的內(nèi)存分配, 垃圾回收有一定的關(guān)系

現(xiàn)代的編程語(yǔ)言的內(nèi)存管理不會(huì)很粗暴的直接從OS那邊分配很多內(nèi)存. 而是按需的不斷分配成塊的內(nèi)存.

對(duì)于非海量級(jí)應(yīng)用, Golang本身的內(nèi)存模型完全可以撐得下來(lái). 無(wú)需像C++一樣, 每個(gè)工程必做內(nèi)存池和線程池

Channel

Channel和鎖誰(shuí)輕量? 一句話告訴你: Channel本身用鎖實(shí)現(xiàn)的. 因此在迫不得已時(shí), 還是盡量減少使用Channel, 但Channel屬于語(yǔ)言層支持, 適度使用, 可以改善代碼可讀寫(xiě)

轉(zhuǎn)載請(qǐng)注明: 戰(zhàn)魂小筑http://m.shnenglu.com/sunicdavy

錯(cuò)誤

覺(jué)得Golang不停的處理err? 那是因?yàn)槠綍r(shí)在其他語(yǔ)言根本沒(méi)處理過(guò)錯(cuò)誤, 要不然就是根部一次性try過(guò)所有的異常, 這是一種危險(xiǎn)的行為

panic可以被捕獲, 因此編寫(xiě)服務(wù)器時(shí), 可以做到不掛

 

危險(xiǎn)的interface{}

這東西就跟C/C++里的void*一樣的危險(xiǎn), nil被interface{}包裹后不會(huì)等于nil相等, 但print出來(lái)確實(shí)是nil

模板估計(jì)可以解決容器內(nèi)帶interface{}的問(wèn)題. 但新東西引入, 估計(jì)又會(huì)讓現(xiàn)在的哲學(xué)一些凌亂

 

轉(zhuǎn)載請(qǐng)注明: 戰(zhàn)魂小筑http://m.shnenglu.com/sunicdavy

 

初學(xué)Tips

語(yǔ)言學(xué)習(xí)按照官網(wǎng)的教學(xué)走, 跑完基本就會(huì)了

下載一個(gè)LiteIDE, 配合Golang的Runtime,基本開(kāi)環(huán)境就有了

Golang的類庫(kù)設(shè)計(jì)方式和C#/C++都不同, 如果有Python經(jīng)驗(yàn)的會(huì)感覺(jué)毫無(wú)違和感

有一萬(wàn)個(gè)理由造輪子都請(qǐng)住手, 類庫(kù)里有你要的東西

寫(xiě)大工程請(qǐng)搜索: Golang項(xiàng)目目錄結(jié)構(gòu)組織

Golang語(yǔ)言本身本人沒(méi)有發(fā)現(xiàn)bug, 即便有也早就被大神們捉住了. 唯一的一個(gè)感覺(jué)貌似bug的, 經(jīng)常是結(jié)構(gòu)體成員首字母小寫(xiě), 但是json又無(wú)法序列化出來(lái)…

慎用cgo. 官方已經(jīng)聲明未來(lái)對(duì)cgo不提供完整兼容性. 任何一門語(yǔ)言在早期都需要對(duì)C做出支持, 但后期完善后的不兼容都是常態(tài)

 

轉(zhuǎn)載請(qǐng)注明: 戰(zhàn)魂小筑http://m.shnenglu.com/sunicdavy

 

 

posted on 2015-06-04 17:19 戰(zhàn)魂小筑 閱讀(21389) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Golang

評(píng)論

# re: 我的Golang全接觸 2016-02-25 09:53 Torvals Maxven
I think golang have a good future  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品一香蕉国产线看观看 | 亚洲中字在线| 午夜久久电影网| 欧美承认网站| 亚洲免费影视第一页| 欧美黑人多人双交| 极品少妇一区二区三区| 欧美一区二区成人| 亚洲一区二区高清| 国产精品久久国产精品99gif| 亚洲美女视频在线观看| 欧美凹凸一区二区三区视频| 欧美主播一区二区三区美女 久久精品人 | 国产一区在线播放| 欧美在线视频观看| 亚洲一区国产一区| 国产精品亚洲精品| 性色av一区二区三区红粉影视| 日韩视频在线免费观看| 欧美欧美午夜aⅴ在线观看| 亚洲经典在线看| 亚洲娇小video精品| 午夜宅男欧美| 国产主播一区二区三区| 久久久噜噜噜久久中文字免| 久久精品动漫| 亚洲国产综合91精品麻豆| 亚洲第一在线综合在线| 欧美伦理a级免费电影| 一区二区三区视频在线播放| 日韩视频一区二区| 国产精品每日更新| 午夜电影亚洲| 亚洲国产成人精品久久久国产成人一区 | a91a精品视频在线观看| 国产精品高潮粉嫩av| 亚洲一区bb| 亚洲欧美中文字幕| 亚洲第一精品在线| 亚洲免费观看| 国产日韩欧美视频在线| 欧美激情第3页| 欧美日韩亚洲三区| 久久久久久久尹人综合网亚洲| 久久一区视频| 亚洲一区二区高清| 欧美在线免费观看视频| 久久久久久久久久久久久9999 | 亚洲欧美综合网| 久久福利资源站| 亚洲美女毛片| 亚洲女优在线| 在线观看亚洲视频啊啊啊啊| 欧美激情日韩| 国产精品美女一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美不卡在线| 欧美在线免费观看| 欧美精品一区二区三区在线播放 | 韩国在线视频一区| 亚洲三级视频在线观看| 国产性做久久久久久| 亚洲日本中文字幕免费在线不卡| 国产精品一区二区久久| 最近中文字幕日韩精品| 国产一区999| 一本久久青青| 亚洲激情成人在线| 久久国产夜色精品鲁鲁99| 亚洲午夜激情在线| 能在线观看的日韩av| 久久国产夜色精品鲁鲁99| 欧美日韩国产小视频| 久久爱91午夜羞羞| 国产精品h在线观看| 亚洲精美视频| 91久久在线播放| 久久久久久国产精品mv| 亚洲欧美日本在线| 欧美老女人xx| 亚洲国产欧美日韩| 在线看片日韩| 久久久99国产精品免费| 久久成人18免费网站| 国产精品jizz在线观看美国| 亚洲精品欧洲| 亚洲免费av电影| 欧美成人69av| 亚洲在线视频观看| 亚洲一区二区三区免费观看| 欧美激情一区在线观看| 欧美成人精品高清在线播放| 亚洲区国产区| 欧美va天堂在线| 久久精品在线| 久久最新视频| 精品999在线观看| 久久精品噜噜噜成人av农村| 欧美在线视频一区二区三区| 国产精品v日韩精品| 在线一区日本视频| 欧美日韩一区在线视频| 日韩一级在线| 性高湖久久久久久久久| 国产精品亚洲一区二区三区在线| 夜夜爽99久久国产综合精品女不卡| 日韩视频国产视频| 欧美日韩在线观看视频| 一区二区三区四区国产精品| 亚洲精品自在久久| 欧美精品一区在线发布| 亚洲精品看片| 亚洲欧美国产77777| 国产偷久久久精品专区| 小黄鸭精品aⅴ导航网站入口| 久久久夜色精品亚洲| 伊人久久婷婷色综合98网| 美女露胸一区二区三区| 亚洲黄页视频免费观看| 亚洲免费在线观看视频| 久久国产欧美精品| 亚洲欧洲日韩在线| 亚洲午夜电影网| 激情一区二区| 欧美日韩免费| 亚洲欧美欧美一区二区三区| 女人天堂亚洲aⅴ在线观看| 在线亚洲精品福利网址导航| 国产精品久久久免费| 久久国产精品毛片| 亚洲九九爱视频| 亚洲综合精品自拍| 国产精品一区二区三区四区 | 午夜亚洲视频| 欧美69wwwcom| 亚洲字幕在线观看| 在线观看成人小视频| 噜噜噜躁狠狠躁狠狠精品视频| 99re在线精品| 国内精品久久久久影院色| 欧美日韩高清一区| 欧美一区国产一区| 99在线精品免费视频九九视| 你懂的亚洲视频| 欧美中文日韩| 亚洲婷婷综合久久一本伊一区| 精久久久久久| 国产欧美精品xxxx另类| 欧美精品色综合| 久久久噜噜噜久噜久久 | 国产伦精品一区二区三区高清| 欧美91视频| 欧美专区在线播放| 亚洲国产精品国自产拍av秋霞| 好吊色欧美一区二区三区四区| 欧美激情在线播放| 久久蜜桃香蕉精品一区二区三区| 99成人精品| 欧美黄色aaaa| 久久国产66| 亚洲无线一线二线三线区别av| 亚洲国产裸拍裸体视频在线观看乱了| 国产精品久久国产三级国电话系列| 久久精品最新地址| 欧美亚洲一区二区三区| 欧美激情久久久久| 亚洲精品偷拍| 亚洲精品资源美女情侣酒店| 亚洲电影免费在线| 国产在线播精品第三| 国产精品日韩精品欧美精品| 欧美日韩成人综合| 久久一区二区三区国产精品| 午夜欧美不卡精品aaaaa| 一区二区三区精密机械公司| 亚洲精品视频中文字幕| 亚洲国产裸拍裸体视频在线观看乱了 | 国产精品视频大全| 欧美极品一区| 免费高清在线一区| 久久夜色精品国产亚洲aⅴ | 99精品久久久| 亚洲大片av| 国内精品久久久久久久影视麻豆| 国产伪娘ts一区| 国产精品三级视频| 国产日韩欧美日韩大片| 国产综合色在线| 精品成人乱色一区二区| 在线观看欧美激情| 在线日本成人| 亚洲日本成人| 一本久道久久久| 亚洲伊人网站| 久久精品国产精品| 蜜桃久久精品乱码一区二区| 欧美国产日韩一二三区| 日韩亚洲国产精品| 亚洲欧美国产另类| 久久婷婷国产综合精品青草|