Le ala ile siakiina ole 4 miliona laina ole code Python. Vaega 3

Matou te tuʻuina atu ia te oe le vaega lona tolu o le faʻaliliuga o mea e uiga i le auala na uia e Dropbox pe a faʻatinoina se faiga siaki mo le Python code.

Le ala ile siakiina ole 4 miliona laina ole code Python. Vaega 3

→ Vaega muamua: muamua и lona lua

Aapa atu i le 4 miliona laina o lo'o ta'i fa'ailoga

O le isi lu'itau tele (ma le popolega lona lua e sili ona taatele ia i latou na su'esu'eina i totonu) o le fa'ateleina lea o le numera o fa'ailoga o lo'o ufiufi e siaki ituaiga i Dropbox. Sa matou taumafai i le tele o auala e foia ai lenei faʻafitauli, mai le faʻatupuina o le tele o le codebase faʻapipiʻi i le taulaʻi atu o taumafaiga a le 'au mypy i luga o le faʻaogaina o le faʻaogaina otometi ma le malosi. I le faaiuga, e foliga mai e leai se taʻiala faigofie manumalo, ae na mafai ona matou ausia vave le tuputupu aʻe i le tele o faʻailoga faʻamaonia e ala i le tuʻufaʻatasia o le tele o auala.

O se taunuuga, o la matou fale teu oloa pito sili ona tele (faʻatasi ai ma le backend code) e lata i le 4 miliona laina o faʻamatalaga faʻamatalaga. O le galuega i luga o le static code typing na maeʻa i le tusa ma le tolu tausaga. O lo'o lagolagoina nei e Mypy ituaiga eseese o lipoti fa'asalalau e fa'afaigofie ai ona mata'ituina le alualu i luma ole taina. Aemaise lava, e mafai ona tatou fa'atupuina lipoti ile fa'ailoga ma fa'alavelave i ituaiga, e pei o, mo se fa'ata'ita'iga, fa'aoga manino o se ituaiga. Any i fa'amatalaga e le mafai ona fa'amaonia, po'o mea e pei o le fa'aulufaleina mai o faletusi a isi vaega e leai ni fa'amatalaga fa'aigoa. I le avea ai o se vaega o se poloketi e faʻaleleia atili ai le saʻo o le siakiina o ituaiga i Dropbox, matou te saofagā i le faʻaleleia o faʻamatalaga o ituaiga (faʻaigoa faila faila) mo nisi o faletusi lauiloa matala i totonu o le nofoaga tutotonu o le Python. lomitusi.

Na matou faʻatinoina (ma faʻasalalau i PEPs mulimuli ane) foliga fou o le ituaiga faiga e mafai ai ona sili atu ituaiga saʻo mo nisi o mamanu Python patino. O se faʻataʻitaʻiga iloga o lenei TypeDict, lea e maua ai ituaiga mo JSON-pei lomifefiloi o loʻo i ai se seti o manoa ki, taʻitasi ma se tau o lona lava ituaiga. O le a faʻaauau pea ona faʻalauteleina le ituaiga faiga. O la tatou laasaga e sosoo ai o le faʻaleleia atili o le lagolago mo le mafai numera numera a Python.

Le ala ile siakiina ole 4 miliona laina ole code Python. Vaega 3
Numera o laina o fa'ailoga fa'ailoga: server

Le ala ile siakiina ole 4 miliona laina ole code Python. Vaega 3
Numera o laina o fa'ailoga fa'amatalaga: tagata o tausia

Le ala ile siakiina ole 4 miliona laina ole code Python. Vaega 3
Aofa'iga o laina o fa'ailoga fa'ailoga

O se faʻamatalaga lautele lea o uiga autu o mea na matou faia e faʻateleina ai le aofaʻi o numera faʻamatalaga i Dropbox:

Fa'amatalaga faigata. Na faasolosolo malie ona matou faʻaopoopoina manaʻoga mo le faʻamalosi o le faʻamatalaina o tulafono fou. Na matou amata i le linter tips na fautuaina le faʻaopoopoina o faʻamatalaga i faila ua uma ona i ai ni faʻamatalaga. Matou te manaʻomia nei faʻamatalaga faʻamatalaga i faila Python fou ma le tele o faila o loʻo iai.

Tapena lipoti. Matou te auina atu lipoti faalevaiaso a au i le tulaga o le taina i totonu o latou code ma tuuina atu fautuaga i mea e tatau ona tusia muamua.

Fa'alauiloaina o mypy. Matou te talanoa e uiga i mypy i mea tutupu ma talanoa i 'au e fesoasoani ia i latou e amata i faʻamatalaga ituaiga.

Palota. Matou te fa'atinoina su'esu'ega fa'avaitaimi e iloa ai fa'afitauli autu. Ua matou sauni e alu mamao i le foiaina o nei faafitauli (e oo lava i le fatuina o se gagana fou e faatelevave ai mypy!).

Fa'atinoga. Ua matou faʻaleleia atili le faʻatinoga o mypy e ala i le faʻaaogaina o le daemon ma mypyc. Na faia lenei mea e faʻafefe ai faʻafitauli e tulaʻi mai i le faagasologa o faʻamatalaga, ma ina ia mafai ona galue ma le tele o numera.

Tuufaatasiga ma faatonu. Ua matou fausia meafaigaluega e lagolago ai le taʻavale mypy i faʻatonu e lauiloa ile Dropbox. E aofia ai le PyCharm, Vim ma le VS Code. O lenei mea na matua faafaigofieina ai le faagasologa o le tusiaina o le code ma le siakiina o ana galuega. O nei ituaiga o gaioiga e masani ai pe a fa'ailoa le code o iai.

Su'esu'ega tumau. Na matou faia se meafaigaluega e faʻailoa ai saini galuega e faʻaaoga ai meafaigaluega suʻesuʻe static. O lenei meafaigaluega e mafai ona galue i ni tulaga faigofie, ae na fesoasoani ia i matou e faʻateleina a matou faʻailoga faʻailoga e aunoa ma le tele o taumafaiga.

Lagolago mo faletusi isi vaega. Ole tele oa tatou poloketi e fa'aogaina le SQLAlchemy toolkit. E faʻaaogaina le malosi o le Python e le mafai e ituaiga PEP 484 ona faʻataʻitaʻiina saʻo. Matou, e tusa ai ma le PEP 561, na matou fatuina le faila stub talafeagai ma tusia se faʻapipiʻi mo mypy (puna tatala), lea e faʻaleleia ai le lagolago a SQLAlchemy.

Faigata na matou fetaiai

O le ala i le 4 miliona laina o lo'o ta'itusi e le'i faigofie i taimi uma mo i matou. I luga o lenei ala sa matou fetaiai ai ma le tele o omoomo ma faia ni mea sese. O nisi nei o fa'afitauli sa matou feagai. Matou te faamoemoe o le taʻu atu e uiga ia i latou o le a fesoasoani i isi e aloese mai faafitauli faapena.

Ua misi faila. Na amata la matou galuega i le siakiina na o sina vaega itiiti o faila. So'o se mea e le'i aofia i nei faila e le'i siakiina. Na fa'aopoopo faila i le lisi su'esu'e pe a fa'aalia fa'amatalaga muamua i totonu. Afai o se mea na faaulufale mai mai se module o loʻo i fafo atu o le lautele o le faʻamaoniga, ona matou talanoa lea e uiga i le galue ma tulaga taua e pei o Any, e le'i tofotofoina lava. O lenei mea na mafua ai le leiloa tele o le sao o le taina, aemaise lava i le amataga o le femalagaiga. O lenei faiga ua matua ofo lelei i le taimi nei, e ui o se tulaga masani o le faʻaopoopoina o faila i le lautele o le iloiloga e faʻaalia ai faʻafitauli i isi vaega o le codebase. I le tulaga sili ona leaga, pe a tuʻufaʻatasia vaega tuʻufua e lua o le code, lea, tutoʻatasi o le tasi ma le isi, o ituaiga ua uma ona siakiina, e foliga mai o ituaiga o nei vaega e le fetaui ma le tasi. Na mafua ai ona manaʻomia le tele o suiga i faʻamatalaga. A toe tepa i tua i le taimi nei, ua matou iloa e tatau ona matou faʻaopoopoina faʻaoga autu o faletusi i le mypy type checking area vave. O lenei mea o le a sili atu ona vaʻaia a tatou galuega.

Fa'amatalaga code tuai. Ina ua matou amata, e tusa ma le 4 miliona laina o loʻo iai le Python code. Na manino lava o le faʻamatalaina o nei tulafono uma e le o se galuega faigofie. Ua matou faia se meafaigaluega e taʻua o le PyAnnotate e mafai ona aoina faʻamatalaga faʻamatalaga aʻo faʻataʻitaʻi suʻega ma mafai ona faʻaopoopo faʻamatalaga faʻamatalaga i lau code e faʻatatau i faʻamatalaga na aoina. Ae ui i lea, matou te leʻi matauina se faʻaogaina lautele lautele o lenei meafaigaluega. Sa telegese le fa'aputuina o fa'amatalaga, ma o fa'amatalaga e otometi ona fa'atupuina e masani ona mana'omia ai le tele o fa'atonuga tusi. Na matou mafaufau e uiga i le faʻaogaina otometi o lenei meafaigaluega i taimi uma matou te iloiloina code, poʻo le aoina o faʻamatalaga faʻamatalaga e faʻavae i luga o le auiliiliga o nisi vaega laiti o talosaga fesoʻotaʻiga moni, ae na filifili e le faia ona o soʻo se auala e lamatia tele.

O se taunuuga, e mafai ona maitauina o le tele o le code na faʻamaonia ma le lima e ona tagata. Ina ia mafai ona taʻitaʻia lenei faiga i le itu saʻo, matou te saunia lipoti i luga o vaega taua ma galuega e manaʻomia ona faʻamaonia. Mo se faʻataʻitaʻiga, e taua le tuʻuina atu o faʻamatalaga mo se potutusi o loʻo faʻaogaina i le faitau selau o nofoaga. Ae o se auaunaga tuai ua suia i se auaunaga fou ua le o toe taua tele e faʻamatalaina. O lo'o matou fa'ata'ita'i fo'i i le fa'aogaina o su'esu'ega fa'ata'ita'i e fa'atupu ai fa'amatalaga mo le fa'ailoga tu'ufa'atasi.

Fa'ato'a fa'aulufale mai. I luga, sa ou talanoa e uiga i oloa faaulufale mai taamilo (le "dependency tangles"), o le i ai lea na faigata ai ona faatelevaveina mypy. Sa tatau foi ona matou galulue malosi e fai mypy lagolago ituaiga uma o idioms e mafua mai i nei cyclic imports. E le'i leva atu na matou fa'amae'aina ai se galuega tele toe fa'avasegaina le tele o fa'afitauli a mypy e uiga i oloa fa'aulufale mai. O nei faʻafitauli na afua mai i le amataga o le poloketi, i tua mai Alore, le gagana faʻaaʻoaʻoga lea na taulaʻi i ai le mypy project. Alore syntax fa'afaigofie ona fo'ia fa'afitauli i tulafono fa'aulufale mai. O aso nei mypy ua maua mai ni tapulaʻa mai lona faʻatinoina muamua, faigofie-mafaufau faʻatinoga (lea e fetaui lelei mo Alore). O le Python e fa'afaigata ai le galue ma fa'aulufale mai fa'asalalau, aemaise lava ona o fa'amatalaga e le manino. Mo se fa'ata'ita'iga, o se fa'agaioiga fa'atonuga e mafai ona fa'amatala moni ai se ituaiga igoa. E le mafai e Mypy ona iloa i taimi uma mea fa'apenei se'i vagana ua fa'agasolo le tele o le fa'aulufale mai. E leai ni fa'alavelave fa'apea i Alore. O faaiuga le lelei na faia i le amataga o le atinaʻeina o faiga e mafai ona faʻaalia ai se mea e le fiafia ai le tagata fai polokalame i le tele o tausaga mulimuli ane.

I'uga: o le ala i le 5 miliona laina o tulafono ma va'aiga fou

O le mypy project ua oʻo mai i se auala umi - mai i le amataga o faʻataʻitaʻiga i se faiga e pulea ai le 4 miliona laina o ituaiga faʻasologa o gaosiga. A'o fa'atupula'ia le mypy, sa fa'avasegaina fa'ailoga a le Python. O nei aso, ua atiaʻe se faʻalapotopotoga malosi faʻanatura i le taina o le Python code. O loʻo i ai se nofoaga mo le faletusi lagolago, o loʻo i ai meafaigaluega fesoasoani mo IDE ma faʻatonu, e iai le tele o faiga faʻatonutonu, e tofu lava ma ona lelei ma faʻaletonu.

E ui lava o le siakiina o ituaiga ua uma ona tuʻuina atu i le Dropbox, ou te talitonu o loʻo tatou i ai i le amataga o le taina o le Python code. Ou te manatu o le a faʻaauau pea ona faʻaleleia ma faʻaleleia tekinolosi siaki ituaiga.

Afai e te leʻi faʻaogaina le siakiina o ituaiga i lau galuega Python tele, ia e iloa o le taimi nei o se taimi sili lea e amata ai le faʻagasolo i le taina faʻamau. Sa ou talanoa ia i latou na faia se suiga faapena. E leai ma se tasi o i latou na salamo ai. O le siakiina o ituaiga e avea ai le Python ma gagana e sili atu ona fetaui i le atinaʻeina o galuega tetele nai lo le "Pyton masani."

Lau faitau le au faitau! E te fa'aogaina le siakiina o ituaiga i au poloketi Python?

Le ala ile siakiina ole 4 miliona laina ole code Python. Vaega 3
Le ala ile siakiina ole 4 miliona laina ole code Python. Vaega 3

puna: www.habr.com

Faaopoopo i ai se faamatalaga