å¦ç½ç讲ï¼å¨ä¸å¸®pythonç¨æ·é¢å讲为ä»ä¹æ¾å¼python转èç¨goå
¶å®æ¯ä¸ä»¶ååè®å¤§çäºæ
ï¼è¯è¨ä¹äºå°±è·vimåemacsä¹äºä¸æ ·ï¼æ¯
ä¸ä¸ªæ°¸æçæ 解è¯é¢ï¼ç¨å¾®ä¸æ³¨æå°±å¯è½å¯¼è´ç²ä¸å¼ºçå°åå»ãæ以æåªä¼ä»æ们项ç®å®é
æ
åµåºåï¼æ¥è®²è®²ä¸ºä»ä¹ææç»éæ©äºgoã
为ä»ä¹æ¾å¼python
é¦å
ï¼æå
¶å®å¾è¯´è¯´ä¸ºä»ä¹æ们ä¼éæ©pythonãå¨æå å
¥ä¼ä¸å¿«çå¢éä¹åï¼æ´ä¸ªé¡¹ç®å
æ¬æ´æ©çé山快çé½æ¯éç¨pythonè¿è¡å¼åçãè³äºä¸º
ä»ä¹è¿ä¹éæ©ï¼å½æ¶çæ¶æå¸è±å¤´åè¯æï¼ä¸»è¦æ¯å 为pythonä¸æç®åï¼å¼åè¿
éã对äºå¢ééé¢å¤§é¨åå®å
¨æ²¡æå¡ç«¯å¼åç»éªçåå¦æ¥è¯´ï¼pythonç
çæ¯ä¸ä¸ªå¾å¥½çéæ©ã
pythonçç®åé«æï¼ææ¯æ·±æä½ä¼çãå½æ¶ç§æäºé¡¹ç®ä¹å°±å 个ç¨åºåï¼ä½æ¯æ们è¦æå¡å¤å®¶å¤§åä¼ä¸ï¼è¿è¡å®å¶åçå¼åï¼å¤äºäºpythonï¼æ们æè½å¿«éåºæ´»ãåæ¥ä¼ä¸å¿«çææä¹åï¼æ们å¯å¨è½»åå
¬é¡¹ç®ï¼èªç¶ä¹ä½¿ç¨pythonè¿è¡äºåå§çæ¬çæ建ã
pythonè½ç¶å¾å¼ºå¤§ï¼ä½æ们å¨ä½¿ç¨çæ¶åä¹ç¢°å°äºä¸äºé®é¢ï¼ä¸»è¦ç±å¦ä¸å 个æ¹é¢ï¼
å¨æè¯è¨
pythonæ¯ä¸é¨å¨æ强类åè¯è¨ãä½æ¯ï¼ä»ç¶å¯è½åºç°int + stringè¿æ ·çè¿è¡æ¶é误ï¼å 为对äºä¸ä¸ªåéï¼å¨å代ç çæ¶åï¼æ们ææ¶åå¾å®¹æå°±å¿è®°è¿ä¸ªåéå°åºæ¯å¥ç±»åçäºã
å¨pythonéé¢ï¼å¯ä»¥å
许ååå½æ°çåºç°ï¼åä¸ä¸ªå½æ°ä¼è¦çåä¸ä¸ªå½æ°ï¼æä¸æ¬¡æ们系ç»ä¸ä¸ªå¾ä¸¥éçé误就æ¯å 为è¿ä¸ªå¯¼è´çã
ä¸é¢è¯´å°çè¿äºï¼éæè¯è¨å¨ç¼è¯çæ¶åå°±è½å¸®æ们æ£æµåºæ¥ï¼èä¸éè¦çå°è¿è¡æ¶åºé®é¢æç¥éãè½ç¶æ们æå¾å®åçæµè¯ç¨ä¾ï¼ä½æ»æcaseéæ¼çæ
åµãæ以æ¯æ¬¡åºç°è¿è¡æ¶é误ï¼æå¿éé½æ³çå¦æè½å¨ç¼è¯çæ¶åå°±åç°è¯¥å¤å¥½ã
æ§è½
å
¶å®è¿ä¸ªä¸ç´æ¯å¾å¤äººå槽pythonçå°æ¹ï¼ä½pythonæå®éåå¹²çäºæ
ï¼ç¡¬æ¯è¦ç¨pythonè¿è¡ä¸äºé«æ§è½æ¨¡åçå¼åï¼é£ä¹æç¹é¾ä¸ºå®äºã
pythonçGIL导è´æ æ³çæ£çå¤çº¿ç¨ï¼å¤§å®¶å¯è½ä¼è¯´æç¨å¤è¿ç¨ä¸å°±å®äºãä½å¦æä¸äºè®¡ç®éè¦æ¶åå°å¤è¿ç¨äº¤äºï¼è¿ç¨ä¹é´çé讯å¼éä¹æ¯ä¸å¾ä¸èèçã
æ ç¶æçåå¸å¼å¤ç使ç¨å¤è¿ç¨å¾æ¹ä¾¿ï¼è¬å¦å¤çhttp请æ±ï¼æ们就æ¯å¨nginxåé¢æè½½äº200å¤ä¸ªdjango serveræ¥å¤çhttpç,ä½è¿ä¹å¤ä¸ªè¿ç¨èªç¶å¯¼è´æ´ä½æºå¨è´è½½åé«ã
ä½å³ä½¿æ们使ç¨äºå¤ä¸ªdjangoè¿ç¨æ¥å¤çhttp请æ±ï¼å¯¹äºä¸äºè¶
大é请æ±ï¼pythonä»ç¶å¤çä¸è¿æ¥ãæ以æ们使ç¨openrestyï¼å°é«é¢æ¬¡çhttp请æ±ä½¿ç¨luaæ¥å®ç°ãå¯è¿æ ·å导è´ä½¿ç¨ä¸¤ç§å¼åè¯è¨ï¼èä¸ä¸äºé»è¾è¿å¾å两份ä¸åç代ç ã
åæ¥ç½ç»æ¨¡å
djangoçç½ç»æ¯åæ¥é»å¡çï¼ä¹å°±æ¯è¯´ï¼å¦ææ们éè¦è®¿é®å¤é¨çä¸ä¸ªæå¡ï¼å¨çå¾
ç»æè¿åè¿æ®µæ¶é´ï¼djangoä¸è½å¤çä»»ä½å
¶ä»çé»è¾ï¼å½ç¶ï¼å¤çº¿ç¨çé¤å¤ï¼ãå¦æ访é®å¤é¨æå¡éè¦å¾é¿æ¶é´ï¼é£å°±æå³çæ们çæ´ä¸ªæå¡å ä¹å¨å¾é¿ä¸æ®µæ¶é´å®å
¨ä¸å¯ç¨ã
为äºè§£å³è¿ä¸ªé®é¢ï¼æ们åªè½ä¸æçå¤å¼djangoè¿ç¨ï¼åæ¶éè¦ä¿è¯æææå¡é½è½å¿«éçå¤çååºï¼ä½æ³æ³è¿å
¶å®æ¯ä¸ä»¶å¾ä¸é è°±çäºæ
ã
å¼æ¥ç½ç»æ¨¡å
tornadoçç½ç»æ¨¡åæ¯å¼æ¥çï¼è¿æå³çå®ä¸ä¼åºç°djangoé£æ ·å 为å¤é¨æå¡ä¸å¯ç¨å¯¼è´è¿ä¸ªæå¡æ æ³ååºçé®é¢ãè¯è¯´ï¼æ¯èµ·djangoï¼æå¯æ¯é常å欢tornadoçï¼å°å·§ç®åï¼ä»¥åè¿åè¿å ç¯æ·±å
¥åætornadoçæç« äºã
è½ç¶tornadoæ¯å¼æ¥çï¼ä½æ¯pythonçmysqlåºé½ä¸æ¯æå¼æ¥ï¼è¿ä¹å°±æå³çå¦ææ们å¨tornadoéé¢è®¿é®æ°æ®åºï¼æ们ä»ç¶å¯è½é¢ä¸´å 为æ°æ®åºé®é¢é æçæ´ä¸ªæå¡ä¸å¯ç¨ã
å
¶å®å¼æ¥æ¨¡åæ大çé®é¢å¨äºä»£ç é»è¾çå²è£ï¼å 为æ¯äºä»¶è§¦åçï¼æ以æ们é½æ¯éè¿callbackè¿è¡ç¸å
³å¤çï¼äºæ¯ä»£ç éé¢å°±ç»å¸¸åºç°å¹²ä¸ä»¶äºæ
ï¼ä¼ ä¸ä¸ªcallbackï¼ç¶åcallbackéé¢åä¼ callbackçæ
åµï¼è¿æ ·çç»æå°±æ¯æ´ä¸ªä»£ç é»è¾é常混乱ã
python没æåççåç¨æ¯æï¼è½ç¶å¯ä»¥éè¿geventï¼greenletè¿ç§çä¸patchæ¹å¼æ¥æ¯æåç¨ï¼ä½æ¯ç«æ´æ¹äºpythonæºç ãå¦
å¤ï¼pythonçyieldä¹å¯ä»¥è¿è¡ç®åçåç¨æ¨¡æï¼ä½æ¯ç«ä¸è½è·¨å æ ï¼å±éæ§å¾å¤§ï¼ä¸ç¥é3.xççæ¬æ没ææ¹è¿ã
å¼åè¿ç»´é¨ç½²
å½æ第ä¸æ¬¡ä½¿ç¨pythonå¼å项ç®ï¼ææ¯æ²¡æåå®è£
ä¸é¡¹ç®éè¦çå
çï¼å
å®è£
æåmysqlåºå°±å¼äºå¾ä¹
ãåæ¥ï¼æ¯ä¸ä½åäºå°ä»æ´ä¸ªpythonç®å½æå
ç»æç¨ï¼ææè½æ£å¸¸çå°é¡¹ç®è·èµ·æ¥ãè¯è¯´ï¼ç°å¨æäºdockerï¼æ¯å¤ä¹è®©äººå¹¸ç¦çä¸ä»¶äºæ
ã
èé¨ç½²pythonæå¡çæ¶åï¼æ们éè¦å¨æå¡å¨ä¸é¢å®è£
ä¸å çå
ï¼å
æ¯è¿ä¸ç¹å°±è®©äººå¾éº»ç¦ï¼è½ç¶å¯ä»¥éè¿puppetï¼saltè¿äºèªå¨åå·¥å
·è§£å³é¨ç½²é®é¢ï¼ä½ç¸æ¯èè¨ï¼éæç¼è¯è¯è¨åªç¨æä¸ä¸ªäºè¿å¶æ件ï¼å¯å°±æ¹ä¾¿å¤ªå¤äºã
代ç 失æ§
pythoné常çµæ´»ç®åï¼åcå åè¡ä»£ç æè½æå®çåè½ï¼pythonä¸è¡ä»£ç 没åå°±è½è§£å³ãä½æ¯å¤ªç®åï¼åè导è´å¾å¤åå¦æ æ³å¯¹ä»£ç è¿è¡æ·±å±æ¬¡çæ
èï¼å¯¹æ´ä¸ªæ¶æè¿è¡ç»è´çèéãæ¥äºä¸ä¸ªéæ±ï¼åªåªåªï¼é®çæ²å®å¼éå®ç°ï¼ç»æå°±æ¯ä»£ç è¶æ¥è¶æ··ä¹±ï¼æç»å¯¼è´äºæ´ä¸ªé¡¹ç®ä»£ç 失æ§ã
è½ç¶è¿ä¹ææ们èªèº«çåå ï¼è¬å¦æ²¡å¥½ç代ç reviewæºå¶ï¼æ²¡æ好ç项ç®è§èï¼ä½ä¸ªäººæè§ï¼å¦æä¸ä¸ªç¨åºå没ç»è¿è¯å¥½çç¼ç è®ç»ï¼ç¨pythonå¾å®¹æå°±ååºçç代ç ï¼å 为太èªç±äºã
å½ç¶ï¼æè¿é并ä¸æ¯è¯´ç¨pythonæ æ³è¿è¡å¤§å项ç®çå¼åï¼è±ç£ï¼dropboxé½æ¯å¾å¥½çä¾åï¼åªæ¯å¨æ们项ç®ä¸ï¼æ们çpython代ç 失æ§äºã
ä¸é¢æå°çé½æ¯æ们å¨å®é
项ç®ä¸ä½¿ç¨pythonéå°çé®é¢ï¼è½ç¶æç»é½è§£å³äºï¼ä½æ¯è®©ææåçè§å¾ï¼éç项ç®å¤æ度çå¢å¤§ï¼æµéæ§è½ååçå¢å¤§ï¼python并ä¸æ¯ä¸ä¸ªå¾å¥½çéæ©ã
为ä»ä¹éæ©go
说å®äºpythonï¼ç°å¨æ¥è¯´è¯´ä¸ºä»ä¹æ们éæ©goãå
¶å®é¤äºpythonï¼æ们ä¹æå
¶ä»çéæ©ï¼javaï¼phpï¼lua(openresty)ï¼ä½æç»æ们éæ©äºgoã
è½ç¶javaåphpé½æ¯æ好çç¼ç¨è¯è¨ï¼å¤§å®¶é½è¿ä¹äºçï¼ï¼ä½ææ´å¾åä¸é¨æ´ç®åçè¯è¨ãèopenrestyï¼è½ç¶æ§è½å¼ºæï¼ä½luaä»ç¶æ¯å¨
æè¯è¨ï¼ä¹ä¼ç¢°å°åé¢è¯´çå¨æè¯è¨ä¸äºé®é¢ãæåï¼åé山许å¼ä¼ç¨çgoï¼åå¿«çæ¶æå¸è±å¤´ä¹ç¨çgoï¼æ以æ们å¾èªç¶å°éæ©äºgoã
go并ä¸æ¯å®ç¾ï¼ä¸å å¼å¾æ们å槽çå°æ¹ã
errorï¼å¥½å§ï¼å¦ææè¯è¨æ´ççåå¦å¯è½ççåä¸äºgoçè¯æ³ï¼å°¤å
¶æ¯çº¦å®çæåä¸ä¸ªè¿åå¼æ¯errorã项ç®éé¢ç»å¸¸ä¼å
æ¥è¿æ ·ç代ç :
if _, err := w.Write(data1); err != nil {
returun err
}
if _, err := w.Write(data2); err != nil {
returun err
}
é¾æªæ个æ¢æ¯å¯¹äºä¸ä¸ªéæ±ï¼javaçç¨åºåå¨åé
ç½®çæ¶åï¼goç¨åºåå·²ç»åäºå¤§é¨å代ç ï¼ä½æ¯å½javaçç¨åºååå®çæ¶åï¼goç¨åºåè¿å¨åerr != nilã
è¿æ¹é¢ï¼errors-are-valuesåæ¯æ¨èäºä¸ä¸ªä¸éç解å³æ¹æ¡ã
å
管çï¼goçå
管ç太弱äºï¼åªæä¸ä¸ªgo
getï¼ä¹å°±æ¯å¦æä¸å°å¿æ´æ°äºä¸ä¸ªå¤é¨åºï¼å¾æå¯è½å°±å¯¼è´ç°æç代ç ç¼è¯ä¸è¿äºãè½ç¶å·²ç»æå¾å¤å¼æºæ¹æ¡ï¼è¬å¦godep以åç°å¨æåºæ¥çgbçï¼ä½æ¯
ç«ä¸æ¯å®æ¹çãè²ä¼¼googleä¹æ¯éè¿vendoræºå¶æ¥ç®¡ç第ä¸æ¹åºçãå¸ægo 1.5æè
ä¹åççæ¬è½å¥½å¥½å¤çä¸è¿ä¸ªé®é¢ã
GCï¼javaçGCåå±20å¹´äºï¼goæè¿ä¹ç¹æ¶é´ï¼gcéå®ä¸å®åãæ以æ们ä»ç¶ä¸è½éå¿æ欲çå代ç ï¼ä¸ç¶å¨å¤§è¯·æ±éä¸é¢gcå¯è½ä¼å¡é¡¿æ´ä¸ªæå¡ãæ以ææ¶åï¼è¯¥ç¨å¯¹è±¡æ± ï¼å
åæ± çä¸å®è¦ç¨ï¼è½ç¶ä»£ç ä¸äºç¹ï¼ä½å¥½æ¹æ§è½ä¸å»äºã
æ³åï¼è½ç¶goæintefaceï¼ä½æ³åç缺失ä¼è®©æ们å¨å®ç°ä¸ä¸ªåè½çæ¶åå大éçéå¤ä»£ç ï¼è¬å¦int32åint64ç±»åçsortï¼æ们
å¾ä¸ºåå«å两å¥ä»£ç ï¼å¥½åä½ãgo 1.4ä¹åæäºgo
generateçæ¯æï¼ä½è¿ç§çä»ç¶éè¦èªå·±æ ¹æ®goçASTåºæ¥æå¨åç¸å
³çparserï¼é¾åº¦ä¹æºå¤§çãè½ç¶ä¹æå¾å¤å¼æºçgenerateå®ç°ï¼
ä½æ¯ç«ä¸æ¯å®æ¹çã
å½ç¶è¿æå¾å¤å¼å¾å槽çå°æ¹ï¼å°±ä¸ä¸ä¸å举äºï¼ä½æ¯goä»æ§æå®çä¼å¿ã
éæè¯è¨ï¼å¼ºç±»åãéæç¼è¯è½å¸®æ们æ£æ¥åºæ¥å¤§éçé误ï¼goç强类åçè³åæå°ä¸æ¯æéå¼çç±»å转æ¢ãè½ç¶å代ç æè§å¾å«æï¼ä½åå°äºç¯éçå¯è½ã
gofmtï¼åºè¯¥è¿æ¯æç¥éç第ä¸ä¸ªå®æ¹æä¾ç»ä¸æ ¼å¼å代ç å·¥å
·çè¯è¨äºãæäºgofmtï¼å¤§å®¶ç代ç é¿ä¸ä¸ªæ ·äºï¼ä¹å°±æ²¡æè±æ¬å·å°åºæ¾å°ç»å°¾è¿æ¯æ°å¼ä¸è¡è¿ç§èç¼ç代ç é£æ ¼è®¨è®ºäºãå 为大家ç代ç é£æ ¼ä¸æ ·ï¼æ以çgoç代ç å¾å®¹æã
天çç并è¡æ¯æï¼å 为goroutine以åchannelï¼ç¨goååå¸å¼åºç¨ï¼å并åç¨åºå¼å¸¸ç容æã没æäºèç¼çcallback导è´ç代ç é»è¾å²è£ï¼ä»£ç é»è¾é½æ¯é¡ºåºçã
æ§è½ï¼goçæ§è½å¯è½èµ¶ä¸ä¸cï¼c++以åopenrestyï¼ä½ççä¹æºå¼ºæçãå¨æ们ç项ç®ä¸ï¼ç°å¨åæºå°±é¨ç½²äºä¸ä¸ªgoçè¿ç¨ï¼å°±å®å
¨è½å¤è任以å200个pythonè¿ç¨å¹²çäºæ
ï¼èä¸CPUåMEMå ç¨æ´ä½ã
è¿ç»´é¨ç½²ï¼ç´æ¥ç¼è¯æäºè¿å¶ï¼æå°æå¡å¨ä¸é¢å°±æï¼æ¯pythonéè¦å®è£
ä¸å çç¯å¢é£æ¯ç®åç太å¤äºãå½ç¶ï¼å¦ææcgoï¼æ们ä¹éè¦å°å¯¹åºçå¨æåºç»æè¿å»ã
å¼åæçï¼è½ç¶goæ¯éæè¯è¨ï¼ä½æ个人æè§å¼åæçççæºé«ï¼ç´è§ä¸é¢è·pythonä¸ç¸ä¸ä¸ã对äºæ个人æ¥è¯´ï¼æ好çä¾åå°±æ¯æç¨goå¿«éå¼
åäºé常å¤çå¼æºç»ä»¶ï¼è¬å¦ledisdbï¼go-mysqlçï¼èè¿äºæå¼å§ççæ¬é½æ¯å¨å¾ççæ¶é´éé¢å®æçã对äºæ们项ç®æ¥è¯´ï¼æ们ä¹æ¯ç¨goå¨ä¸
个æå°±éæå®æäºç¬¬ä¸ä¸ªçæ¬ï¼å¹¶åå¸ã
温馨提示:答案为网友推荐,仅供参考