Merci beaucoup,
c’est exactement ce que j’attends de nos échanges, et ça m’aide beaucoup, merci encore.
pour le 5 fichiers pour un todolist, ça fait beaucoup, oui, je suis d’accord. Et comparons avec Angular qui en a 3:
- fichier todo.css --> Angular l’a aussi, idem
- fichier main.js --> ce fichier n’est là uniquement pour la version online, dans Visual Studio, il est générique et il n’y a que 2 lignes pour l’initialisation. Peut être est il perturbant à ce stade, mais il n’entre pas en jeu dans le travail du développeur.
Et ce qui est plus intéressant à comparer:
- controls.htm (Aspectize) vs index.html (Angular):
Notre fichier controls est totalement agnostique des binding (data et behavior), je fais du html standard, je n’ai pas apprendre des conventions d’attributs ng-click, ng-repeat, ng-model (que je trouve compliqués), et je ne pollue pas mon UI avec des choses, qui pour moi, n’ont rien à y faire, donc je peux la réutiliser dans d’autres contextes (principe du contrôle, avec la souplesse du layout déclaratif). De plus, en regardant d’un peu plus près, je ne comprends pas comment le remaining() et le todos.length sont mis à jour coté Angular, ce n’est pas clair pour moi, je ne comprends pas les dépendances qui sont créées ici, ni la mécanique d’appel de mon code; à quel moment mon code va t il être appelé ?
- service.js + view.js (Aspectize) vs angular.dart (Angular):
service.js est du code javascript standard, qui traite des données en mémoire et uniquement des données (ou des éléments du DOM si j’en ai besoin), je maîtrise ce qui rentre et ce qui ressort de mes fonctions, je n’ai pas de @Controller (que je ne comprends pas non plus dans Angular, mais je reconnais que j’ai toujours eu du mal à comprendre les contrôleurs dans les techno MVC).
view.js est purement déclaratif, cela m’intéresserait de comprendre pourquoi ça peut faire peur (sans doute parce que c’est nouveau ? Le déclaratif est quelque chose qui est souvent recherché dans les techniques informatique, car c’est source de beaucoup moins de problèmes que le code). On y voit exactement l’association des Data et des propriétés, d’une part, et l’association des Command et des événements d’autre part. C’est explicite et sous contrôle, et tout est fait comme ça dans l’appli, d’un bout à l’autre (et je n’ai pas à rentrer dans une dimension de $scope, qui, bien que non présente dans l’exemple de la todolist, arrive très vite, et qui, pour le coup, me fait vraiment peur dans Angular).
Voilà, c’est extrêmement difficile de se faire une idée d’une techno, qu’elle quelle soit, en très peu de temps. Moi-même, je n’ai pas fait cet effort jusqu’au bout pour Angular, j’ai essayé mais j’ai très rapidement buté, je ne comprenais pas en le faisant, pourquoi je devais mettre telle chose à tel endroit, et comment ça fonctionnait. Il y a une courbe d’apprentissage pour n’importe quel sujet, et mon objectif est bien d’essayer d’améliorer la notre. Et ça m’intéresserait beaucoup d’avoir du feedback de personnes qui connaissent bien Angular (on en a eu certains à nos derniers Meetup, et leurs retours étaient très enthousiastes, mais online, c’est une autre histoire :-) ).