Kashi 3.6% na wuraren ajiyar Python da aka gwada sun rasa kurakuran waƙafi

An buga sakamakon binciken kan raunin lambar Python ga kurakurai masu alaƙa da rashin amfani da waƙafi a cikin lambar. Matsalolin suna faruwa ne saboda lokacin da ake ƙididdigewa, Python ta atomatik yana haɗa igiyoyin da ke cikin jerin idan ba a raba su da waƙafi ba, sannan kuma yana ɗaukar darajar a matsayin tuple idan darajar ta biyo bayan waƙafi. Bayan gudanar da bincike ta atomatik na ma'ajiyar GitHub 666 tare da lambar Python, masu binciken sun gano abubuwan da za a iya waƙafi a cikin 5% na ayyukan da aka yi nazari.

Ƙarin binciken da hannu ya nuna cewa kurakurai na ainihi sun kasance a cikin ma'ajin 24 kawai (3.6%), kuma sauran 1.4% sun kasance tabbatacce (alal misali, za a iya cire waƙafi da gangan tsakanin layi don haɗa hanyoyin fayiloli masu yawa, dogon hashes, HTML). blocks ko maganganun SQL). Abin lura ne cewa daga cikin wuraren ajiyar 24 tare da kurakurai na gaske sune manyan ayyuka kamar Tensorflow, Google V8, Sentry, Pydata xarray, rapidpro, django-colorfield da django-helpdesk. Koyaya, matsaloli tare da waƙafi ba su keɓance ga Python kuma galibi suna girma a cikin ayyukan C/C++ (misalan gyaran kwanan nan sune LLVM, Mono, Tensorflow).

Manyan nau'ikan kurakurai da aka yi nazari:

  • Ba zato ba tsammani ya ɓace waƙafi a cikin jeri, tuples, da saiti, yana haifar da haɗuwar igiyoyi maimakon a fassara su azaman dabi'u daban. Misali, a cikin Sentry, daya daga cikin gwaje-gwajen ya rasa wakafi tsakanin igiyoyin "saki" da "gano" a cikin jeri, wanda ya haifar da gwada mai sarrafa "/releasesdiscover" da babu shi, maimakon duba"/saki" da " / gano" daban.
    Kashi 3.6% na wuraren ajiyar Python da aka gwada sun rasa kurakuran waƙafi

    Wani misali kuma shi ne cewa bacewar waƙafi a cikin rapidpro ya haifar da haɗa wasu dokoki guda biyu akan layi na 572:

    Kashi 3.6% na wuraren ajiyar Python da aka gwada sun rasa kurakuran waƙafi

  • Waƙafi da ya ɓace a ƙarshen ma'anar tuple abu guda ɗaya, yana haifar da ɗawainiya don sanya nau'i na yau da kullun maimakon tuple. Misali, kalmar "daraja = (1,)" za ta haifar da aiki zuwa ma'auni na nau'in nau'i na nau'i ɗaya, amma "darajar = (1)" zai haifar da aiki na nau'in lamba. Bakan da ke cikin waɗannan ayyukan ba sa tasiri ga nau'in ma'anar kuma zaɓi ne na zaɓi, kuma kasancewar tuple yana ƙaddara ta hanyar parser kawai bisa kasancewar waƙafi. REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated' # za a sanya kirtani maimakon tuple. )}
  • Sabanin yanayi shine ƙarin waƙafi yayin aiki. Idan an bar waƙafi da gangan a ƙarshen aiki, za a sanya tuple a matsayin ƙimar maimakon nau'in da aka saba (misali, idan an ayyana "darajar = 1," maimakon "darajar = 1").

source: budenet.ru

Add a comment