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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Damo : pour ne plus compter que sur Angular
Grâce à ce framework jQuery MVC two-way data binding

Le , par hclatomic

75PARTAGES

1  0 
Damo : pour ne plus compter que sur Angular
grâce à ce framework JavaScript MVC two-way data binding


Salut,

Voici quelques temps que je programme avec Angular 1, et je dois bien avouer que je suis séduit par sa capacité de "rapid development". Le two-way data binding, c'est top pour réduire le code JavaScript et produire un applicatif dans un délai court.

En revanche, Angular regroupe bon nombre d'inconvénients dont :
  • une syntaxe spéciale, et donc temps de prise en main long ;
  • des scopes séparés indépendants, sauf en programmation de services ;
  • la difficulté à intégrer des bibliothèques extérieures ;
  • la non pérennité : Angular 2 est incompatible avec angular 1.


Le dernier de ces points est notamment dramatique car il va falloir reformer les développeurs à une technologie absolument différente d'Angular 1 (plus de 2 way binding, plus de scope, syntaxe encore plus complexe, architecture différente, etc.), et après il faudra re développer ce qu'on avait fait en version 1. Google pousse à un tel investissement au prétexte qu'Angular 2 serait dix fois plus rapide qu'Angular 1. Pour ma part, les performances d'Angular 1 ne m'ont jamais choqué, au contraire d'autres aspects.

Qui nous garantit que dans deux ans Google ne nous fera pas à nouveau le même coup, avec Angular 3 ? Cette perspective est effrayante.
Ah ! Si tout était aussi simple, documenté, stable et performant que jQuery !

C'est muni de ces réflexions que j'ai entrepris de résoudre le problème en programmant un Angular en jQuery. Je cherche ainsi à allier le meilleur des deux mondes. Le résultat est Damo.js, un framework JavaScript MVC two-way data binding.

J'y ai reproduit toutes les caractéristiques d'Angular 1 :

  • la syntaxe html ;
  • les filtres ;
  • les directives ;
  • le scope ;
  • la modularité .
  • le routing ;
  • etc.


Je livre le tout en GPL avec un GitHub. Au final c'est une bibliothèque 20 fois moins volumineuse qu'Angular, avec une programmation simplifiée ("à l'ancienne", par exemple sans la syntaxe très spéciale d'Angular), totalement modulaire et compatible avec toute autre bibliothèque extérieure. Je l'utilise actuellement pour développer une nouvelle interface aux bateaux d'OceanVirtuel.com, et je dois dire que ça me facilite grandement la vie.

Damo est jeune et, à n'en pas douter, il faudra l'endurcir et l'améliorer de nouvelles fonctionnalités. C'est pourquoi je vous invite à participer sur GitHub si vous le souhaitez. Si vous pensez qu'il faut une alternative à Google et son Angular, une alternative stable et pérenne, vous trouverez en Damo un projet qui répondra à votre attente.

Notez que j'ai pris soin de la documentation et aussi de proposer un exemple simple, téléchargeable, qui aide à la prise en main.

Cordialement.

La page de Damo.

Et vous ?

Que pensez-vous de cette bibliothèque ?

Retrouver les cours et tutoriels sur les frameworks JavaScript.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de melka one
Membre expérimenté https://www.developpez.com
Le 23/05/2016 à 10:25
j'ai fait le compte et tu a écrit 25 fois le mot angular peut mieux faire
1  0 
Avatar de SylvainPV
Rédacteur/Modérateur https://www.developpez.com
Le 21/05/2016 à 1:59
Hello,

Les frameworks de data-binding sont déjà très nombreux et c'est difficile de se faire une place aujourd'hui. Je m'y suis essayé à un moment, mais j'ai finalement laissé tomber en voyant que d'autres solutions existantes faisaient déjà très bien ce que j'essayais de produire. En regardant la doc de Damo, je vois une très forte similitude avec mon propre projet (Databinder), et par association avec les alternatives plus populaires vers lesquels j'ai finalement choisi de m'investir (Riot en tant que traducteur de la doc FR, et Vue en tant que financeur Patreon)

C'est pour ça que je pose la question, pour peut-être t'éviter de faire la même erreur que moi : as-tu déjà fait le tour des autres solutions de data-binding, en dehors de Angular ? Il y en a énormément, trop pour toutes les essayer à vrai dire... C'est toujours très enrichissant de travailler sur ses propres solutions, mais ça ne dessert pas vraiment la communauté qui se plaint depuis des années du trop grand nombre de frameworks et de la difficulté de parier sur le bon framework JS. Et les gens ont tendance à se méfier des projets en solo question pérennité. Dans tous les cas, contribuer sur d'autres projets permet de gagner en expérience et peut donner de bonnes idées d'amélioration pour les projets persos qu'on garde dans les tiroirs

Pour en revenir à Damo, je suis un peu confus entre l'usage de l'attribut id et damo-id. On trouve les deux dans la doc et je ne comprends pas la différence. L'usage de l'attribut id m'inquiète, car cela voudrait dire qu'on ne peut pas choisir un autre id pour l'élément, ni faire deux bindings vers la même valeur sans avoir un duplicat d'id dans le document. J'ai aussi regardé la démo et je la trouve un peu gâchée par le trop grand nombre de reflows au chargement de page (4 si j'ai bien compté, et ils sont nettement visibles). Je me doute que c'est parce que la lib est encore jeune et que ça va s'améliorer, mais 4 reflows ça m'inquiète un peu quand même (déjà qu'un seul reflow sur Angular causait beaucoup de soucis qu'ils ont dû fix avec ng-cloak).

Je t'ai laissé une petite PR sur un correctif dans un code de la doc. J'ai vu aussi quelques petites fautes d'anglais mais mon niveau n'est pas assez bon pour te faire une correction exhaustive, donc il vaut mieux laisser ça à quelqu'un d'autre.
0  0 
Avatar de Marco46
Expert éminent sénior https://www.developpez.com
Le 23/05/2016 à 10:37
Non mais ce qui est fabuleux c'est que dans le wall of text qu'il écrit ya une ligne (la 1ère) qui parle du sujet et dans les 30 lignes qui suivent il nous rebat les oreilles de son sujet préféré à savoir : angular 1.x c'est plus mieux que angular 2
0  0 
Avatar de hclatomic
Membre régulier https://www.developpez.com
Le 23/05/2016 à 14:04
Citation Envoyé par SylvainPV Voir le message
Hello,
Pour en revenir à Damo, je suis un peu confus entre l'usage de l'attribut id et damo-id. On trouve les deux dans la doc et je ne comprends pas la différence. L'usage de l'attribut id m'inquiète, car cela voudrait dire qu'on ne peut pas choisir un autre id pour l'élément, ni faire deux bindings vers la même valeur sans avoir un duplicat d'id dans le document.
Oui, tu as raison, j'avais commencé par ne considérer que l'id, mais je me suis rendu compte que nombre de bibliothèques se basaient aussi sur l'id (comme jquery-ui par exemple), j'ai donc modifié en damo-id. Cela dit j'ai pu oublier id dans certains coins de la doc.

Oui, j'ai été voir ce qui existait en 2 way binding, et cela ne m'a pas emballé, mais j'ai pu en oublier. A vrai dire Damo apporte une originalité, celle du data model applicatif, base structurant toute l'application.

Merci pour ton aide. Je vais aller revoir la doc.
Cordialement
0  0 
Avatar de
https://www.developpez.com
Le 22/05/2016 à 21:58
Sympa, cette idée de mettre du 2 way Binding dans du Jquery.

Voici mon avis sur Angular, qui n'est que personnel:
La syntaxe de angularJs 1.x est très sympa au contraire. Les scopes séparés dans angularJs 1.5, c'est justement ça que j'aime bien , lorsqu'une vue plante, l'autre ne plante pas.

Les librairies externes ? Il y a déjà beaucoup à faire avec celles qui sont spécialisées angularJs 1.5 : AngularCharts, et des tonnes d'autres... gratuites

En revanche, la syntaxe de AngularJs 2.0 m'a convaincu de ne vraiment Jamais utiliser le nouveau Framework, et de conserver AngularJs 1.x , et son modèle MVC très structuré pour mes futurs projets, pendant 5 ans, probablement, si je ne trouve pas l'envie de faire du ES6 et des classes et constructeurs Javascript.

En plus, le 2 way binding ça déchire, et la syntaxe AngularJs1.x est un plaisir pour les gens qui ont pas un gros niveau comme moi, par contre on avance vraiment sur les projets avec AngularJs1.x, c'est pleins de librairies annexes qui déchirent(modules), et tout, bref tout est génial dans AngularJs 1.5 pour réellement créer de vrais projets , et pas se souler avec des syntaxes incompréhensibles ou anglo saxonnes comme dans angularv2.0

Pour des gens comme moi, plutôt " rentre dedans", et un peu bétas, aimant aller vite, c'est bien .

Avec angularJs 1.5, tout est logique, y'a le modèle de donnnées, les vues HTML, les contrôleurs qui pilotent les données et les affichent dans les vues, même les directives sont sympas, ça suffit largement pour créer des apps francophones très sympas, faut juste faire gaffe à pas "overloader" le 2 way binding, c'est tout ! Il ne reste plus qu'a coder, en donnant des noms français à ses fonctions et ses variables, c'est le top de pas faire d'anglo saxon, c'est surtout ça que j'adore, au final on ne voit presque plus d'anglo saxon dans un code angularJs version 1.5, j'adore ça parce que too-much-anglo-saxon-code=vomit !

AngularJs1.5 a simplifié toute la manière de créer des applications WEB, et ng-repeat, ng-if, ng-show, ng-hide, tout ça, c'est des trucs trop biens qui déchirent mec ! Pas question de passer sous AngularJs2.0, la création d'applications n'est pas une question de mode ! Ca n'a rien à voir avec la sortie du dernier Iphone qui fait frétiller les gogos, ce que l'on recherche, c'et la solution la plus simple et effective pour créer des applications Web et mobiles francophones, et AngularJs 1.5 remplit bien ce rôle.

Si un jour une de mes apps fonctionne, et que je dois employer quelqu'un qui travaillera sur mon code, je préfère 1 milliard de fois plus lui expliquer mon code ANGULAR JS 1.5 qu'un autre code. Je ne me vois pas une seule seconde tenter de lui expliquer du code angularJs V2.0, je sais par avance que le nouvel employé n'y piffrera strictement rien . Dans AngularJs1.5 , c'est du MVC. Les components ? Hors de question d'utiliser cela.

J'en veux pour exemple cet anglo-saxon qui a publié un "starter Kit" AngularJs v2.0 :https://github.com/blacksonic/angula...esnext-starter
On l'ouvre? on regarde 5 minutes, puis on dit ... "Ha ben désolé ca ne va pas le faire, hors de question d'utiliser cette technologie et cette syntaxe absurde, par effet de mode."
Alors qu'un projet AngularJs v1.5, le vrai angular, on comprends tout de suite la logique des fichiers, de l'ordonnancement MVC etc ... Bref, il ne faut jamais utiliser AngularV2, et justement, il faut compter sur AngularV1.5 pour les 5 ans à venir, peu importe les élucubrations de Google, lol
S'extasier devant de nouveaux concepts, c'est bien, mais lorsque c'est ineffectif dans la réalité, pas question de l'utiliser.
0  5