国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python開發者在轉到Go語言之前需要了解什么?

開發 前端
這是一篇(長)博文,介紹了我們在Repustate遷移大量Python/Cython代碼到Go語言的經驗。如果你想了解整個故事,背景和所有的事情,請繼續往下讀。

這是一篇(長)博文,介紹了我們在Repustate遷移大量Python/Cython代碼到Go語言的經驗。如果你想了解整個故事,背景和所有的事情,請繼續往下讀。如果你只是想了解Python開發者在一頭扎進Go 語言前需要了解什么,請點擊一下鏈接:

從Python遷移到Go的建議(Tips & Tricks)

背景

在Repustate,我們完成過的最棒的技術成就之一是實現了阿拉伯語的情感分析。阿拉伯語是一塊難啃的硬骨頭,因為它的詞形變化相當復雜。比起譬如英語,阿拉伯語的分詞(將一個句子切分呈幾個獨立的單詞)也更困難,因為阿拉伯語的單詞本身還可能會包含空白字符(例如:“阿列夫”在一個單詞里的位置)。這也談不上是泄密,Repustate 使用支持向量機(SVM)來獲取一個句子背后最有可能的含義,并在其中加上情感元素。 總體上來說,我們使用了 22 種模型(22 個 SVM) 并且在一篇文檔中,每一個單詞我們都會加以分析。因此如果你有一篇 500 字的文檔,那么基于 SVM,會進行十萬次的比較。

Python

Repustate 幾乎完全就是一個Python 商店。我們使用Django來實現 API 和網站。因此(目前)為了保持代碼一致,同時使用 Python 來實現阿拉伯語情感引擎是合情合理的。只是做原型和實現的話,Python 是很好的選擇。它的表達能力很強悍,第三方類庫等等也很好。如果你就是為了Web服務,Python 很***。但是當你進行低級別的計算,大量依賴于哈希表(Python 里的字典類型)做比較的時候,一切都變慢了。我們每秒能處理大約兩到三個阿拉伯文檔,但是這太慢了。比較下來,我們的英語情感引擎每秒能處理大約五百份文檔。

瓶頸

因此我們開啟了Python 分析器,開始調查是什么地方用了那么長時間。還記得我前面說過我們有 22 個 SVM 并且每個單詞都需要經過處理嗎?好吧,這些都是線性處理的,非并行處理。所以我們的***反應是把線性處理改成 map/reduce 那樣的操作。簡單來說:Python 不太適合用作 map/reduce。當你需要并發的時候,Python 算上好用。在 2013 Python 大會上(譯者:PyCon 2013),Guido 談到了 Tulip,他的這個新項目正在彌補 Python 這方面的不足,不過得過段一段時間才能推出,但是如果已經有了更好用的東西,我們為什么還要等呢?

選Go 語言,還是回家算了?

我在Mozilla的朋友告訴我,Mozilla 內部正在將他們大量的基礎日志架構切換到 Go 語言上,部分原因是因為強大的 [編程語言是如何工作(解釋型 vs 編譯型, 動態語言 vs 靜態語言)有一點理解的話,會說,“切,當然 Go 語言會更快”。是的,我們也可以用 Java 把所有的東西重寫一遍,也能看到類似更快的改善,但那不是 Go 語言勝出的原因。你用 Go 寫的代碼好像就是對的。我搞不清楚到底是怎么回事,但是一旦代碼被編譯了(編譯速度很快),你就會覺得這代碼能工作(不只是跑起來不會錯,而且甚至邏輯上也是對的)。我知道,這聽上去不太靠譜,但是確實如此。這和 Python 在冗余(或非冗余)方面非常類似,它把函數作為***目標,因此函數編程會很容易想明白。而且當然,go 線程和通道讓你的生活更容易,你可以得到靜態類型帶來的性能大提升,還能更精細的控制內存分配,而你卻不必為此在語言表達力上付出太多的代價。

希望能早點知道的事情(Tips & Tricks)

除去所有這些贊美之詞以后,有時你真的需要在處理 Go 代碼的時候,相對于 Python,改變一下思維方式。因此這是我在遷移代碼時記錄的筆記清單 —— 只是在我把 Python 代碼轉換到 Go 時從我腦子里隨機冒出來的點子:

◆ 沒有內建的集合類型(必須使用map,并檢查是否存在)

◆ 因為沒有集合,必須自己寫交集,并集之類的方法

◆ 沒有 tuples 類型,必須寫你自己的結構,或者使用 slices (即數組)

◆ 沒有類似 \__getattr__() 的方法,你必須總是檢查存在性,而不是設置默認值,例如,在 Python 里,你可以這樣寫 value = dict.get(“a_key”, “default_value”)

◆ 必須總是檢查錯誤(或者顯式的忽略錯誤)

◆ 不能有變量/包沒被使用,因此簡單的測試也需要有時注掉一些代碼

◆ 在 [] byte 和 string 之間轉換。 regexp 使用 [] byte (不可變)。這是對的,但是老把一些變量轉換來轉換去很煩人

◆ Python 更寬松。你可以使用超出范圍的索引在字符串里取一個片段,而且不會出錯。你還可以用負數取出片段,但是 Go 不行

◆ 你不能混合數據結構類型。也許這樣也不太干凈,但是有時在 Python 里,我會使用值是混合了字符串和列表的字典。但是 Go 不行,你不得不清理干凈你的數據結構或者使用自定義的結構

◆ 不能解包一個 tuple 或者 list 到幾個不同的變量(例如:x, y, z = [1, 2, 3])

◆ 駝峰式命名風格(如果你沒有首字大寫方法名/結構名,他們不會被暴露給其它的包)。我更喜歡 Python 的小寫字母加下劃線命名風格。

◆ 必須顯式檢查是否有錯誤 != nil, 不像在 Python 里,許多類型可以像 bool 那樣檢查 (0, “”, None 都可以被解釋成 “非” 集合)

◆ 文檔在一些模塊上太散亂了,例如(crypto/md5),但是 IRC 上的 go-nuts 很好用,提供了巨大的幫助。

◆ 從數字到字符串的轉換(int64 -> string) 和 []byte -> string (只要使用 string([]byte))不太一樣。需要使用 strconv。

◆ 閱讀 Go 代碼比起 Python 那樣寫起來如偽代碼的語言更像一門編程語言, Go 有更多的非字母數字字符,并且使用 || 和 &&, 而不是 “or”和“and”

◆ 寫一個文件的話,有 File.Write([]byte) 和 File.WriteString(string), 這點和 Python 開發者的 Python 之道:“解決問題就一種方法 ”相違背。

◆ 修改字符串很困難,必須經常重排 fmt.Sprintf

◆ 沒有構造函數,因此慣用法是創建 NewType() 方法來返回你要的結構

◆ Else (或者 else if)必須正確格式化,else 得和 if 配對的大括號在同一行。奇怪。

◆ 賦值運算符取決于在函數內還是函數外,例如,= 和 :=

◆ 如果我只想要“鍵”或者只想要 “值”,譬如: dict.keys() 或者 dict.values(),或者一個 tuples 的列表,例如:dict.items(),在 Go 語言里沒有等價的東西,你只能自己枚舉 map 來構造你的列表類型

◆ 我有時使用一種習慣用法:構造一個值是函數的字典類型,我想通過給定的鍵值調用這些函數,你在 Go 里可以做到,但是所有的函數必須接受,返回相同的東西,例如:相同的方法簽名

◆ 如果你使用 JSON 并且 你的 JSON 是一個復合類型,恭喜你。 你必須構造自定義的結構匹配 JSON 塊里的格式,然后把原始 JSON 解析到你自定義結構的實例中去。比起 Python 世界里 object = json.loads(json_blob) 要做更多的工作

是不是值得?

值得,一百萬倍的值得。速度的提升太多了,以致很難舍棄。同時,我認為, Go 是目前趨勢所在,因此在招新員工的時候,我認為把 Go 當作 Repustate 技術積累的重要一環會很有幫助。

原文鏈接: repustate blog   翻譯: 伯樂在線 - 伯樂在線讀者投稿

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

責任編輯:林師授 來源: 伯樂在線
相關推薦

2017-02-05 16:00:35

Java編程語言

2016-12-26 17:53:05

Java開發者編程語言

2017-01-15 17:48:04

Java開發者編程語言

2020-03-04 11:20:22

DSL開發領域特定語言

2021-12-16 09:37:54

投資物聯網IOT

2017-06-26 15:32:59

前端編譯原理語言知識

2013-04-19 09:23:34

2013開發者開發趨勢和技能

2021-05-10 10:01:04

JavaScript開發技巧

2011-09-20 09:27:50

Web

2013-05-03 15:06:08

AIR移動應用Android開發

2018-06-15 08:43:33

Java堆外內存

2012-02-06 09:14:24

2022-07-29 09:17:46

JavaScriptReactJS學習

2020-04-03 09:00:00

微服務前端架構

2016-08-05 16:28:05

javascripthtml前端

2022-01-05 11:02:44

物聯網開發物聯網IOT

2013-04-26 09:38:13

go

2018-06-21 06:56:03

CASB云安全加密

2013-03-28 19:25:35

騰訊云

2014-07-08 10:30:59

開發者開發語言
點贊
收藏

51CTO技術棧公眾號

91精品免费观看| av网站手机在线观看| 欧美日韩第一区| 欧美一区三区二区在线观看| 久久99久久精品欧美| 极品美女扒开粉嫩小泬| 国产精品国产精品国产专区不蜜| 在线看片你懂得| 欧美一区二区三区成人| 久久麻豆视频| 国产精品久久久久久久久久| 日韩视频一区| 国产黄页在线观看| 午夜欧美视频在线观看| 123区在线| 38少妇精品导航| 老鸭窝91久久精品色噜噜导演| 免费无码毛片一区二三区| 午夜电影久久久| 亚洲天堂手机| 国产精品日本精品| 91成人在线观看国产| 欧美一区二区三区久久精品| 秋霞在线一区二区| 亚洲已满18点击进入久久| 在线观看av免费| 欧美性受xxxx白人性爽| 日韩精品一二三| 麻豆一区二区三区四区精品蜜桃| 日韩色在线观看| 亚洲人成亚洲精品| 超碰免费在线公开| 大伊人狠狠躁夜夜躁av一区| 精品国产欧美日韩一区二区三区| 91在线视频导航| 99久久久无码国产精品| 视频三区在线观看| 欧美成年人在线观看| 国内一区二区三区| 人妻丰满熟妇av无码区app| 337p亚洲精品色噜噜狠狠| 综合久久伊人| 无码免费一区二区三区免费播放 | 亚洲成人网在线| 久久不见久久见中文字幕免费| 婷婷四月色综合| 亚洲成av人片一区二区梦乃| 777午夜精品电影免费看| 国产精品国产一区二区| 国产精品久久久久aaaa| 在线观看欧美日韩电影| 国产一区免费视频| 欧美国产丝袜视频| 精品极品在线| 国产精品视频免费一区二区三区 | 8x拔播拔播x8国产精品| 国产精品剧情一区二区在线观看 | 美女网站一区二区| 日韩美女一级视频| 成人av色网站| 成人av在线电影| 加勒比在线日本| 欧美成va人片在线观看| 最近国产精品视频| 2222www色视频在线观看| 高清国产一区| 狠狠色丁香九九婷婷综合五月| 婷婷丁香激情网| 欧美三级韩国三级日本一级| 亚洲在线资源| 51ⅴ精品国产91久久久久久| 国产suv精品一区二区883| 吴梦梦av在线| 亚洲福利影院| 精品国产一区二区三区四区vr| 国产精品一区二区视频| 欧美久久在线观看| 国产一区二区毛片| 五月天久久狠狠| 日韩av黄色| 国产精品无码av无码| 欧美日韩美女在线观看| 久久大综合网| 国产做受高潮69| 蜜桃精品久久久久久久免费影院| 久久久成人精品视频| 7m第一福利500精品视频| 成人妇女淫片aaaa视频| 日韩激情久久| 欧美成人资源| 国产精品美女| 精品人伦一区二区三区蜜桃网站| 99久久亚洲精品蜜臀| 新片速递亚洲合集欧美合集| 亚洲欧美综合国产精品一区| 黄色小说综合网站| 国产精品护士白丝一区av| 亚洲国产欧美一区二区丝袜黑人 | 亚洲国产精品精华液2区45| 日本精品另类| 成人精品毛片| 在线国产一区| 亚洲高清二区| 亚洲成人综合网站| 欧美在线中文字幕| 国产精品69久久| 日韩av中文字幕第一页| 性感美女一区二区在线观看| 国产一区二区成人| 国产免费成人在线| 国产有码在线| 欧美一区电影| 亚洲国产导航| 精品少妇一区二区三区在线视频| 国产午夜福利在线播放| av网站在线播放| 亚洲国产精品成人| 午夜精品www| 色综合久久久久综合一本到桃花网| 亚洲电影在线| 一区三区二区视频| 免费在线a视频| 在线观看欧美日韩电影| 91性感美女视频| 欧美怡春院一区二区三区| 91sp网站在线观看入口| 亚洲福利专区| 久久精品国产2020观看福利| 色视频在线观看免费| 国产91色综合久久免费分享| 久久免费视频在线观看| 四虎国产成人永久精品免费| 国产乱肥老妇国产一区二| 欧美日韩亚洲91| 国产精品主播直播| 日韩一级精品| 麻豆传媒在线完整视频| 天天在线免费视频| 色成年激情久久综合| 嫩草懂你的影院| 亚洲天堂2020| 欧美美女在线观看| 亚州色图欧美色图| 国产制服丝袜一区| 91网上在线视频| 在线看国产一区| 在线观看国产精品91| 国产成+人+综合+亚洲欧洲| 日韩国产高清一区| 香蕉国产成人午夜av影院| 欧美在线电影| 超薄肉色丝袜足j调教99| 欧美日韩亚洲91| 99热播精品免费| 日韩国产精品一区二区三区| 一区二区成人网| 国产日韩精品在线观看| 日本精品性网站在线观看| 天海翼女教师无删减版电影| 在线精品国产欧美| 国产主播一区二区| 9999精品成人免费毛片在线看| 国产在线精品一区| 欧美一级精品在线| 丝袜脚交一区二区| zzzwww在线看片免费| 亚洲精品一区二区三区樱花| 日韩午夜激情视频| 国精产品一区一区三区mba桃花| 国产网红在线观看| 一级做a爰片久久| 亚洲欧美另类国产| 成人动漫中文字幕| 国产精品极品国产中出| 91人人网站| 91沈先生作品| 777色狠狠一区二区三区| 国产精品久久国产愉拍| 女同视频在线观看| 欧美性受xxxx黑人猛交88| 日韩中文字幕视频在线观看| 国产亚洲精品久| 欧美天天综合| 国产在线观看a视频| 天天综合五月天| 久久久久久久久久久亚洲| 亚洲国产成人av好男人在线观看| 欧美日韩国内| 小早川怜子影音先锋在线观看| www精品久久| 国产成人精品一区二区| 在线看国产一区二区| 美国三级日本三级久久99| 国产一区二区三区朝在线观看| 成人综合视频在线| 国产精品女主播| 日韩一级片网站| 黄色动漫网站入口| 国产日韩精品久久久| 欧美一区2区|