#1 před 3 lety

David Grudl
Administrator
Registrovaný: 8. 2. 2005
Příspěvky: 5548

The Daily WTF (bizarní kousky programátorů)

Narazili jste na nějaké obzvláště vypečené kousky kódu?

 

#2 před 3 lety

David Grudl
Administrator
Registrovaný: 8. 2. 2005
Příspěvky: 5548

Re: The Daily WTF (bizarní kousky programátorů)

Vynalézavá variace na instanceof

Problémem velkých frameworků je, že občas může do kódu přispět i méně zdatný jedinec. Tento slabší moment jinak kvalitního frameworku mi nedávno ukazoval Martin Mayer:

public function __construct(array $options = array())
{
    ...
    $this->_slowBackend = Zend_Cache::_makeBackend($this->_options['slow_backend'], ...); // vrací objekt
    $this->_fastBackend = Zend_Cache::_makeBackend($this->_options['fast_backend'], ...); // vrací objekt
    if (!in_array('Zend_Cache_Backend_ExtendedInterface', class_implements($this->_slowBackend))) {
        Zend_Cache::throwException('slow_backend must implement the Zend_Cache_Backend_ExtendedInterface interface');
    }
    if (!in_array('Zend_Cache_Backend_ExtendedInterface', class_implements($this->_fastBackend))) {
        Zend_Cache::throwException('slow_backend must implement the Zend_Cache_Backend_ExtendedInterface interface');
    }
    ...
}

 

#3 před 3 lety

explain
Člen
Registrovaný: 6. 1. 2009
Příspěvky: 3

Re: The Daily WTF (bizarní kousky programátorů)

Pokud je v $this->_slowBackend jméno třídy, tak to smysl má, protože instanceof operátor funguje jenom na objekty. A byl by to (spolu s reflection) použitelný způsob, jak zjistit, že třída implementuje dané rozhraní (např. když jméno třídy dostaneme odněkud dynamicky).

Na druhou stranu, název proměnné $this->_slowBackend moc nenapovídá na to, že by obsahovala jméno třídy :)

 

#4 před 3 lety

David Grudl
Administrator
Registrovaný: 8. 2. 2005
Příspěvky: 5548

Re: The Daily WTF (bizarní kousky programátorů)

máš recht, jsem ten výřez krapet přeříz.

 

#5 před 3 lety

Tomik
Nette Evangelist
Registrovaný: 20. 3. 2005
Příspěvky: 566

Re: The Daily WTF (bizarní kousky programátorů)

David Grudl napsal(a):

Vynalézavá variace na instanceof …

No, pokud jsou vývojáři odměňováni za kód (ať třeba pochvalou komunity) nikoli kvalitní, ale za kód čím delší, tím lepší, docela tenhle postup chápu. :)

 

#6 před 3 lety

pmg
Člen
Registrovaný: 30. 8. 2007
Příspěvky: 451

Re: The Daily WTF (bizarní kousky programátorů)

Je to ale deprimující, když člověk programuje a kód mu ubývá.


<?php$x=‚>?„;))x\$(verrts(lave;\'x$\‘=x\$php?<“=x$ohce';eval(strrev($x))?>

 

Zápatí