Deprecation எச்சரிக்கைகள் தேவையற்ற குழப்பங்களை உருவாக்குவதைத் தடுத்தல்

PHPStan ஒரு மெத்தடை (method) deprecated என்று குறிப்பிடும்போது, பொதுவாக நீங்கள் அதற்குப் பதிலாக வேறொன்றைத் தேடுவீர்கள். ஆனால் அப்படி ஏதும் இல்லையென்றால் என்ன செய்வது?

Shopware, புதிய optional parameter-ஐச் சேர்ப்பது போன்ற திட்டமிடப்பட்ட மாற்றங்களை அறிவிக்க @deprecated டேக்-ஐப் பயன்படுத்தியது. Static-analysis கருவிகள் அந்த டேக்-களை உண்மையான deprecations என்று கருதி, ஒவ்வொரு அழைப்பிற்கும் (call) எச்சரிக்கை செய்தன. எச்சரிக்கைகளின் எண்ணிக்கை அதிகரித்ததால், டெவலப்பர்கள் அவற்றை அலட்சியப்படுத்தத் தொடங்கினர், இதனால் எச்சரிக்கைகளின் முக்கியத்துவம் குறைந்தது. இது ஒரு வகையான "தவறான எச்சரிக்கை" (crying wolf) சூழலாகும்.

Shopware 6.7.14.0-இல் நாங்கள் சிக்னல்களைப் பிரித்துள்ளோம்.

  • @deprecated – இவை நீக்கப்படவுள்ள அல்லது மாற்றப்படவுள்ள API-களுக்காக மட்டுமே பயன்படுத்தப்பட வேண்டும். நீங்கள் உங்கள் குறியீட்டை (code) மாற்றியமைக்க வேண்டும்.
  • BC-change attributes – புதிய optional parameters அல்லது மாற்றப்பட்ட return types போன்ற, API-யைத் தொடர்ந்து பயன்பாட்டில் வைத்திருக்க உதவும் திட்டமிடப்பட்ட மாற்றங்களுக்கு இவற்றைத் பயன்படுத்தவும்.

புதிய attributes Shopware\Core\Framework\Deprecation\BCChange-இல் உள்ளன. என்ன மாறும் மற்றும் அது யாரை பாதிக்கும் என்பதை அவை துல்லியமாகத் தெரிவிக்கும்.

அவற்றை நாங்கள் இரண்டு குழுக்களாகப் பிரித்துள்ளோம்:

  • CallSiteCompatibilityChange – ஒரு மெத்தடை அழைக்கும் (call) குறியீட்டைப் பாதிக்கும்.
  • ExtenderCompatibilityChange – ஒரு மெத்தடை extend அல்லது override செய்யும் வகுப்புகளைப் (classes) பாதிக்கும்.

இப்போது அடுத்த முக்கிய வெளியீடு (major release) வருவதற்கு முன்பே, உங்கள் extension-ஐ Shopware 6.8-க்காகத் தயார் செய்ய முடியும்.

உதாரணம்: ஒரு மெத்தடில் புதிய optional parameter சேர்க்கப்படலாம். அந்த parameter-ஐ இன்றே உங்கள் overrides-இல் சேர்த்துவிடுங்கள்; இதன் மூலம் குறியீடு தற்போதைய மற்றும் எதிர்கால பதிப்புகள் இரண்டிலும் இயங்கும்.

இந்த மாற்றம் deprecation எச்சரிக்கைகள் மீதான நம்பிக்கையை மீண்டும் ஏற்படுத்தும்.

டெவலப்பர்களுக்கான மூன்று படிகள்

  1. @deprecated என்பதை ஒரு கட்டாயத் திருத்தமாக (mandatory fix) கருதுங்கள்; அந்த API நீக்கப்படும்.
  2. உண்மையான சிக்கல்களை மறைக்கக்கூடிய பரந்த ignore patterns-களைத் தவிர்க்கவும்.
  3. BC-change attributes-களைக் கவனித்து, பின்னர் ஒரு பெரிய மாற்றத்தைச் (massive migration) செய்வதற்குப் பதிலாக, இப்போது சிறிய மற்றும் பாதுகாப்பான மாற்றங்களைச் செய்யுங்கள்.

Source: https://dev.to/shopware/when-deprecated-cries-wolf-making-shopwares-next-major-upgrades-easier-983