IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut [Article] Javascript Orient� Objet : syntaxe de base des classes JavaScript � l'intention des d�veloppeurs PHP


    Jean-Pierre Vincent vous propose un article de pr�sentation sur la Programmation Orient�e Objet en JavaScript.
    Javascript Orient� Objet : syntaxe de base des classes JavaScript � l'intention des d�veloppeurs PHP
    Ce tutoriel a pour cible les d�veloppeurs qui ont une exp�rience du PHP (5) et qui veulent se lancer dans un projet JavaScript qui d�passe le simple scripting. Cela va donc commencer par savoir �crire des classes en JavaScript. Pour avoir gal�r� en tant que d�veloppeur puis en tant que lead technique, avoir form� de bons d�veloppeurs PHP � faire des applications Web o� le JavaScript repr�sente plus d'un tiers du code et la moiti� du temps de d�veloppement, j'ai pu constater les �nervements classiques lorsqu'on commence � vouloir faire des choses s�rieuses en JavaScript.
    Le but ici n'est pas de rentrer dans la th�orie du langage JavaScript ou m�me d'�tre exhaustif (voir � la fin de cet article des ressources qui le font tr�s bien), mais de vous fournir un template pour commencer � �crire vos classes.
    Merci de faire part de vos commentaires, remarques et encouragements pour cet article dont l'approche permettra, je l'esp�re, de faire comprendre que le mod�le orient� objet par prototype est aussi valable que le mod�le plus classique de classes et d'h�ritage.

    Bonne lecture � tous et � l'auteur !

    PS : Si vous souhaitez voter pour ce message, faites-le plut�t sur le message de jpvincent qui est l'auteur de l'article
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  2. #2
    Expert �minent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par d�faut
    Article tr�s int�ressant. Bouts de codes � l'appui, ce qui permet de bien appr�hender la transition du PhP vers le Javascript.
    Merci pour cette d�marche instructive.

  3. #3
    Membre tr�s actif
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    657
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 657
    Par d�faut
    bon article , m�me si je d�teste javascript. Non pas � cause du prototypage, mais parce que le d�veloppeur n'a pas le choix de la techno cliente finalement.
    J'image ce qui aurait pu �tre le web si ruby ou python s'�taient impos� cot� client. ECMA a fait un sale boulot, et il est trop tard pour changer quoi que ce soit , bref , les devs sont "coinc�s" avec javascript.
    N�anmoins les closures et les lambdas sont l'aspect le plus puissant de javascript.

  4. #4
    Mod�rateur
    Avatar de Bis�n�rs
    Profil pro
    D�veloppeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par d�faut
    Petite coquille dans le code PHP de la section "Classes statiques" :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    static function isMailValid($sMail) {
       return (preg_match("/".self::$regMail."/", $sMail) === 1) ;
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    print MY_APP_NAMESPACE\validation::isValidMail( '[email protected]' );
    De plus (mais �a n'entrave rien � la bonne marche de l'article), pour cette m�thode on aurait pu utiliser filter_var() au lieu d'une expression r�guli�re.

  5. #5
    Membre confirm�
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2003
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Par d�faut
    Merci pour cet article tr�s int�ressant.
    Et j'en profite pour glisser que "oui je suis int�ress� par la notion d'h�ritage en JS".

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    53
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 53
    Par d�faut
    Je pense que �a rentre dans le th�me de l'article : j'ai fait il y a quelques temps un script permettant de g�rer les classes Javascript en simulant le v�ritable concept des objets (public, protected, private, extends).

    Ce n'est �videmment pas un script � utiliser en production (quoique si vous �tes un fanatique pur et dur ...), mais je le trouve assez int�ressant en tant que proof of concept de ce qu'est capable d'accomplir le JS en mati�re d'objets.

    http://arcanis.alwaysdata.net/classjs/class.js
    http://arcanis.alwaysdata.net/classj...testsuite.html

    Par ailleurs, en ce qui concerne les performances, un constat est r�ellement surprenant (et si quelqu'un d�couvre une erreur dans ma fa�on de compter, qu'il n'h�site pas, �a m'int�resse !) : il semblerait que, selon les navigateurs :
    - IE 7 : Ne fonctionne pas, je n'ai pas cherch� � le rendre compatible.
    - Firefox : Environ 3x plus lent d'instancier un objet utilisant ma classe qu'un objet classique
    - Chrome : Ca se vaut, avec un l�ger avantage pour un objet classique
    - Opera : Donc l� c'est le wtf : il est (semble-t-il) plus rapide d'instancier un objet de ma classe qu'un objet classique. Etrange, n'est-ce pas ?

  7. #7
    Mod�rateur
    Avatar de grunk
    Homme Profil pro
    Lead d�v - Architecte
    Inscrit en
    Ao�t 2003
    Messages
    6 693
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, C�te d'Or (Bourgogne)

    Informations professionnelles :
    Activit� : Lead d�v - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 6 693
    Par d�faut
    Ca tombe pile au moment ou je dois d�velopper une appli ou le JS sera dominant par rapport au reste !

    Cela aurait pu �tre int�ressant d'avoir un paragraphe sur les possibilit� qu'apporte chaque framewok pour la r�alisation de class.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par Bis�n�rs Voir le message
    Petite coquille dans le code PHP de la section "Classes statiques" :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    static function isMailValid($sMail) {
       return (preg_match("/".self::$regMail."/", $sMail) === 1) ;
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    print MY_APP_NAMESPACE\validation::isValidMail( '[email protected]' );
    De plus (mais �a n'entrave rien � la bonne marche de l'article), pour cette m�thode on aurait pu utiliser filter_var() au lieu d'une expression r�guli�re.
    Ca a �t� rectifi�.

    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  9. #9
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    354
    D�tails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 354
    Par d�faut
    tr�s bonne articles !!

    Il y a l� toutes les bonnes techniques � adopter en js.... espace de nom, cr�er des variables local "ou priv�", via des fonctions anonymes auto-ex�cut�...

    C'est tr�s bien

    Des petites remarque quand m�me !!

    Sur la sections des closures et variables priv�e.
    Etant dans un context POO, votre exemple est pas vraiment valable, car il retourne un objet anonyme, et non rattach� � une classe.
    Pour permettre des variables priv� d'instance, il suffit de red�finir les m�thodes dans le constructeur.

    du genre:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    function MaClasse(){
        var argPrivé = "ok";
        this.funtionPublic = function(){
             return argPrivé;
       }
    }
    Mais c'est � �viter , comme vous l'avez pr�cis�...

    Sinon je trouve pas le lien -> contre performance des variables priv�es

Discussions similaires

  1. R�ponses: 22
    Dernier message: 03/09/2012, 23h42
  2. R�ponses: 3
    Dernier message: 18/10/2010, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo