<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      用Go語言做產品半年的一些感覺

      用Go語言做產品剛好半年,有一些感覺跟大家說道說道。

      在使用Go之前,我常常想象,無法使用先進的Debug工具會對工作進度造成多么巨大的影響。甚至在Visual Studio的嬌慣下認為,不能調試基本就無法正確的寫出代碼了。

      由于我在Windows平臺,能夠支持Go語言調試的gdb老是無法工作,所以在這半年中,我一次都沒有打過斷點,也沒有開啟過一次單步跟蹤。剛開始我心里非常沒底,只好老老實實為每一個方法寫測試代碼,每開發完一個功能之后就運行所有測試。這個方法其實也算是家喻戶曉的了,但很奇怪,我在寫C#的時候并不會自覺地這樣做。只有在一些非常特殊的部分會寫部分測試代碼。

      事后我想了想,懶惰只是其中一個原因,還有一個原因是“編譯速度”。眾所周知,Go語言的編譯速度是非常快的。平時看到這個消息應該沒什么感覺,一旦開始寫一段就執行一次”編譯-》測試“,效果馬上就出來了。我的項目目前約有3萬行代碼,編譯速度平均時間2秒。再加上SublimeText3里面方便的GoSublime插件,寫完代碼 Ctrl+. Ctrol+r,幾秒之后就看到結果了。非常方便。

      當然,你可能說這樣的事情在Visual Studio里面也很容易能做到,哈,你說的對,但你堅持寫一段就來一次試試看,會有被打斷的感覺。(我可能有編輯器強迫癥,以前喜歡Vim,現在愛SublimeText,總覺得圖形化IDE的各種面板很容易讓我分神,大家別較真,:P)

      以前每次碰到bug,必須用單步調式跟下去,現在武功被廢了,我只能硬著頭皮肉眼看代碼,不時用print把變量值打出來看看。一段時間之后我發現碰到bug的次數在減少。語言熟練度增加是一方面,但我自認是個粗心的人,況且寫了近10年C#也沒這種感覺。

      仔細想了想,我覺得是Go語言本身的簡潔帶來的好處。Go語言的語法和特性就那么點,清清楚楚,沒有什么詭異的技巧,也沒太多花哨的概念。寫之前不需要去看”Go語言注意事項100條“之類的東西。再加上編譯器的嚴格提示(比如聲明一個變量不賦值會導致編譯無法通過),很大程度上保證了不會因為疏忽而寫出”神奇“的代碼。

      在這里還得提一下Go語言在問世之初就固執的帶上的一個小工具”GoFmt”,它的作用很簡單,格式化Go代碼。當初我還挺納悶,這東西可有可無,早期有這時間做點別的什么不好?

      現在明白了,代碼的可讀性對于程序員來說再重要不過了。這讓肉眼找問題舒服了不少。

      所以一套組合拳下來,簡潔的語法設計+極好的代碼可讀性+嚴格的編譯器+內置的測試支持 = 非常舒適的編寫體驗+高質量的代碼。

      大家應該都對“最佳實踐”這個詞又愛又恨,應該都過這種場景:要實現一個功能,但腦子里出現了兩三種實現方式,于是花了很長時間做選擇。當然,對系統級的設計,這樣做無可厚非。但如果是非常簡單的功能,比如“這里究竟應該用指針呢?還是指針的指針呢?還是數組呢?還是鏈表?“,這種選擇的痛苦就顯得意義不大了。

      在寫Go的時候我很少會被這種問題擋住,不需要考慮這里究竟是傳遞引用還是傳遞值,到底是深拷貝還是淺拷貝。不知不覺間編寫過程就非常順滑,真正的專注到了業務邏輯上。大家也可以罵我沒出息,這種基礎問題還會糾結?水平太差了吧!可是,能用三行代碼表達的邏輯,為什么要用十行呢?這個道理大家都懂,嘿嘿,那運用到語言設計上應該也是一樣的吧。

      另外一點就是部署上的舒服了。反正Go語言的程序到最后編譯出來都是一個可執行文件,跑起來就行了。這句話看起來沒什么意義對吧?好,那咱就先來聊聊如何部署一個網站,安裝Apache,安裝xxxMod(比如Python和Ruby),配置xxx(此處省略200字),中間還要注意各個模塊的版本哦,否則遇到各種不明白的錯誤還得抓掉無數頭發。

      Go語言呢?編譯,運行。什么?恩,就是這么簡單。不要Apache或者其他Http服務器了?不要。那不是很不科學?呃,是有點魔幻。

      以前一直覺得IIS和Apache都是很黑很大的一坨東西,里面全是超科技,配置文件也很高深,高人過來這里改改那里改改默默的性能就提高了n倍。

      剛開始還覺得一個可執行文件孤零零的跑起來好單薄,等理解的更多之后就發現其實Http服務器的核心概念就這么幾個,Go語言內置支持了,所以這么輕便就能跑了。

      不覺得厲害?恩,考慮一下更新代碼的場景呢?關閉實例,更新代碼,編譯,運行(更新時間如何讓服務不間斷咱先不討論,這需要其他服務器配合)。很省心。

      特別像我這種windows程序員,本來面對linux的時候就各種心驚膽顫,各種不熟悉,要是讓我再去修改修改文件夾權限什么的我就炸了。

      好吧,嘮嘮叨叨說了一堆,總結下來就一點。我已經從Go語言的粉絲變成死忠了(所以大家也不用費口舌來跟我辯論了哈哈),看到Go語言就開心,寫著舒心,用著順心。

      你要是看到這兒了,那就順便提一句,我們打算在1月份召一個Go語言的服務器端工程師,如果你碰巧喜歡Go語言,愛看網絡小說,對算法充滿了愛,又身在上海,那不妨找我聊聊,咱也許能一起開開心心的做個好東西出來。

      posted @ 2013-12-24 19:29  AllenDang  閱讀(28872)  評論(76)    收藏  舉報
      主站蜘蛛池模板: 激情综合五月| 国产精品日本一区二区不卡视频| 色综合 图片区 小说区| 国产精品一区二区日韩精品| 国产99在线 | 免费| 欧美牲交a欧美牲交aⅴ免费真| 亚洲aⅴ天堂av天堂无码麻豆| 中日韩黄色基地一二三区| 四虎成人精品无码| 中文字幕99国产精品| 精品国产中文字幕懂色| 宁城县| 久久夜色精品国产网站| 亚洲国产午夜精品理论片妓女| 博客| 性欧美乱熟妇xxxx白浆| 国产99视频精品免费观看9| 色噜噜狠狠一区二区三区果冻| 精品无码一区在线观看| 久久热精品视频在线视频| 久久午夜私人影院| 国产精品一区二区三区蜜臀| 国产精品成人免费视频网站京东| 狠狠v日韩v欧美v| 偷自拍另类亚洲清纯唯美| 午夜性刺激在线观看| 久久不见久久见中文字幕免费| 国产一区二区高清不卡| 亚洲精品国产免费av| 中文字幕 日韩 人妻 无码| 日韩内射美女人妻一区二区三区| 人妻一区二区三区人妻黄色| 精品黄色av一区二区三区| 日韩av一区二区精品不卡| 久久婷婷五月综合色欧美| 亚洲精品一区二区三区综合| 亚洲色大成成人网站久久| 丁香五月亚洲综合在线国内自拍| 18禁超污无遮挡无码网址| 国产蜜臀av在线一区二区| 国产欧美精品一区aⅴ影院|