Projet numérologie / partie 1 : front / niveau 2 / code js

Auteur :
  • François Brucker

Code de la logique métier du projet. L'idée est de montrer comment on peut progresser en codant nous même, un item en amenant un autre à coder.

Todos initiaux

Il faut tout faire :

Choix de la première tâche

Quelle est la tâche la plus simple à réaliser dans nos todos ?

Le cœur du projet est d'associer un numéro à un nom, donc autant essayer de faire ça en javascript.

On modifie le fichier numérologie/todos/todos.md pour refléter le fait qu'on travaille sur cet item.

Bon c'est pas encore très détaillé. Comment faire ça ?

  1. déjà un nom c'est une chaîne de caractère codée en utf-8
  2. on peut prendre le numéro Unicode/utf8 de chaque caractère et les sommer
  3. il faut un chiffre donc comment passer d'un nombre à un chiffre ?
  4. on peut sommer les chiffre du nombre pour obtenir un autre nombre strictement plus petit ($10.x + y < x + y$) et recommencer la procédure si ce n'est pas un chiffre.

Ajoutons nos réflexions à la todo list (fichier numérologie/todos/todos.md) :

* [X] associer un chiffre à un nom
  * [ ] numéro Unicode/utf8 d'un caractère
  * [ ] sommer des numéro des caractères d'une chaîne de caractères
  * [ ] sommer les chiffre d'un nombre
  * [ ] sommer itérativement jusqu'à convergence (car $10x + y > x+y$ si $x > 0$)
* [ ] créer un champ texte dans un fichier html
* [ ] récupérer en html le contenu d'un champ texte lorsque l'on appuie sur la touche entrée
* [ ] modifier l'arbre DOM avec du texte
* [ ] récupérer un info de l'url et la traiter

Au passage, vous avez vu comment on a mis des maths dans du markdown ? Lorsque vous transformerez le markdown en html, Mathjax rendra ces équations toutes jolies.

Quel est l'item le plus simple à résoudre ? A mon avis c'est lui :

On va aller plus vite dans ce cours ensuite. Mais l(idée est toujours la suivante : dans votre listes de todos vous devez avoir un item qui vous semble le plus facile à résoudre. Si ce n'est pas le cas, c'est que vous items sont trop gros et qu'il faut les décomposer en unité plus fine.

Que signifie le plus facile à résoudre ? C'est un item dont l'implémentation ne nécessite qu'une seule chose à faire, et que cette chose à faire est simple.

Tache 1 : Unicode d'un caractère

On utilise l'implémentation du niveau 1 pour associer un nombre à un caractère Unicode.

Tache 2 : caractères et nombre

Ce qui nous permet de passer à l'item suivant :

Qu'on implémente comme au niveau 1. Nos todos deviennent :

On a bien progressé. La tâche qui semble la plus simple maintenant est de finaliser la partie consacrée à l'association d'un chiffre à un nom.

Tache 3 : chiffres et nombre

Je choisis de faire :

Encore une fois on utilise l'implémentation de niveau 1. Nous allons cependant modifier la façon dont on teste nos méthodes.

Tache 4 : somme itérative

On peut terminer cette partie en faisant l'item :

On procède comme au niveau 1, en ajoutant les tests à notre tout nouveau fichier numérologie/tests/tests_numérologie.js.

Todos finaux

La partie javascript semble terminée pour l'instant. On peut s'attaquer à ce qui semble le plus simple, la page web.