Ko te ara ki te tirotiro i te 4 miriona rarangi o te waehere Python. Wāhanga 3

Ka tukuna atu e matou ki a koe te tuatoru o nga waahanga o te whakamaoritanga o nga korero mo te huarahi i whaia e Dropbox i te wa e whakatinanahia ana he punaha tirotiro momo mo te waehere Python.

Ko te ara ki te tirotiro i te 4 miriona rarangi o te waehere Python. Wāhanga 3

→ Nga waahanga o mua: tuatahi и te tuarua

Ka eke ki te 4 miriona raina o te waehere kua patohia

Ko tetahi atu wero nui (me te tuarua o te maaharahara nui i waenga i te hunga i ruritia o roto) ko te whakanui ake i te nui o nga waehere e kapi ana i nga momo arowhai i Dropbox. He maha nga huarahi i whakamatauria e matou ki te whakaoti i tenei raru, mai i te whakatipu noa i te rahi o te papawaewae kua patohia ki te aro ki nga mahi a te roopu mypy ki runga i te momo riipene momo aunoa me te hihiko. I te mutunga, ko te ahua karekau he rautaki toa ngawari, engari i taea e matou te eke ki te tipu tere i roto i te rahinga o te tohu tohu tohu ma te whakakotahi i nga huarahi maha.

Ko te mutunga mai, tata ki te 4 miriona nga rarangi o te waehere kua tohuhia e to maatau putunga Python nui rawa atu (me te waehere tuara). Ko te mahi mo te patopato waehere pateko i oti i roto i te toru tau. Kei te tautoko a Mypy i nga momo purongo kapinga waehere e ngawari ake ai te aro turuki i te ahunga whakamua o te patopato. Ina koa, ka taea e tatou te whakaputa purongo mo te waehere me nga momo rangirua, penei, hei tauira, te whakamahi marama o tetahi momo. Any i roto i nga tuhipoka kaore e taea te manatoko, me nga mea penei me te kawemai i nga whare pukapuka tuatoru karekau he momo tuhipoka. Hei wahanga o te kaupapa ki te whakapai ake i te tika o te tirotiro momo i Dropbox, i whai waahi matou ki te whakapai ake i nga momo whakamaramatanga (e kiia nei he stub files) mo etahi whare pukapuka puna tuwhera rongonui i roto i te putunga putunga Python. patopato.

I whakatinanahia e matou (me te paerewa i roto i nga PEP o muri mai) nga ahuatanga hou o te punaha momo e taea ai nga momo tino tika mo etahi tauira Python motuhake. He tauira rongonui o tenei TypeDict, e whakarato ana i nga momo mo nga papakupu rite-JSON he huinga mau taviri aho, me te uara o ia momo. Ka whakawhānui tonu matou i te punaha momo. Ko ta maatau mahi e whai ake nei ko te whakapai ake i te tautoko mo nga kaha tau a Python.

Ko te ara ki te tirotiro i te 4 miriona rarangi o te waehere Python. Wāhanga 3
Te maha o nga rarangi o te waehere kua tohua: te tūmau

Ko te ara ki te tirotiro i te 4 miriona rarangi o te waehere Python. Wāhanga 3
Te maha o nga rarangi o te waehere kua tohua: kiritaki

Ko te ara ki te tirotiro i te 4 miriona rarangi o te waehere Python. Wāhanga 3
Tapeke maha o nga rarangi o te waehere kua tohua

Anei he tirohanga whanui mo nga ahuatanga matua o nga mea i mahia e matou ki te whakanui ake i te nui o nga tohu tohu i Dropbox:

Te kaha korero. Ka piki haere nga whakaritenga mo te kaha o te tuhi tohu waehere hou. I timata matou ki nga tohutohu awhi e kii ana ki te taapiri i nga korero ki nga konae kei a raatau etahi korero. Inaianei kei te hiahia matou ki nga momo tuhipoka ki nga konae Python hou me te nuinga o nga konae kei roto.

Pato purongo. Ka tukuna e matou nga roopu ia wiki mo te taumata o te patopato i o raatau waehere me te tuku tohutohu mo nga mea me tuhi tuatahi.

Te rongonui o mypy. Ka korero matou mo te mypy i nga huihuinga me te korero ki nga roopu hei awhina ia ratou ki te timata ki nga momo tuhipoka.

Nga pooti. Ka whakahaerehia e matou nga rangahau kaiwhakamahi i ia wa ki te tautuhi i nga raru nui. Kua reri matou ki te haere tawhiti ki te whakaoti i enei raruraru (ara te hanga reo hou hei tere ake i te mypy!).

Mahi. Kua tino pai ake te mahi a mypy ma te whakamahi i te daemon me te mypyc. I mahia tenei ki te maeneene i nga raruraru ka puta i te wa o te tukanga tuhi, me te kaha ki te mahi me te nui o te waehere.

Te whakauru ki nga kaiwhakatikatika. Kua hangaia e matou he taputapu hei tautoko i te whakahaere mypy i roto i nga kaiwhakatika e rongonui ana i Dropbox. Kei roto ko PyCharm, Vim me te Waehere VS. Na tenei i tino whakangwarihia te tukanga o te tuhi tohu me te tirotiro i tana mahi. He mea noa enei momo mahi i te wa e tuhi ana i te waehere o naianei.

Te tātari pateko. I hangaia e matou he taputapu hei whakatau i nga waitohu mahi ma te whakamahi i nga taputapu tātari pateko. Ka taea e tenei taputapu te mahi i roto i nga ahuatanga ngawari noa, engari i awhina i a maatau ki te whakanui ake i o maatau momo momo waehere me te kore e whakapau kaha.

Tautoko mo nga whare pukapuka tuatoru. He maha o a maatau kaupapa e whakamahi ana i te kete taputapu SQLAlchemy. Ka whai painga ki nga kaha hihiri o Python e kore e taea e nga momo PEP 484 te whakatauira tika. Na matou, i runga i te PEP 561, i hanga te konae stub e rite ana ka tuhia he mono mo mypy (puna tuwhera), e whakapai ake ana i te tautoko SQLAlchemy.

Nga uaua i pa ki a matou

Ko te huarahi ki te 4 miriona rarangi o te waehere kua patohia ehara i te mea ngawari mo matou. I runga i tenei ara he maha nga poka i tutakina e matou, a he maha nga he. Koinei etahi o nga raru i pa ki a matou. Te ti'aturi nei matou ma te korero mo ratou ka awhina i etahi atu ki te karo i nga raruraru pera.

Kei te ngaro nga konae. I timata ta maatau mahi ma te tirotiro i te iti noa o nga konae. Ko nga mea katoa kaore i whakauruhia ki roto i enei konae kaore i takina. I taapirihia nga konae ki te rarangi matawai i te wa i puta nga korero tuatahi ki roto. Mena i kawemai tetahi mea mai i tetahi waahanga kei waho o te waahi o te manatoko, katahi ka korero matou mo te mahi me nga uara penei Any, kaore ano i whakamatauria. Na tenei i ngaro te tika o te patopato, ina koa i nga timatanga o te heke. He tino pai te mahi o tenei huarahi i tenei wa, ahakoa ko te ahuatanga ko te taapiri i nga konae ki te whānuitanga o te arotake ka kitea nga raru i etahi atu waahanga o te turanga waehere. I te kino rawa atu, i te wa i hanumihia ai e rua nga waahi motuhake o te waehere, i te mea kua tirohia nga momo, i te mea motuhake o tetahi ki tetahi, ka puta ko nga momo o enei waahi kaore i te hototahi ki a raatau ano. Na tenei ka hiahia kia maha nga whakarereketanga ki nga korero. Ki te titiro whakamuri inaianei, ka mohio maatau kua taapirihia e matou nga waahanga whare pukapuka matua ki te waahi arowhai momo a mypy. Ma tenei ka kaha ake te matapae i a maatau mahi.

Te tohu tohu tawhito. I te wa i timata ai matou, tata ki te 4 miriona nga rarangi o te waehere Python. I tino marama ko te tuhi i enei waehere katoa ehara i te mahi ngawari. I hangaia e matou he taputapu ko PyAnnotate ka taea te kohi momo korero i te wa e whakahaere ana nga whakamatautau ka taea te taapiri momo tuhi ki to waehere i runga i nga korero kua kohia. Heoi, kare ano matou i kite i te whanuitanga o tenei taputapu. He puhoi te kohikohi mo nga momo korero, a he maha nga wa e tika ana kia maha nga whakarereketanga a-ringa. I whakaaro matou ki te whakahaere aunoa i tenei taputapu i nga wa katoa ka arotakehia e matou te waehere, te kohi korero momo ranei i runga i te tātari i etahi pukapuka iti o nga tono whatunga tuuturu, engari ka whakatauhia kia kaua na te mea he tino whakararu tetahi huarahi.

Ko te mutunga, ka taea te tohu ko te nuinga o te waehere i tohuhia e ona rangatira. Hei arahi i tenei tukanga ki te huarahi tika, ka whakarite matou i nga purongo mo nga waahanga me nga mahi tino nui me tuhi. Hei tauira, he mea nui ki te whakarato momo tuhipoka mo tetahi waahanga whare pukapuka e whakamahia ana i nga rau waahi. Engari ko te ratonga tawhito e whakakapihia ana ki tetahi ratonga hou kaore he mea nui ki te tuhi korero. Kei te whakamatautau ano matou ki te whakamahi i te tātaritanga pateko hei whakaputa momo tuhipoka mo te waehere tuku iho.

Kawemai huritao. I runga ake nei, i korero ahau mo nga kawemai huritao (ko nga "tangata whakawhirinaki"), na te mea he uaua ki te tere ake i te mypy. I whakapau kaha ano matou ki te tautoko a mypy i nga momo kiwaha katoa i ahu mai i enei kawemai huringa. No tata nei i oti i a matou tetahi kaupapa hoahoa hou punaha i whakatika i te nuinga o nga take a mypy e pa ana ki nga kawemai porohita. Ko enei raruraru i ahu mai i nga ra tuatahi o te kaupapa, i hoki mai i Alore, te reo matauranga i aro tuatahitia ai te kaupapa mypy. Ko te wetereo a Alore he ngawari ki te whakaoti rapanga me nga whakahau kawemai huringa. Kua riro mai i te mypy o naianei etahi herenga mai i tana whakatinanatanga ngawari o mua (he tino pai mo Alore). He uaua te mahi a Python me nga kawemai porohita, na te mea he rangirua nga korero. Hei tauira, ka taea e te mahi taumahi te tautuhi i tetahi momo ingoa ingoa. Kare e taea e Mypy te kite i nga mea penei kia oti ra ano te mahi te nuinga o te kawemai. Karekau he rangirua pera i Alore. Ko nga whakatau kino i mahia i te timatanga o te whakawhanaketanga punaha ka puta he ohorere kino ki te kaiwhakaputa i nga tau maha i muri mai.

Hua: te ara ki te 5 miriona rarangi waehere me nga horihori hou

Kua tae mai te kaupapa mypy - mai i nga tauira o mua ki te punaha e whakahaere ana i te 4 miriona rarangi momo waehere whakaputa. I te wa e tipu ana te mypy, i whakatauritehia nga momo tohu a Python. I enei ra, kua whakawhanakehia he rauwiringa kaiao kaha ki te tuhi i te waehere Python. He waahi mo te tautoko whare pukapuka, kei roto nga taputapu awhina mo nga IDE me nga kaiwhakatika, he maha nga momo punaha whakahaere, kei a ia ano nga painga me nga raru.

Ahakoa kua tukuna kētia te arowhai momo ki Dropbox, e whakapono ana ahau kei roto tonu tatou i nga ra tuatahi o te tuhi i te waehere Python. Ki taku whakaaro ka tipu tonu, ka pai haere tonu nga hangarau arowhai momo.

Mena kare ano koe i whakamahi i te arowhai momo i roto i to kaupapa Python nui-nui, kia mohio koe he wa pai tenei ki te timata ki te neke ki te patopato pateko. Kua korero ahau ki te hunga kua rite ki te whakawhiti. Kaore tetahi o ratou i pouri. Ko te arowhai momo ko te reo Python he reo e pai ake ana ki te whakawhanake kaupapa nui atu i te "Pytono noa."

E nga kaipānui aroha! Kei te whakamahi koe i te arowhai momo i o kaupapa Python?

Ko te ara ki te tirotiro i te 4 miriona rarangi o te waehere Python. Wāhanga 3
Ko te ara ki te tirotiro i te 4 miriona rarangi o te waehere Python. Wāhanga 3

Source: will.com

Tāpiri i te kōrero