Waddada lagu saxayo 4 milyan oo xariiq oo code Python ah. Qaybta 3

Waxaan u soo bandhigaynaa dareenkaaga qaybta saddexaad ee tarjumaadda walxaha ku saabsan dariiqa uu Dropbox qaaday markii la hirgeliyey nidaamka hubinta nooca Python code.

Waddada lagu saxayo 4 milyan oo xariiq oo code Python ah. Qaybta 3

β†’ Qaybihii hore: marka hore ΠΈ labaad

Gaaritaanka 4 milyan oo xariiq oo kood ah

Caqabad kale oo weyn (iyo welwelka labaad ee ugu badan ee ka dhex jira kuwa gudaha lagu baaray) wuxuu ahaa kordhinta tirada koodka lagu daboolay nooca jeegaga Dropbox. Waxaan isku daynay dhowr habab si aan u xalino dhibaatadan, laga bilaabo si dabiici ah u koraya xajmiga codebase teeb ilaa diirada la saarayo dadaalka kooxda mypy ee garaafyada toosan iyo kuwa firfircoon. Dhammaadkii, waxay u muuqatay inaysan jirin istaraatiijiyad guuleysi fudud, laakiin waxaan awoodnay inaan ku guuleysano kobaca degdega ah ee mugga koodhka sharraxaadda annagoo isku darka habab badan.

Natiijo ahaan, kaydkayaga Python ugu weyn (oo leh koodka dambe) wuxuu leeyahay ku dhawaad ​​​​4 milyan oo xariiq oo kood la sharraxay. Hawsha qorista koodka taagan waxa ay ku dhammaatay ku dhawaad ​​saddex sano. Mypy hadda waxay taageertaa noocyada kala duwan ee warbixinnada caymiska ee fududeeya in lala socdo horumarka qorista. Gaar ahaan, waxaan ka soo saari karnaa warbixino ku saabsan koodka oo leh madmadaw noocyo ah, sida, tusaale ahaan, isticmaalka cad ee nooca Any Qoraallo aan la xaqiijin karin, ama waxyaabaha sida soo dejinta maktabadaha qolo saddexaad oo aan lahayn tafsiir nooca Iyada oo qayb ka ah mashruuca lagu hagaajinayo saxnaanta nooca hubinta ee Dropbox, waxaan gacan ka geysannay hagaajinta qeexitaannada nooca (waxa loogu yeero faylasha stub) ee qaar ka mid ah maktabadaha il furan ee caanka ah ee ku yaal kaydka Python ee dhexe ku daabac.

Waxaan hirgelinay (oo aan ku habnaynay PEP-yada xiga) sifooyin cusub oo nidaamka nooca ah oo u oggolaanaya noocyo badan oo sax ah qaababka Python ee gaarka ah. Tusaale xusid mudan ayaa ah TypeDict, kaas oo siiya noocyo loogu talagalay qaamuusyada JSON u eg ee leh furayaal xardhan oo go'an, mid walbana leh qiimo noociisa ah. Waxaan sii wadi doonaa ballaarinta nidaamka nooca. Talaabadayada xigta waxay u badan tahay inay noqoto inaan horumarino taageerada awoodaha tirooyinka Python.

Waddada lagu saxayo 4 milyan oo xariiq oo code Python ah. Qaybta 3
Tirada khadadka koodka la sharraxay: server

Waddada lagu saxayo 4 milyan oo xariiq oo code Python ah. Qaybta 3
Tirada khadadka koodka la sharraxay: macmiilka

Waddada lagu saxayo 4 milyan oo xariiq oo code Python ah. Qaybta 3
Wadarta tirada khadadka koodka la sharraxay

Halkan waxaa ah dulmar guud oo ku saabsan sifooyinka ugu muhiimsan ee waxyaalihii aan sameynay si aan u kordhinno tirada koodka la sharraxay ee Dropbox:

adkeysiga tafatirka Waxaan si tartiib tartiib ah u kordhinay shuruudaha adkeynta qoraalka kood cusub. Waxaan ku bilownay tabo kooban oo soo jeediyay in lagu daro tafsiir faylal horay u lahaa tafsiiro. Hadda waxaan u baahanahay nooca tafaasiisha faylalka Python cusub iyo inta badan faylalka jira.

Qorista warbixinnada Waxaan u dirnaa kooxaha warbixin todobaadle ah oo ku saabsan heerka ku qorida koodka waxaanan siinaa talo ku saabsan waxa marka hore la sheegi karo.

Caan ka ahaanshaha mypy Waxaan ka hadalnaa mypy dhacdooyinka waxaanan la hadalnaa kooxaha si aan uga caawino inay ku bilaabaan tafsiir nooca.

Codbixinta Waxaan sameynaa sahan isticmaalayaasha xilliyeed si loo aqoonsado dhibaatooyinka waaweyn. Waxaan diyaar u nahay inaan aad ugu fogaano xallinta dhibaatooyinkan (xitaa abuurista luqad cusub si loo dedejiyo mypy!).

Waxqabadka Waxaan si weyn u wanaajinay waxqabadka mypy anagoo adeegsanayna daemon iyo mypyc. Tan waxaa loo sameeyay si loo fududeeyo dhibatoyinka ka dhasha habraaca qoraalka, iyo si loo awoodo in lagu shaqeeyo tiro badan oo kood ah.

Isdhexgalka tifaftirayaasha. Waxaan dhisnay qalab lagu taageerayo socodsiinta mypy ee tifaftirayaasha caanka ku ah Dropbox. Tan waxaa ku jira PyCharm, Vim iyo VS Code. Tani waxay si weyn u fududaysay habka qeexida koodka iyo hubinta shaqayntiisa. Ficilada noocaan ah waa wax caadi ah marka la qeexayo koodka jira.

Falanqaynta taagan Waxaan abuurnay qalab lagu qiyaaso saxeexyada shaqada anagoo adeegsanayna aaladaha falanqaynta taagan. Qalabkani waxa uu ku shaqayn karaa oo kaliya xaalado fudud, laakiin waxa ay naga caawisay in aanu kordhino caynsanaanta nooca koodka iyada oo aan dadaal badan la helin.

Taageerada maktabadaha qolo saddexaad. Qaar badan oo ka mid ah mashaariicdayadu waxay isticmaalaan qalabka SQLAlchemy. Waxay ka faa'iidaysanaysaa awoodaha firfircoon ee Python in noocyada PEP 484 aysan awoodin inay si toos ah u qaabeeyaan. Anaga, si waafaqsan PEP 561, waxaan abuurnay faylka stub ee u dhigma waxaanan u qornay plugin mypyil furan), taasoo wanaajisa taageerada SQLAlchemy.

Dhibaatooyin aan la kulannay

Waddada loo maro 4 milyan oo xariiq oo kood la qoray mar walba nooma fududayn. Dariiqaas waxa aanu la kulanay godad badan oo aanu dhawr khaladaad ka galnay. Waa kuwan qaar ka mid ah dhibaatooyinka aan la kulannay. Waxaan rajeyneynaa in ka sheegista iyaga ay caawin doonto kuwa kale inay ka fogaadaan dhibaatooyinka la midka ah.

Galalka maqan Waxaan shaqadeena ku bilownay annagoo hubinayna in yar oo faylal ah. Wax kasta oo aan ku jirin faylashan lama hubin Faylasha waxaa lagu daray liiska iskaanka markii tafsiirradii ugu horreeyay ay ka soo baxeen iyaga. Haddii wax laga soo dhoofiyo module ku yaal meel ka baxsan baaxadda xaqiijinta, markaa waxaan ka hadlaynay ku shaqeynta qiyamka sida Any, kuwaas oo aan haba yaraatee la tijaabin. Tani waxay keentay luminta saxnaanta qoraalka, gaar ahaan marxaladaha hore ee socdaalka. Habkani wuxuu si la yaab leh u shaqeeyay ilaa hadda, inkastoo xaalad caadi ah ay tahay in lagu daro faylasha baaxadda dib u eegista ay muujinayso dhibaatooyinka qaybaha kale ee codebase. Arrintii ugu darnayd, markii la isku daray laba goobood oo go’doonsan oo koodhka la isku daray, oo midba midka kale ka madax bannaan yahay, noocyadiisa hore loo hubiyay, waxa soo baxday in noocyada deegaannadaasi aanay is-qaban karin. Tani waxay keentay baahida loo qabo in wax badan laga beddelo qoraallada. Haddaan dib u jaleecno, waxaan ogaanay inay ahayd inaan ku darno cutubyada maktabadaha xudunta u ah goobta hubinta nooca mypy si dhaqsi ah. Tani waxay shaqadeena ka dhigi doontaa mid la saadaalin karo.

Qeexida kood hore. Markii aan bilownay, waxaan haynay ilaa 4 milyan oo xariiq oo koodka Python ee jira. Way caddaatay in sharraxaadda dhammaan koodkan aanay ahayn hawl fudud. Waxaan abuurnay qalab la yiraahdo PyAnnotate kaas oo ururin kara nooca macluumaadka marka ay imtixaanadu socdaan oo ku dari kara faahfaahinta nooca koodka iyadoo lagu saleynayo macluumaadka la ururiyey. Si kastaba ha ahaatee, ma aanan ogaanin qaadashada qalabkan si baahsan. Xog ururinta nooca waxay ahayd mid gaabis ah, oo si toos ah loo soo saaray tafsiir inta badan waxay u baahneyd wax ka beddelka gacanta. Waxaan ka fekernay inaan si toos ah u socodsiino qalabkan mar kasta oo aan dib u eegno koodka, ama ku saabsan ururinta macluumaadka nooca ku salaysan falanqaynta qaar ka mid ah mugga yar ee codsiyada shabakada dhabta ah, laakiin waxaan go'aansanay inaanan yeelin sababtoo ah labada habba aad ayay khatar u yihiin.

Natiijo ahaan, waxaa la ogaan karaa in inta badan koodka ay gacanta ku qeexeen milkiilayaasheeda. Si habkan loogu hago jihada saxda ah, waxaanu diyaarinaa warbixino ku saabsan qaybo iyo hawlo muhiim ah oo u baahan in la qeexo. Tusaale ahaan, waxaa muhiim ah in la bixiyo tafsiir nooca ah moduleka maktabadda oo loo isticmaalo boqollaal meelood. Laakiin adeeg hore oo lagu beddelayo mid cusub hadda aad muhiim uma aha in la sheego. Waxaan sidoo kale tijaabineynaa isticmaalka falanqaynta static si aan u soo saarno tafatirka nooca ee koodka dhaxalka.

Soo dejinta meertada ah Xagga sare, waxaan ka hadlay soo dejinta meertada ah ("ku-tiirsanaanta ku-tiirsanaanta"), jiritaanka taas oo ka dhigtay mid adag in la dedejiyo mypy. Waxa kale oo aanu ku qasbanahay in aanu si adag u shaqayno si aanu u samayno taageerada mypy dhammaan noocyada sarbeebyada ee ay sababaan soo dejinta meertada ah. Waxaan dhawaan dhamaystirnay mashruuc dib-u-qaabayneed oo weyn kaas oo hagaajiyay inta badan arrimaha mypy ee ku saabsan soo dejinta wareegtada ah. Dhibaatooyinkani waxay ka yimaadeen maalmihii hore ee mashruuca, laga soo bilaabo Alore, luqadda waxbarasho ee mashruuca mypy markii hore diiradda lagu saaray. Alore syntax waxa ay fududaysaa in lagu xaliyo mashaakilaadka amarrada soo dejinta meertada ah. Mypy-ga casriga ahi waxa uu ka dhaxlay xaddidaadkiisii ​​hore, hirgelintii maskaxda fudud (taas oo ku habboon Alore). Python waxay ka dhigtaa ku shaqaynta soo dejinta wareegtada mid adag, badiyaa sababtoo ah tibaaxuhu waa mugdi. Tusaale ahaan, hawl-galladu waxay dhab ahaantii qeexi kartaa nooca loo yaqaanno. Mypy had iyo jeer ma awoodo in uu ogaado waxyaalahan oo kale ilaa inta badan loop-ka soo dejinta laga soo shaqeeyay. Ma jirin madmadow noocaas oo kale ah Aore. Go'aannada liidata ee la gaaro marxaladaha hore ee horumarinta nidaamka waxay u soo bandhigi karaan la yaab aan fiicnayn sanado badan ka dib barnaamijka.

Natiijooyinka: waddada loo maro 5 milyan oo khad kood ah iyo aragtiyo cusub

Mashruuca mypy wuxuu soo maray waddo dheer - laga bilaabo prototypes hore ilaa nidaam xakameynaya 4 milyan oo xariiq oo noocyada koodhka wax soo saarka. Sida mypy u kobcay, tilmaamaha nooca Python waa la habeeyey. Maalmahan, nidaam deegaan oo awood leh ayaa ka soo baxay ku qorista koodka Python. Waxay leedahay meel loogu talagalay taageerada maktabadda, waxay ka kooban tahay qalabyada caawiya IDE-yada iyo tifaftirayaasha, waxay leedahay dhowr nooc oo hababka xakamaynta ah, kuwaas oo mid kastaa leeyahay faa'iidooyin iyo waxyeellooyin u gaar ah.

In kasta oo hubinta nooca horeba looga bixiyay Dropbox, waxaan aaminsanahay inaan wali ku jirno maalmihii hore ee qorista koodka Python. Waxaan filayaa in tignoolajiyada hubinta nooca ay sii wadi doonto inay horumarto oo ay horumarto.

Haddii aadan horay u isticmaalin nooca hubinta mashruucaaga weyn ee Python, markaas ogow in hadda ay tahay waqti aad u wanaagsan oo aad bilaabi lahayd inaad u dhaqaaqdo qoritaanka tooska ah. Waxaan la hadlay kuwa sameeyay isbedel la mid ah. Midkoodna kama qoomamayn. Hubinta nooca ayaa Python ka dhigaysa luqad aad ugu habboon horumarinta mashaariicda waaweyn marka loo eego "Pythonka caadiga ah."

Akhristayaasha sharafta leh! Ma isticmaashaa nooca hubinta mashaariicda Python?

Waddada lagu saxayo 4 milyan oo xariiq oo code Python ah. Qaybta 3
Waddada lagu saxayo 4 milyan oo xariiq oo code Python ah. Qaybta 3

Source: www.habr.com

Add a comment