CoddityTeam / movaicode

Concours mensuel du Pire Développeur de France
123 stars 10 forks source link

Du cache vous dites ? Encore !? #204

Open ShockedPlot7560 opened 2 years ago

ShockedPlot7560 commented 2 years ago

Et oui, its me Mario !

Quel fût pas ma stupeur lorsqu'en me documentant tranquillement, tel un bon développeur, sur la plateforme qui nous sert d'alimentation de nuit blanche : GitHub, j'ai entrevu une activité de @louismarslen à cet endroit 👀 Comme on est toujours à la recherche de rapidité 🚀 dans tout ce qu'on fait, et que savoir qu'à partir de 2s de chargement d'un site web, les 3 quarts de l'audience ont fui ton site, je me suis senti obligé d'en savoir plus.

C'est là que j'ai pu découvrir dans le meilleur langage ever : PHP une librairie gérant le cache à la perfection, gagnant ainsi en rapidité dans toutes les tâches que je puisse effectuer. Je me suis demandé, comment pouvais elle nous fournir ce service ! En décortiquant le code source, ont remarque une façon spéciale de nommer les fichiers 👀 se basant sur un hash en md5 et des substring. Vu qu'apparemment il faut nommer ses fichiers comme ça, je me suis tout de suite dit qu'il fallait que j'améliore mon ancien système de cache gagnant quelque seconde 🔥 d'exécution.

Mais en plus, comme si ce n'était pas le seul évènement déclencheur, Pâques arrive à grands pas (à l'heure où je poste ça) !!!! LE meilleur moment de l'année après Noël selon moi. Pouvoir se goinfrer de chocolat et pouvoir prendre 10kg en 2 jours, rien de mieux :p

J'ai donc ma petite proposition pour me permettre d'être le plus efficace dans la recherche des œufs dans le jardin de mamie ! Qui ont va se le cacher, sont quand même durs à dénicher, les ptits filous. Je l'ai éclairci un petit peu et mis aux couleurs de Pâques pour les personnes ayant du mal à lire. Comme on aime le maison, et que quand c'est fait maison, c'est meilleur, il était pour moi obligatoire que j'ajoute ma touche artistique à cette œuvre. (Bon désolé hein, mais j'ai mal suivi les cours d'arts plastiques au collège). Donc l'obfuscation, le dessin etc, sont faits à la main 🎉 (je préfère préciser que ça m'a pris plus de temps que le programme lui-même)

<?php

error_reporting(E_USER_DEPRECATED); //jcroit php aime pas pâque, donc je lui ferme le clapet

                                  $str = "";
                                    $i=0;
                                const LESS=-1;
                                const GREAT=1;
                                const EQUALS=0;
                                const AAAA = [
    2 => [" ","!","\"","#","$","%","&","'","(",")","*","+",",","-",".","/"],
    3 => ["0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?"],
    4 => ["@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O"],
    5 => ["P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_"],
    6 => ["`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o"],
    7 => ["p","q","r","s","t","u","v","w","x","y","z","{","|","}","~",null],];

                              $🥚🥚🥚🥚=[fn()=>(
                           AAAA[5][15].AAAA[5][15].
                      AAAA[5][15].AAAA[5][15].AAAA[5][15].
                     AAAA[5][15].AAAA[5][15].AAAA[5][15])(),
                    fn()=>(AAAA[5][15].AAAA[5][15].AAAA[5][15].
                 AAAA[5][15].  AAAA[5][15].AAAA[5][15].AAAA[5][15].
                 AAAA[5][15].  AAAA[5][15])(),fn($a)=>(AAAA[5][15].
                AAAA[5][15].   AAAA[5][15].AAAA[5][15].AAAA[5][15].
               AAAA[5][15].  AAAA[5][15].  AAAA[5][15].  AAAA[5][15].
             AAAA[5][15])($a),__DIR__,AAAA[2][15].AAAA[7][4].AAAA[6][13].
             AAAA[7][0],fn($a) => (AAAA[7][3].   AAAA[7][4].   AAAA[7][2].
            AAAA[6][12].  AAAA[6][5].    AAAA[6][14])($a),fn($a, $b,$c) =>(
            AAAA[7][3].    AAAA[7][5].  AAAA[6][2].   AAAA[7][3].AAAA[7][4].
            AAAA[7][2])($a, $b, $c),    AAAA[4][3].   AAAA[6][1].AAAA[6][3].
            AAAA[6][8].   AAAA[6][5],    AAAA[5][2].AAAA[6][5].  AAAA[6][3].
            AAAA[7][5].   AAAA[7][2].   AAAA[7][3].   AAAA[6][9].AAAA[7][6].
            AAAA[6][5].AAAA[4][9].AAAA[7][4].    AAAA[6][5].     AAAA[7][2].
            AAAA[6][1].AAAA[7][4].AAAA[6][15].   AAAA[7][2].     AAAA[4][9].
           AAAA[7][4].AAAA[6][5].AAAA[7][2].AAAA[6][1].AAAA[7][4].AAAA[6][15].
           AAAA[7][2],AAAA[5][2].AAAA[6][5].AAAA[6][3].AAAA[7][5]. AAAA[7][2].
           AAAA[7][3].AAAA[6][9].AAAA[7][6].AAAA[6][5].AAAA[4][4]. AAAA[6][9].
           AAAA[7][2].AAAA[6][5].AAAA[6][3].AAAA[7][4].AAAA[6][15].AAAA[7][2].
           AAAA[7][9].AAAA[4][9].AAAA[7][4].AAAA[6][5].AAAA[7][2].  AAAA[6][1].
           AAAA[7][4].AAAA[6][15].AAAA[7][2],AAAA[4][6].AAAA[6][9].AAAA[6][12].
           AAAA[6][5].AAAA[7][3].AAAA[7][9].AAAA[7][3].AAAA[7][4].  AAAA[6][5].
           AAAA[6][13].AAAA[4][9].AAAA[7][4].AAAA[6][5].AAAA[7][2]. AAAA[6][1].
          AAAA[7][4].AAAA[6][15].AAAA[7][2], fn($a)=>(  AAAA[7][5]. AAAA[6][14].
          AAAA[7][3].  AAAA[6][5]. AAAA[7][2].AAAA[6][9].AAAA[6][1].AAAA[6][12].
          AAAA[6][9].AAAA[7][10].AAAA[6][5])($a),fn($a)=>(AAAA[6][6].AAAA[6][9]. //oeuf de pâque si tu avais pas remarquer
          AAAA[6][12].  AAAA[6][5].AAAA[5][15].AAAA[6][7].AAAA[6][5].AAAA[7][4].
          AAAA[5][15].AAAA[6][3].AAAA[6][15].AAAA[6][14].AAAA[7][4]. AAAA[6][5].
          AAAA[6][14].AAAA[7][4]. AAAA[7][3])($a),(bool)  AAAA[6][6].AAAA[6][1].
          AAAA[6][12].  AAAA[7][3].   AAAA[6][5],(bool)   AAAA[7][4].AAAA[7][2].
          AAAA[7][5].AAAA[6][5],fn(&$a,$b)=>(AAAA[7][5].AAAA[7][3]. AAAA[6][15].
          AAAA[7][2].AAAA[7][4])  ($a,$b),  fn($a)=>  (  AAAA[6][9]. AAAA[7][3].
          AAAA[5][15]. AAAA[6][4].  AAAA[6][9].  AAAA[7][2])($a),fn  ($a) =>  (
         AAAA[6][15].    AAAA[7][0].AAAA[6][5].AAAA[6][14].AAAA[6][4]. AAAA[6][9].
         AAAA[7][2])($a),fn($a)=>(AAAA[7][2].AAAA[6][5]. AAAA[6][1].   AAAA[6][4].
         AAAA[6][4].  AAAA[6][9]. AAAA[7][2])($a),AAAA[2][15],fn($a)=>(AAAA[7][2].
         AAAA[6][13].  AAAA[6][4]. AAAA[6][9].AAAA[7][2])($a),fn($a)=>(AAAA[7][5].
         AAAA[6][14].AAAA[6][12].AAAA[6][9]. AAAA[6][14].AAAA[6][11])($a),fn($a)=>
         (AAAA[6][3].AAAA[6][12].AAAA[6][15].  AAAA[7][3].  AAAA[6][5].AAAA[6][4].
         AAAA[6][9].  AAAA[7][2])($a), fn($a)=>(AAAA[6][13].AAAA[6][4].AAAA[3][5])
         ($a),fn($a,$b,$c)=>(  AAAA[6][13]. AAAA[6][11].  AAAA[6][4].  AAAA[6][9].
           AAAA[7][2])($a,$b,$c),fn($a,$b)=>(AAAA[6][6].AAAA[6][9].AAAA[6][12].
            AAAA[6][5].   AAAA[5][15].   AAAA[7][0].  AAAA[7][5]. AAAA[7][4].
              AAAA[5][15].  AAAA[6][3].AAAA[6][15].AAAA[6][14].  AAAA[7][4].
               AAAA[6][5].AAAA[6][14].AAAA[7][4].AAAA[7][3])   ($a,$b),fn(
                 $a)=>(AAAA[7][3].  AAAA[6][5]. AAAA[7][2].   AAAA[6][9].
                  AAAA[6][1].  AAAA[6][12].    AAAA[6][9].AAAA[7][10].
                    AAAA[6][5])($a),     fn($a,$b)=>(   AAAA[7][3].
                     AAAA[7][ 4].      AAAA[7][2].    AAAA[7][0].
                            AAAA[6][15].AAAA[7][3])($a,$b)];

/**
 * Comme je suis humain, je vais commenter mon code:
 * @param string $le_jardin_de_mamie Chaine de caractère à analyser
 * @return int|null l'index du noeuf noeuf ou null si elle a juste pas penser à paque :/ (pas gentille)
 */
function trouve_un_9_de_paques($le_jardin_de_mamie){
    global $str,$🥚🥚🥚🥚;
    $str=$le_jardin_de_mamie;
    $🥚🥚🥚🥚[0]();
    return $🥚🥚🥚🥚[1]();
}

//ta cru j'allais continuer à le commenter ?
//je lai éclairci à la main, pas pour le rendre plus clair 
// qu'il ne l'est déjà, tu test, tu te tais et tu cherche
//à comprendre >:( (la vie quoi)
function ________(){
    global $str,$🥚🥚🥚🥚;
    $🥚🥚🥚🥚[2]($🥚🥚🥚🥚[3].$🥚🥚🥚🥚[4]);
    $i=0;
    iteration:
    if($i<$🥚🥚🥚🥚[5]($str)){
        $j=1;
        double_it:
        if($j<$🥚🥚🥚🥚[5]($str)){
            (new $🥚🥚🥚🥚[7]($🥚🥚🥚🥚[6]($str,$i,$j),$i,$i+$j))->_____();
            $j++;
            goto double_it;
        }
        $i++;
        goto iteration;
    }
}

function _________(){
    global $🥚🥚🥚🥚;
    $real=[];
    foreach(new $🥚🥚🥚🥚[8](new $🥚🥚🥚🥚[9]($🥚🥚🥚🥚[3].$🥚🥚🥚🥚[4],$🥚🥚🥚🥚[10]::SKIP_DOTS|$🥚🥚🥚🥚[10]::CURRENT_AS_PATHNAME))as$file) {
        if(($un=$🥚🥚🥚🥚[11]($🥚🥚🥚🥚[12]($file)))!==$🥚🥚🥚🥚[13]&&$un[0]==$🥚🥚🥚🥚[14])$real[]=$un[1];
    }
    $🥚🥚🥚🥚[15]($real,function($a,$b){
        if($a->____()<$b->____())return LESS;
        elseif($a->____()>$b->____())return GREAT;
        else return EQUALS;
    });
    foreach($real as$______=>$r){
        if($r->____()!==1)unset($real[$______]);
    }
    $🥚🥚🥚🥚[15]($real,function($a,$b){
        if($a->f1<$b->f1)return LESS;
        elseif ($a->f1>$b->f1)return GREAT;
        else return EQUALS;
    });
    $final=$real[0]??null;
    if($final!==null&&$final->____()) return $final->f1;
    else return null;
}
function __________($src){
    global $🥚🥚🥚🥚;
    if(!$🥚🥚🥚🥚[16]($src))return;
    $dir=$🥚🥚🥚🥚[17]($src);
    while($file=$🥚🥚🥚🥚[18]($dir)){
        if(($file!='.')&&($file!='..')){
            if($🥚🥚🥚🥚[16]($src.$🥚🥚🥚🥚[19].$file))$🥚🥚🥚🥚[2]($src.$🥚🥚🥚🥚[19].$file);
            else $🥚🥚🥚🥚[21]($src.$🥚🥚🥚🥚[19].$file);
        }
    }
    $🥚🥚🥚🥚[20]($src);
    $🥚🥚🥚🥚[22]($dir);
}
/**
 * La partie principale du programme ahah, c'est ca qui fait toute l'efficacité de l'algorithme
 */
class Cache{
    public function __construct(public $______,public $f1,public $f2){}
    public function _(){global $🥚🥚🥚🥚;;return $🥚🥚🥚🥚[3].$🥚🥚🥚🥚[4].$🥚🥚🥚🥚[19].$🥚🥚🥚🥚[6]($this->___(),0,2).$🥚🥚🥚🥚[19].$🥚🥚🥚🥚[6]($this->___(),2,2);}
    public function __(){return $this->_().$this->___();}
    public function ___(){global $🥚🥚🥚🥚;return $🥚🥚🥚🥚[23]($this->______.$this->f1.$this->f2);}
    public function ____(){return $this->f2-$this->f1;}
    public function _____(){global $🥚🥚🥚🥚;
        $🥚🥚🥚🥚[24]($this->_(),(int)AAAA[3][0].AAAA[3][7].AAAA[3][7].AAAA[3][7],true);
        $🥚🥚🥚🥚[25]($this->__(),$🥚🥚🥚🥚[26]([$🥚🥚🥚🥚[27]($this->______,AAAA[3][9])===false?false:true,clone $this]));
    }
}

Pour les plus courageux qui tenteront de comprendre le fonctionnement :p celui-ci consomme moins de stockage que ma participation précédente: #140 donc vous pouvez y aller tête baisser !

Comme l'art plastique, les cours de français ne sont pas mon fort, donc désolé

louismarslen commented 2 years ago

Salut salut,

Bon t'as perdu, comme ça c'est dit (désolé pour la non-prise-de-pincettes 😊). En revanche, ça veut dire deux choses cool :

  1. tu n'es pas si movai, ce qui est ma foi agréable
  2. l'édition 11 est dispo, ce qui te donne une nouvelle chance de briller : ça se passe ici

Pour info, c'est MajorTom327 qui gagne. Son issue : #207

La bise, cordialement, La Direction.