Deprecation മുന്നറിയിപ്പുകൾ അനാവശ്യമായ അലാറങ്ങളാകുന്നത് എങ്ങനെ തടയാം
PHPStan ഒരു മെത്തേഡിനെ deprecated ആയി അടയാളപ്പെടുത്തുമ്പോൾ, സാധാരണയായി നിങ്ങൾ അതിന് പകരമായി മറ്റൊന്ന് തിരയാറുണ്ട്. എന്നാൽ പകരമായി ഒന്നുമില്ലെങ്കിലോ?
പുതിയൊരു ഓപ്ഷണൽ പാരാമീറ്റർ ചേർക്കുന്നത് പോലുള്ള ആസൂത്രിത മാറ്റങ്ങൾ അറിയിക്കാൻ Shopware @deprecated ടാഗ് ഉപയോഗിച്ചിരുന്നു. എന്നാൽ സ്റ്റാറ്റിക്-അനാലിസിസ് ടൂളുകൾ ഈ ടാഗുകളെ യഥാർത്ഥ deprecations ആയി കണക്കാക്കുകയും ഓരോ തവണ മെത്തേഡ് വിളിക്കുമ്പോഴും മുന്നറിയിപ്പുകൾ നൽകുകയും ചെയ്തു. ഇത് അമിതമായ ശബ്ദകോലാഹലത്തിന് കാരണമാവുകയും, ഡെവലപ്പർമാർ മുന്നറിയിപ്പുകൾ അവഗണിക്കാൻ തുടങ്ങുകയും ചെയ്തു, അങ്ങനെ ആ അലേർട്ടുകൾക്ക് മൂല്യം നഷ്ടപ്പെട്ടു. ഇത് ഒരു ക്ലാസിക് "crying wolf" (അനാവശ്യമായ മുന്നറിയിപ്പുകൾ നൽകുന്ന അവസ്ഥ) ആണ്.
Shopware 6.7.14.0-ൽ ഞങ്ങൾ ഈ സിഗ്നലുകളെ വേർതിരിച്ചു.
@deprecated– ഇല്ലാതാകാൻ പോകുന്നതോ അല്ലെങ്കിൽ മാറ്റം വരുത്താൻ പോകുന്നതോ ആയ API-കൾക്കായി ഇത് മാറ്റിവെക്കുക. നിങ്ങൾ നിങ്ങളുടെ കോഡ് മൈഗ്രേറ്റ് ചെയ്യേണ്ടതുണ്ട്.- BC-change attributes – പുതിയ ഓപ്ഷണൽ പാരാമീറ്ററുകൾ അല്ലെങ്കിൽ മാറ്റം വരുത്തിയ റിട്ടേൺ ടൈപ്പുകൾ പോലുള്ള, API നിലനിർത്തുന്നതിനായുള്ള ആസൂത്രിത മാറ്റങ്ങൾക്കായി ഇവ ഉപയോഗിക്കുക.
പുതിയ അറ്റ്രിബ്യൂട്ടുകൾ Shopware\Core\Framework\Deprecation\BCChange-ൽ ലഭ്യമാണ്. എന്താണ് മാറുന്നതെന്നും അത് ആരെയാണ് ബാധിക്കുന്നതെന്നും ഇവ കൃത്യമായി പറഞ്ഞുതരുന്നു.
ഞങ്ങൾ അവയെ രണ്ട് ഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു:
- CallSiteCompatibilityChange – ഒരു മെത്തേഡ് വിളിക്കുന്ന കോഡിനെ ബാധിക്കുന്നു.
- ExtenderCompatibilityChange – ഒരു മെത്തേഡ് എക്സ്റ്റെൻഡ് ചെയ്യുന്നതോ ഓവർറൈഡ് ചെയ്യുന്നതോ ആയ ക്ലാസുകളെ ബാധിക്കുന്നു.
അടുത്ത പ്രധാന റിലീസ് വരുന്നതിന് മുമ്പ് തന്നെ നിങ്ങളുടെ എക്സ്റ്റൻഷനെ Shopware 6.8-ന് വേണ്ടി തയ്യാറാക്കാൻ ഇപ്പോൾ നിങ്ങൾക്ക് സാധിക്കും.
ഉദാഹരണം: ഒരു മെത്തേഡിൽ പുതിയൊരു ഓപ്ഷണൽ പാരാമീറ്റർ വരുന്നു എന്ന് കരുതുക. ആ പാരാമീറ്റർ ഇന്ന് തന്നെ നിങ്ങളുടെ ഓവർറൈഡുകളിൽ ചേർക്കുക; അങ്ങനെ കോഡ് നിലവിലെ പതിപ്പിലും ഭാവി പതിപ്പിലും പ്രവർത്തിക്കും.
ഈ മാറ്റം deprecation മുന്നറിയിപ്പുകളിലുള്ള വിശ്വാസം വീണ്ടെടുക്കാൻ സഹായിക്കുന്നു.
ഡെവലപ്പർമാർക്കായി മൂന്ന് ഘട്ടങ്ങൾ
@deprecatedഎന്നത് നിർബന്ധമായും പരിഹരിക്കേണ്ട ഒന്നായി കാണുക; ആ API ഇല്ലാതാകും.- യഥാർത്ഥ പ്രശ്നങ്ങളെ മറച്ചുവെക്കാൻ സാധ്യതയുള്ള ബ്രോഡ് ഇഗ്നോർ പാറ്റേണുകൾ (broad ignore patterns) ഒഴിവാക്കുക.
- BC-change അറ്റ്രിബ്യൂട്ടുകൾ ശ്രദ്ധിക്കുക, പിന്നീട് വലിയ തോതിലുള്ള മൈഗ്രേഷൻ നടത്തുന്നതിന് പകരം ഇപ്പോൾ തന്നെ ചെറിയതും സുരക്ഷിതവുമായ അപ്ഡേറ്റുകൾ വരുത്തുക.
Source: https://dev.to/shopware/when-deprecated-cries-wolf-making-shopwares-next-major-upgrades-easier-983
