JeuWeb - Crée ton jeu par navigateur
Classe ou fonction ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Classe ou fonction ? (/showthread.php?tid=7603)

Pages : 1 2


RE: Classe ou fonction ? - niahoo - 12-03-2016

Heu …


(12-03-2016, 06:40 PM)Argorate a écrit : Dans un vrai langage OO, tu ne fais pas de fonction, ça règle la question ^^

Mais n'importe quoi. N'importe quelle appli digne de ce nom dans un langage OO a de simples fonctions quand il n'y a pas lieu d'avoir des objets.

(12-03-2016, 06:40 PM)Argorate a écrit : Le JavaScript ne gère pas "mal les classes". Tu n'as pas compris le JS... C'est un langage de prototype, pas OO...

Javascript est un lagage totalement OO hein … Ce n'est pas d'avoir des classes qui rend un langage OO ou non. C'est la capacité d'avoir des objets.


(12-03-2016, 06:40 PM)Argorate a écrit : (c'est même beaucoup plus simple et on peut même avoir l'héritage multiple)

L'héritage par prototype est plus simple que l'héritage par classes ? Mais alors pourquoi personne arrive à comprendre le premier pendant ses premières années de javascript, même en ayant pigé depuis longtemps l'héritage par classes ?

Pour le reste je suis d'accord.


RE: Classe ou fonction ? - incodewetrust - 13-03-2016

Plus lisible, c'est relatif en général pour vanter les bienfaits de la poo on te présente d'un coté un vieux script bien dégueulasse en procédural avec les requêtes bdd en plein milieu et de l'autre coté un beau petit mvc tout propre avec les classes bien ordonnées et un naming travaillé. La réalité est parfois différente, le dernier projet que j'ai eut sous les yeux était basé sur un controller de 3000 lignes en objet avec des classes au début au milieu et à la fin.

L'un des concepts de la POO reste l'encapsulation, et la lisibilité de la couche supplémentaire est loin d'être toujours évidente. Sans compter que pour moi la lisibilité ne se limite pas aux lignes de code seules, mais au nombre de fichiers tu va devoir parcourir/retrouver dans l'architecture pour modifier un process.

La même relativité s'applique à la praticité, il faut généralement déclarer les getters, setters, prendre en compte l'héritage ect.... j'aurais tendance à dire que c'est au contraire plus contraignant. Ceci dit la POO aura tendance a davantage t'aider à rester DRY.

En terme de performance, aucun gain.

Si la Poo fait quasiment l'unanimité chez les devs que j'ai rencontré, je pense davantage pour des raisons de workflow-pro que par véritable conviction, certains avouaient tout de même continuer de développer en semi-secret leurs projets persos en procédural parce que ça va plus vite et c'est moins contraignant.

Mon avis est à 200% partial mais si tu veux vraiment te plonger dans la POO, ruby est OO et assez sympa au niveau de la syntaxe et des fonctions dispos. Bon par contre ça se paye en terme de perfs Wink.


RE: Classe ou fonction ? - Xenos - 13-03-2016

un controller de 3000 lignes
Petite nature: certains controlleurs au taff ont plus de 8.000 lignes! (oui, bon, c'est pas un exploit... vive les vieux codes empilés par les années précédentes)

/useless-response


RE: Classe ou fonction ? - Argorate - 13-03-2016

(12-03-2016, 08:47 PM)niahoo a écrit : Mais n'importe quoi. N'importe quelle appli digne de ce nom dans un langage OO a de simples fonctions quand il n'y a pas lieu d'avoir des objets.
Dans un vrai langage OO, tu n'as pas d'endroit "hors classe" comme en php, tu es tout le temps dans le contexte d'un objet, donc en fait si Wink

(12-03-2016, 08:47 PM)niahoo a écrit : Javascript est un lagage totalement OO hein … Ce n'est pas d'avoir des classes qui rend un langage OO ou non. C'est la capacité d'avoir des objets.
Oui, ce n'est pas de l'OO dans le sens traditionnel, c'est ce que j'entendais par là. Mais au niveau de la définition stricte, tu as raison. Pour moi le prototype est à part ^^


(12-03-2016, 08:47 PM)niahoo a écrit : L'héritage par prototype est plus simple que l'héritage par classes ? Mais alors pourquoi personne arrive à comprendre le premier pendant ses premières années de javascript, même en ayant pigé depuis longtemps l'héritage par classes ?
Oui c'est plus simple de mon point de vu, mais différent comme je le disais au début. Je pense qu'on enseigne principalement que le modèle OO avec classe, d'où les difficultés de penser autrement après.


RE: Classe ou fonction ? - niahoo - 13-03-2016

Merci de ne pas prendre ta propre définition d'un langage objet pour une vérité absolue. Selon ta définition, Scala, Python, Smalltalk, PHP et j'en passe ne sont pas de "vrais" langage objets".

ça n'a aucun sens.


RE: Classe ou fonction ? - Xenos - 13-03-2016

Tiens, au fait, ECMAScript6 apporte une syntaxe dédiée aux classes, plus usuelle. Cela facilitera peut-être la compréhension du principe de "prototype-based OO pattern" ("langage OO à base de prototypes").


RE: Classe ou fonction ? - niahoo - 13-03-2016

Je crois que c'est justement pour ne pas avoir à la comprendre, avec une syntaxe qui fonctionne comme dans les langages à héritage classique.


RE: Classe ou fonction ? - Akira777 - 16-03-2016

Crotte, je crois que ça fait des lustres que j'ai pas écrit de fonction...

Même quand j'en ai besoin je regroupe ça dans des classes avec des méthodes statiques. C'est peut-être pas le cas, mais je trouve ça plus propre et ça s'autoload pas mal avec Composer Smile


RE: Classe ou fonction ? - niahoo - 16-03-2016

Oui moi aussi je m'en sers comme système de module vu qu'il n'y a pas de système d'autoload pour les fonctions. Mais ça revient au même Smile Ce ne sont pas des classes qu'on instancie.

Bon après ça fait de toute façon un bail que j'ai pas fait de PHP Smile Bientôt je pense !