• [^] # Re: Framework web

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Première beta de POCHE 1.0 disponible. Évalué à 1.

    En fait là je parlais en général. Et puis tu peux utiliser les accolades en Python! :p

    Non, les accolades, en Python, c'est pour les dict.

    Lapin compris (j'ai fait très très peu de PHP).

    Dans l'exemple suivant, au niveau global, answer nomme une constante, une classe et une variable.

    <?php
    const answer = 42;
    class answer {
     private $answer;
     function __construct($answer)
     {
     $this->answer = $answer;
     }
     function answer()
     {
     return $this->answer;
     }
    }
    $answer = new answer(answer);
    var_dump($answer->answer());

    Ou sinon on privilégie l'efficacité à l'esthéthique, et des fois savoir que c'est une constante au premier coup d'œil ça peut être pratique.

    Dans le cas de PHP, la question ne se pose pas, car le contexte indique directement qu'on a une constante. Ceci dit, je ne vois pas pourquoi je devrais considérer une variable différemment selon que c'est une constante ou non. Dans le cas de Python, c'est trompeur, puisque les constantes n'existent pas.

    J'avoue que je n'ai pas (encore) rencontré d'exemple de duck typing.

    Oh si, tu as dû. Le ducktyping vient d'une idée très simple : jusque là, tout va bien. En fait, tant que l'objet que tu manipule se comporte comme ce à quoi tu t'attends, tout va bien. En gros, ce qui marche comme un canard, est un canard. Bref, une oie est un canard par exemple. C'est génial quand tu fais un prototype, mais ça devient un enfer sur un projet plus important.

    Si les gens font de la merde aussi, ils peuvent en faire dans tous les langages.

    Non. C'est une erreur habituelle à mon sens. Un langage exigeant ne permettra pas à l'incompétent de croire qu'il peut écrire une application de facturation en quelques clicks. Apprendre des langages exigeant comme Ada ou C++, ça permet de structurer sa pensée, ce qui permet d'utiliser des outils plus laxistes pour prototyper. Mais au final, il faudra bien structurer.

    Pour le reste, on peut utiliser des outils comme Pylint, ou même le compiler vers un autre langage (C, Java, C#).

    Les outils pour analyser le code sont légions, et très utiles. Je les utilises systématiquement, et en compléments les tests unitaires et fonctionnels. Quand à compiler, je ne vois pas l'intérêt de compiler du code bancal : tu n'auras pas magiquement le type hinting, par exemple.