Devel :: warnglobal

PERL-extensie om te helpen bij het elimineren van GLOBALS
Download nu

Devel :: warnglobal Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Stephen Nelson
  • Uitgever website:
  • http://search.cpan.org/~stephen/Video-Xine-0.17/lib/Video/Xine.pm

Devel :: warnglobal Tags


Devel :: warnglobal Beschrijving

Perl-uitbreiding om te helpen bij het elimineren van globalen Devel :: warnglobal is een perl-extensie om te helpen bij het elimineren van globalen.Synopsis Gebruik Devel :: WARNGLOBAL $ FOO => GET_FOO, $ BAR => ; Gebruik Devel :: Warnglobal :: Scalar; Tie $ Globaal, 'Devel :: Warnglobal :: Scalar', {Get => Get_Global}; een programma vol met globale variabelen kan een ding-bending zijn om te debuggen. Ze zijn in verschillende vormen en maten. Sommige zijn pakketvariabelen die standaard worden geëxporteerd. Sommige worden rechtstreeks toegankelijk via de '$ Modulename :: Global' syntaxis. Meest ervaren programmeurs zijn het erover eens dat het gebruik van globale variabelen een slecht ding is in grote programma's, omdat ze allebei toevoegen aan de complexiteit van het programma en subtiele bugs kunnen introduceren. Globals introduceren complexiteit omdat ze het aantal dingen verhogen dat u nodig hebt om op een bepaald moment in uw hoofd te houden. ("Wat de HECK is $ frobozz verondersteld weer te zijn?") Ze kunnen subtiele bugs introduceren, omdat als een stuk van de code per ongeluk zegt of ($ thnee = 34) wanneer ze moesten zeggen als ($= 34) dan een ander Stuk van Code Miles Distant kan breken, en je zult moeten jagen door het hele programma voor de bug. Dit kan zeer tijdrovend zijn! De standaard remedie voor rampant globale variabelen is om subroutines te schrijven die de informatie retourneren dat het globaal moet bevatten. Als je bijvoorbeeld een wereldwijd zo hebt: $ Clown = "Bozo"; dan kun je in plaats daarvan een subroutine zoals deze schrijven: sub get_clown {return "bozo"; } en vervang alle instanties van $ clown met get_clown (). Als we op een bepaald moment in het programma veranderen in een andere clown, kunt u een Set_Clown () -methode schrijven en elke '$ clown = "binky"' verklaringen aan 'set_clown ("binky") wijzigen. Voor de nieuwsgierige, één manier om dit te doen zou zijn: begin {mijn $ clown = 'bozo'; Sub get_clown () {return $ clown; } Sub set_clown {mijn ($ new_clown) = @_; $ clown = $ new_clown; }} Een 'Set' -functie schrijven Herintroduceert enkele van de problemen van het hebben van de globale variabele in de eerste plaats, aangezien het bellen van Set_Clown () in één deel van het programma problemen in een ander stuk code kan veroorzaken. Je hebt echter verschillende goede dingen bereikt. Ten eerste is een 'Set_Clown' -gesprek gemakkelijker te zien dan een '$ clown = foo'-verklaring. Ten tweede kunt u toegangscontroles in Set_Clown () plaatsen om ervoor te zorgen dat get_clown () altijd een geldige clown zal retourneren. En ten derde wordt het gemakkelijker om get_clown () en set_clown () in klassenmethoden te maken. Dan zou je kunnen bellen zoals $ Circus-> Get_Clown (), waardoor het gemakkelijker is om circusgerelateerde dingen te scheiden van niet-circusstoffen. Globals kunnen ongrijpbaar zijn. Het kan moeilijk zijn om ze te vinden, en tijdrovend om ze allemaal tegelijk te vervangen. Devel :: Warnglobal is ontworpen om het proces gemakkelijker te maken. Nadat u uw functie 'Get' hebt geschreven, kunt u die variabele aan de functie binden en de variabele altijd de waarde van de functie retourneert. Dit kan tijdens het testen waardevol zijn, aangezien het dient om te verifiëren dat u uw nieuwe 'Get'-functie correct hebt geschreven. Om het gebruik van het gebruik van het gegeven Global, Devel :: Warnglobal kan waarschuwingen bieden wanneer de wereld is toegankelijk. Deze waarschuwingen zijn standaard ingeschakeld; ze worden gecontroleerd door de parameter 'Warn'. Ook kan men waarschuwingen in- en uitschakelen met de waarschuwing () methode op het gebonden object. Als 'Die_on_Write' is ingesteld, zal Devel :: Warnglobal sterven als er een poging wordt gedaan om te schrijven naar een waarde zonder gedefinieerde 'set'-methode. (Anders zal de 'set'-methode een waarschuwing produceren, maar heeft geen invloed op de waarde.) Als een gemak, kunt u variabelen binden in de lijn' Gebruik 'met Devel :: warnglobal. Of, u kunt de onderliggende Devel :: warnglobal :: scalaire module rechtstreeks gebruiken. Vereisten: · Perl


Devel :: warnglobal Gerelateerde software